github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/database/leveldb/capi_test.go (about) 1 // Copyright 2013 <chaishushan{AT}gmail.com>. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package leveldb 6 7 import ( 8 "bytes" 9 "os" 10 "testing" 11 ) 12 13 var testdb = "testdb" 14 15 // https://code.google.com/p/leveldb/issues/detail?id=207 16 func TestIssue207(t *testing.T) { 17 opt := leveldb_options_create() 18 defer leveldb_options_destroy(opt) 19 20 leveldb_options_set_create_if_missing(opt, true) 21 db, err := leveldb_open(testdb, opt) 22 if err != nil { 23 t.Fatal(err) 24 } 25 defer os.RemoveAll(testdb) 26 defer leveldb_close(db) 27 28 key := []byte("key") 29 val := []byte("value") 30 31 data, err := leveldb_get(db, key, nil) 32 if err != ErrNotFound { 33 t.Fatalf("expect ErrNotFound, got %v", err) 34 } 35 36 err = leveldb_put(db, key, val, nil) 37 if err != nil { 38 t.Fatal(err) 39 } 40 data, err = leveldb_get(db, key, nil) 41 if err != nil { 42 t.Fatal(err) 43 } 44 if !bytes.Equal(data, val) { 45 t.Fatalf("data not equal, got %v", data) 46 } 47 48 err = leveldb_delete(db, key, nil) 49 if err != nil { 50 t.Fatal(err) 51 } 52 data, err = leveldb_get(db, key, nil) 53 if err != ErrNotFound { 54 t.Fatalf("expect ErrNotFound, got %v", err) 55 } 56 }