Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
5a3e37b1
Commit
5a3e37b1
authored
Dec 31, 2018
by
vipwzw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add kvcreator
parent
e4a889a0
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
271 additions
and
60 deletions
+271
-60
count_test.go
vendor/github.com/33cn/chain33/common/db/table/count_test.go
+4
-3
join_test.go
vendor/github.com/33cn/chain33/common/db/table/join_test.go
+7
-6
table_test.go
vendor/github.com/33cn/chain33/common/db/table/table_test.go
+15
-34
driver_test.go
vendor/github.com/33cn/chain33/system/dapp/driver_test.go
+70
-0
util.go
vendor/github.com/33cn/chain33/system/dapp/util.go
+35
-0
util_test.go
vendor/github.com/33cn/chain33/system/dapp/util_test.go
+26
-0
block.go
vendor/github.com/33cn/chain33/types/block.go
+53
-7
block_test.go
vendor/github.com/33cn/chain33/types/block_test.go
+30
-0
types_test.go
vendor/github.com/33cn/chain33/types/types_test.go
+0
-10
util.go
vendor/github.com/33cn/chain33/util/util.go
+21
-0
util_test.go
vendor/github.com/33cn/chain33/util/util_test.go
+10
-0
No files found.
vendor/github.com/33cn/chain33/common/db/table/count_test.go
View file @
5a3e37b1
...
...
@@ -7,12 +7,13 @@ package table
import
(
"testing"
"github.com/33cn/chain33/util"
"github.com/stretchr/testify/assert"
)
func
TestCount
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
count
:=
NewCount
(
"prefix"
,
"name#hello"
,
kvdb
)
count
.
Inc
()
count
.
Dec
()
...
...
@@ -22,7 +23,7 @@ func TestCount(t *testing.T) {
assert
.
Equal
(
t
,
i
,
int64
(
1
))
kvs
,
err
:=
count
.
Save
()
assert
.
Nil
(
t
,
err
)
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
count
=
NewCount
(
"prefix"
,
"name#hello"
,
kvdb
)
i
,
err
=
count
.
Get
()
...
...
vendor/github.com/33cn/chain33/common/db/table/join_test.go
View file @
5a3e37b1
...
...
@@ -5,6 +5,7 @@ import (
"testing"
protodata
"github.com/33cn/chain33/common/db/table/proto"
"github.com/33cn/chain33/util"
"github.com/golang/protobuf/proto"
"github.com/stretchr/testify/assert"
...
...
@@ -12,8 +13,8 @@ import (
)
func
TestJoin
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
table1
,
err
:=
NewTable
(
NewGameRow
(),
kvdb
,
optgame
)
assert
.
Nil
(
t
,
err
)
table2
,
err
:=
NewTable
(
NewGameAddrRow
(),
kvdb
,
optgameaddr
)
...
...
@@ -32,7 +33,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
:=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
7
,
len
(
kvs
))
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
//query table
//每个表的查询,用 tablejoin.MustGetTable("gameaddr")
//join query 用 tablejoin.Query
...
...
@@ -53,7 +54,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
7
,
len
(
kvs
))
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
rows
,
err
=
tablejoin
.
ListIndex
(
"addr#status"
,
JoinKey
([]
byte
(
"addr1"
),
[]
byte
(
"2"
)),
nil
,
0
,
0
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
1
,
len
(
rows
))
...
...
@@ -77,7 +78,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
5
,
len
(
kvs
))
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
//改回到全部是1的情况
rightdata
=
&
protodata
.
Game
{
GameID
:
"gameid1"
,
Status
:
1
}
...
...
@@ -87,7 +88,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
10
,
len
(
kvs
))
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
rows
,
err
=
tablejoin
.
ListIndex
(
"addr#status"
,
JoinKey
([]
byte
(
"addr1"
),
[]
byte
(
"1"
)),
nil
,
0
,
0
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
1
,
len
(
rows
))
...
...
vendor/github.com/33cn/chain33/common/db/table/table_test.go
View file @
5a3e37b1
...
...
@@ -6,8 +6,6 @@ package table
import
(
"bytes"
"fmt"
"io/ioutil"
"os"
"testing"
"github.com/33cn/chain33/common"
...
...
@@ -19,8 +17,8 @@ import (
)
func
TestTransactinList
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
opt
:=
&
Option
{
Prefix
:
"prefix"
,
Name
:
"name"
,
...
...
@@ -51,7 +49,7 @@ func TestTransactinList(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
12
)
//save to database
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
//测试查询
query
:=
table
.
GetQuery
(
kvdb
)
...
...
@@ -157,8 +155,8 @@ func TestTransactinList(t *testing.T) {
}
func
TestTransactinListAuto
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
opt
:=
&
Option
{
Prefix
:
"prefix"
,
Name
:
"name"
,
...
...
@@ -189,7 +187,7 @@ func TestTransactinListAuto(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
13
)
//save to database
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
//测试查询
query
:=
table
.
GetQuery
(
kvdb
)
...
...
@@ -298,8 +296,8 @@ func TestRow(t *testing.T) {
}
func
TestDel
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
opt
:=
&
Option
{
Prefix
:
"prefix"
,
Name
:
"name"
,
...
...
@@ -327,7 +325,7 @@ func TestDel(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
6
)
//save to database
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
//printKV(kvs)
query
:=
table
.
GetQuery
(
kvdb
)
rows
,
err
:=
query
.
ListIndex
(
"From"
,
[]
byte
(
addr1
[
0
:
10
]),
nil
,
0
,
0
)
...
...
@@ -344,8 +342,8 @@ func printAllKey(db db.DB) {
}
func
TestUpdate
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
opt
:=
&
Option
{
Prefix
:
"prefix"
,
Name
:
"name"
,
...
...
@@ -369,7 +367,7 @@ func TestUpdate(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
3
)
//save to database
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
query
:=
table
.
GetQuery
(
kvdb
)
rows
,
err
:=
query
.
ListIndex
(
"From"
,
[]
byte
(
tx1
.
From
()),
nil
,
0
,
0
)
assert
.
Nil
(
t
,
err
)
...
...
@@ -377,8 +375,8 @@ func TestUpdate(t *testing.T) {
}
func
TestReplace
(
t
*
testing
.
T
)
{
dir
,
l
eveldb
,
kvdb
:=
getdb
()
defer
dbclose
(
dir
,
leve
ldb
)
dir
,
l
db
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
opt
:=
&
Option
{
Prefix
:
"prefix"
,
Name
:
"name"
,
...
...
@@ -405,7 +403,7 @@ func TestReplace(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
3
,
len
(
kvs
))
//save to database
setKV
(
l
evel
db
,
kvs
)
setKV
(
ldb
,
kvs
)
query
:=
table
.
GetQuery
(
kvdb
)
_
,
err
=
query
.
ListIndex
(
"From"
,
[]
byte
(
addr1
[
0
:
10
]),
nil
,
0
,
0
)
assert
.
Equal
(
t
,
err
,
types
.
ErrNotFound
)
...
...
@@ -445,20 +443,3 @@ func (tx *TransactionRow) Get(key string) ([]byte, error) {
}
return
nil
,
types
.
ErrNotFound
}
func
getdb
()
(
string
,
db
.
DB
,
db
.
KVDB
)
{
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"goleveldb"
)
if
err
!=
nil
{
panic
(
err
)
}
leveldb
,
err
:=
db
.
NewGoLevelDB
(
"goleveldb"
,
dir
,
128
)
if
err
!=
nil
{
panic
(
err
)
}
return
dir
,
leveldb
,
db
.
NewKVDB
(
leveldb
)
}
func
dbclose
(
dir
string
,
dbm
db
.
DB
)
{
os
.
RemoveAll
(
dir
)
dbm
.
Close
()
}
vendor/github.com/33cn/chain33/system/dapp/driver_test.go
0 → 100644
View file @
5a3e37b1
package
dapp
import
(
"testing"
"github.com/33cn/chain33/types"
"github.com/stretchr/testify/assert"
)
type
demoApp
struct
{
*
DriverBase
}
func
newdemoApp
()
Driver
{
demo
:=
&
demoApp
{
DriverBase
:
&
DriverBase
{}}
demo
.
SetChild
(
demo
)
return
demo
}
func
(
demo
*
demoApp
)
GetDriverName
()
string
{
return
"demo"
}
type
noneApp
struct
{
*
DriverBase
}
func
newnoneApp
()
Driver
{
none
:=
&
noneApp
{
DriverBase
:
&
DriverBase
{}}
none
.
SetChild
(
none
)
return
none
}
func
(
none
*
noneApp
)
GetDriverName
()
string
{
return
"none"
}
func
TestReigister
(
t
*
testing
.
T
)
{
Register
(
"none"
,
newnoneApp
,
0
)
Register
(
"demo"
,
newdemoApp
,
1
)
_
,
err
:=
LoadDriver
(
"demo"
,
0
)
assert
.
Equal
(
t
,
err
,
types
.
ErrUnknowDriver
)
_
,
err
=
LoadDriver
(
"demo"
,
1
)
assert
.
Equal
(
t
,
err
,
nil
)
tx
:=
&
types
.
Transaction
{
Execer
:
[]
byte
(
"demo"
)}
driver
:=
LoadDriverAllow
(
tx
,
0
,
0
)
assert
.
Equal
(
t
,
"none"
,
driver
.
GetDriverName
())
driver
=
LoadDriverAllow
(
tx
,
0
,
1
)
assert
.
Equal
(
t
,
"demo"
,
driver
.
GetDriverName
())
types
.
SetTitleOnlyForTest
(
"user.p.hello."
)
tx
=
&
types
.
Transaction
{
Execer
:
[]
byte
(
"demo"
)}
driver
=
LoadDriverAllow
(
tx
,
0
,
0
)
assert
.
Equal
(
t
,
"none"
,
driver
.
GetDriverName
())
driver
=
LoadDriverAllow
(
tx
,
0
,
1
)
assert
.
Equal
(
t
,
"demo"
,
driver
.
GetDriverName
())
tx
.
Execer
=
[]
byte
(
"user.p.hello.demo"
)
driver
=
LoadDriverAllow
(
tx
,
0
,
1
)
assert
.
Equal
(
t
,
"demo"
,
driver
.
GetDriverName
())
tx
.
Execer
=
[]
byte
(
"user.p.hello2.demo"
)
driver
=
LoadDriverAllow
(
tx
,
0
,
1
)
assert
.
Equal
(
t
,
"none"
,
driver
.
GetDriverName
())
}
func
TestExecAddress
(
t
*
testing
.
T
)
{
assert
.
Equal
(
t
,
"16htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp"
,
ExecAddress
(
"ticket"
))
}
vendor/github.com/33cn/chain33/system/dapp/util.go
View file @
5a3e37b1
...
...
@@ -7,6 +7,7 @@ package dapp
import
(
"fmt"
"github.com/33cn/chain33/common/db"
"github.com/33cn/chain33/types"
)
...
...
@@ -15,3 +16,37 @@ func HeightIndexStr(height, index int64) string {
v
:=
height
*
types
.
MaxTxsPerBlock
+
index
return
fmt
.
Sprintf
(
"%018d"
,
v
)
}
//KVCreator 创建KV的辅助工具
type
KVCreator
struct
{
kvs
[]
*
types
.
KeyValue
kvdb
db
.
KV
}
//NewKVCreator 创建创建者
func
NewKVCreator
(
kv
db
.
KV
)
*
KVCreator
{
return
&
KVCreator
{
kvdb
:
kv
}
}
func
(
c
*
KVCreator
)
add
(
key
,
value
[]
byte
,
set
bool
)
*
KVCreator
{
c
.
kvs
=
append
(
c
.
kvs
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
value
})
if
set
{
c
.
kvdb
.
Set
(
key
,
value
)
}
return
c
}
//Add add and set to kvdb
func
(
c
*
KVCreator
)
Add
(
key
,
value
[]
byte
)
*
KVCreator
{
return
c
.
add
(
key
,
value
,
true
)
}
//AddKV only add KV
func
(
c
*
KVCreator
)
AddKV
(
key
,
value
[]
byte
)
*
KVCreator
{
return
c
.
add
(
key
,
value
,
false
)
}
//KVList 读取所有的kv列表
func
(
c
*
KVCreator
)
KVList
()
[]
*
types
.
KeyValue
{
return
c
.
kvs
}
vendor/github.com/33cn/chain33/system/dapp/util_test.go
0 → 100644
View file @
5a3e37b1
package
dapp
import
(
"testing"
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/util"
"github.com/stretchr/testify/assert"
)
func
TestKVCreator
(
t
*
testing
.
T
)
{
dir
,
ldb
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
creator
:=
NewKVCreator
(
kvdb
)
creator
.
AddKV
([]
byte
(
"a"
),
[]
byte
(
"b"
))
_
,
err
:=
kvdb
.
Get
([]
byte
(
"a"
))
assert
.
Equal
(
t
,
err
,
types
.
ErrNotFound
)
creator
.
Add
([]
byte
(
"a"
),
[]
byte
(
"b"
))
value
,
err
:=
kvdb
.
Get
([]
byte
(
"a"
))
assert
.
Equal
(
t
,
err
,
nil
)
assert
.
Equal
(
t
,
value
,
[]
byte
(
"b"
))
}
func
TestHeightIndexStr
(
t
*
testing
.
T
)
{
assert
.
Equal
(
t
,
"000000000000100001"
,
HeightIndexStr
(
1
,
1
))
}
vendor/github.com/33cn/chain33/types/block.go
View file @
5a3e37b1
...
...
@@ -10,12 +10,37 @@ import (
"github.com/33cn/chain33/common"
"github.com/33cn/chain33/common/crypto"
"github.com/golang/protobuf/proto"
proto
"github.com/golang/protobuf/proto"
)
// Hash 获取block的hash值
func
(
block
*
Block
)
Hash
()
[]
byte
{
data
,
err
:=
proto
.
Marshal
(
block
.
GetHeader
())
if
IsFork
(
block
.
Height
,
"ForkBlockHash"
)
{
return
block
.
HashNew
()
}
return
block
.
HashOld
()
}
//HashByForkHeight hash 通过自己设置的fork 高度计算 hash
func
(
block
*
Block
)
HashByForkHeight
(
forkheight
int64
)
[]
byte
{
if
block
.
Height
>=
forkheight
{
return
block
.
HashNew
()
}
return
block
.
HashOld
()
}
//HashNew 新版本的Hash
func
(
block
*
Block
)
HashNew
()
[]
byte
{
data
,
err
:=
proto
.
Marshal
(
block
.
getHeaderHashNew
())
if
err
!=
nil
{
panic
(
err
)
}
return
common
.
Sha256
(
data
)
}
//HashOld 老版本的hash
func
(
block
*
Block
)
HashOld
()
[]
byte
{
data
,
err
:=
proto
.
Marshal
(
block
.
getHeaderHashOld
())
if
err
!=
nil
{
panic
(
err
)
}
...
...
@@ -35,11 +60,32 @@ func (block *Block) GetHeader() *Header {
head
.
TxHash
=
block
.
TxHash
head
.
BlockTime
=
block
.
BlockTime
head
.
Height
=
block
.
Height
if
IsFork
(
head
.
Height
,
"ForkBlockHash"
)
{
head
.
Difficulty
=
block
.
Difficulty
head
.
StateHash
=
block
.
StateHash
head
.
TxCount
=
int64
(
len
(
block
.
Txs
))
}
head
.
Difficulty
=
block
.
Difficulty
head
.
StateHash
=
block
.
StateHash
head
.
TxCount
=
int64
(
len
(
block
.
Txs
))
return
head
}
func
(
block
*
Block
)
getHeaderHashOld
()
*
Header
{
head
:=
&
Header
{}
head
.
Version
=
block
.
Version
head
.
ParentHash
=
block
.
ParentHash
head
.
TxHash
=
block
.
TxHash
head
.
BlockTime
=
block
.
BlockTime
head
.
Height
=
block
.
Height
return
head
}
func
(
block
*
Block
)
getHeaderHashNew
()
*
Header
{
head
:=
&
Header
{}
head
.
Version
=
block
.
Version
head
.
ParentHash
=
block
.
ParentHash
head
.
TxHash
=
block
.
TxHash
head
.
BlockTime
=
block
.
BlockTime
head
.
Height
=
block
.
Height
head
.
Difficulty
=
block
.
Difficulty
head
.
StateHash
=
block
.
StateHash
head
.
TxCount
=
int64
(
len
(
block
.
Txs
))
return
head
}
...
...
vendor/github.com/33cn/chain33/types/block_test.go
0 → 100644
View file @
5a3e37b1
package
types
import
(
"encoding/hex"
"testing"
"github.com/stretchr/testify/assert"
)
func
TestBlock
(
t
*
testing
.
T
)
{
b
:=
&
Block
{}
assert
.
Equal
(
t
,
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
,
hex
.
EncodeToString
(
b
.
Hash
()))
assert
.
Equal
(
t
,
b
.
HashOld
(),
b
.
HashNew
())
assert
.
Equal
(
t
,
b
.
HashOld
(),
b
.
Hash
())
b
.
Height
=
10
b
.
Difficulty
=
1
assert
.
NotEqual
(
t
,
b
.
HashOld
(),
b
.
HashNew
())
assert
.
NotEqual
(
t
,
b
.
HashOld
(),
b
.
HashNew
())
assert
.
Equal
(
t
,
b
.
HashNew
(),
b
.
HashByForkHeight
(
10
))
assert
.
Equal
(
t
,
b
.
HashOld
(),
b
.
HashByForkHeight
(
11
))
assert
.
Equal
(
t
,
true
,
b
.
CheckSign
())
b
.
Txs
=
append
(
b
.
Txs
,
&
Transaction
{})
assert
.
Equal
(
t
,
false
,
b
.
CheckSign
())
b
.
Txs
=
append
(
b
.
Txs
,
&
Transaction
{})
b
.
Txs
=
append
(
b
.
Txs
,
&
Transaction
{})
b
.
Txs
=
append
(
b
.
Txs
,
&
Transaction
{})
b
.
Txs
=
append
(
b
.
Txs
,
&
Transaction
{})
assert
.
Equal
(
t
,
false
,
b
.
CheckSign
())
}
vendor/github.com/33cn/chain33/types/types_test.go
View file @
5a3e37b1
...
...
@@ -262,7 +262,6 @@ func TestIterateCallBack_PrefixWithoutExecAddr(t *testing.T) {
value
:=
Encode
(
acc
)
fmt
.
Println
(
"TestIterateCallBack_PrefixWithoutExecAddr--test case 1---"
)
bRet
:=
reply
.
IterateCallBack
([]
byte
(
key
),
value
)
assert
.
Equal
(
t
,
false
,
bRet
)
assert
.
Equal
(
t
,
1
,
len
(
reply
.
Keys
))
...
...
@@ -270,7 +269,6 @@ func TestIterateCallBack_PrefixWithoutExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
1
),
reply
.
Num
)
assert
.
Equal
(
t
,
0
,
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithoutExecAddr--test case 2---"
)
bRet
=
reply
.
IterateCallBack
([]
byte
(
key
),
value
)
assert
.
Equal
(
t
,
false
,
bRet
)
assert
.
Equal
(
t
,
2
,
len
(
reply
.
Keys
))
...
...
@@ -278,7 +276,6 @@ func TestIterateCallBack_PrefixWithoutExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
2
),
reply
.
Num
)
assert
.
Equal
(
t
,
0
,
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithoutExecAddr--test case 3---"
)
key2
:=
"mavl-coins-bty-exec-16htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp:2JmFaA6unrCFYEWPGRi7uuXY1KthTJxJEP"
bRet
=
reply
.
IterateCallBack
([]
byte
(
key2
),
value
)
assert
.
Equal
(
t
,
false
,
bRet
)
...
...
@@ -287,7 +284,6 @@ func TestIterateCallBack_PrefixWithoutExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
2
),
reply
.
Num
)
assert
.
Equal
(
t
,
0
,
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithoutExecAddr--test case 4---"
)
key3
:=
"mavl-coins-bty-exec-26htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp:1JmFaA6unrCFYEWPGRi7uuXY1KthTJxJEP"
bRet
=
reply
.
IterateCallBack
([]
byte
(
key3
),
value
)
assert
.
Equal
(
t
,
false
,
bRet
)
...
...
@@ -296,7 +292,6 @@ func TestIterateCallBack_PrefixWithoutExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
3
),
reply
.
Num
)
assert
.
Equal
(
t
,
0
,
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithoutExecAddr--test case 5---"
)
reply
.
Count
=
int64
(
4
)
bRet
=
reply
.
IterateCallBack
([]
byte
(
key3
),
value
)
...
...
@@ -331,7 +326,6 @@ func TestIterateCallBack_PrefixWithExecAddr(t *testing.T) {
value
:=
Encode
(
acc
)
fmt
.
Println
(
"TestIterateCallBack_PrefixWithExecAddr--test case 1---"
)
key2
:=
"mavl-coins-bty-exec-16htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp:2JmFaA6unrCFYEWPGRi7uuXY1KthTJxJEP"
bRet
:=
reply
.
IterateCallBack
([]
byte
(
key2
),
value
)
assert
.
Equal
(
t
,
false
,
bRet
)
...
...
@@ -340,7 +334,6 @@ func TestIterateCallBack_PrefixWithExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
0
),
reply
.
Num
)
assert
.
Equal
(
t
,
0
,
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithExecAddr--test case 2---"
)
bRet
=
reply
.
IterateCallBack
([]
byte
(
key
),
value
)
assert
.
Equal
(
t
,
true
,
bRet
)
assert
.
Equal
(
t
,
1
,
len
(
reply
.
Keys
))
...
...
@@ -348,7 +341,6 @@ func TestIterateCallBack_PrefixWithExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
1
),
reply
.
Num
)
assert
.
Equal
(
t
,
len
(
key
),
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithExecAddr--test case 3---"
)
//key2 := "mavl-coins-bty-exec-16htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp:2JmFaA6unrCFYEWPGRi7uuXY1KthTJxJEP"
reply
.
NextKey
=
nil
reply
.
Count
=
int64
(
2
)
...
...
@@ -359,7 +351,6 @@ func TestIterateCallBack_PrefixWithExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
1
),
reply
.
Num
)
assert
.
Equal
(
t
,
0
,
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithExecAddr--test case 4---"
)
reply
.
NextKey
=
nil
key3
:=
"mavl-coins-bty-exec-26htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp:1JmFaA6unrCFYEWPGRi7uuXY1KthTJxJEP"
bRet
=
reply
.
IterateCallBack
([]
byte
(
key3
),
value
)
...
...
@@ -369,7 +360,6 @@ func TestIterateCallBack_PrefixWithExecAddr(t *testing.T) {
assert
.
Equal
(
t
,
int64
(
2
),
reply
.
Num
)
assert
.
Equal
(
t
,
len
(
key3
),
len
(
reply
.
NextKey
))
fmt
.
Println
(
"TestIterateCallBack_PrefixWithExecAddr--test case 5---"
)
bRet
=
reply
.
IterateCallBack
([]
byte
(
key
),
value
)
assert
.
Equal
(
t
,
true
,
bRet
)
assert
.
Equal
(
t
,
3
,
len
(
reply
.
Keys
))
...
...
vendor/github.com/33cn/chain33/util/util.go
View file @
5a3e37b1
...
...
@@ -10,6 +10,7 @@ import (
"fmt"
"io/ioutil"
"math/rand"
"os"
"os/user"
"path/filepath"
"strings"
...
...
@@ -18,6 +19,7 @@ import (
"github.com/33cn/chain33/common/address"
"github.com/33cn/chain33/common/crypto"
"github.com/33cn/chain33/common/db"
"github.com/33cn/chain33/common/log/log15"
"github.com/33cn/chain33/common/merkle"
"github.com/33cn/chain33/queue"
...
...
@@ -407,3 +409,22 @@ func ResetDatadir(cfg *types.Config, datadir string) string {
cfg
.
Store
.
DbPath
=
filepath
.
Join
(
datadir
,
cfg
.
Store
.
DbPath
)
return
datadir
}
//CreateTestDB 创建一个测试数据库
func
CreateTestDB
()
(
string
,
db
.
DB
,
db
.
KVDB
)
{
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"goleveldb"
)
if
err
!=
nil
{
panic
(
err
)
}
leveldb
,
err
:=
db
.
NewGoLevelDB
(
"goleveldb"
,
dir
,
128
)
if
err
!=
nil
{
panic
(
err
)
}
return
dir
,
leveldb
,
db
.
NewKVDB
(
leveldb
)
}
//CloseTestDB 创建一个测试数据库
func
CloseTestDB
(
dir
string
,
dbm
db
.
DB
)
{
os
.
RemoveAll
(
dir
)
dbm
.
Close
()
}
vendor/github.com/33cn/chain33/util/util_test.go
View file @
5a3e37b1
...
...
@@ -177,3 +177,13 @@ func TestDelDupTx(t *testing.T) {
txcache
=
DelDupTx
(
txcache
)
assert
.
Equal
(
t
,
txcache
,
txcacheresult
)
}
func
TestDB
(
t
*
testing
.
T
)
{
dir
,
db
,
kvdb
:=
CreateTestDB
()
defer
CloseTestDB
(
dir
,
db
)
err
:=
kvdb
.
Set
([]
byte
(
"a"
),
[]
byte
(
"b"
))
assert
.
Nil
(
t
,
err
)
value
,
err
:=
kvdb
.
Get
([]
byte
(
"a"
))
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
value
,
[]
byte
(
"b"
))
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment