Commit 482dd563 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 75a0c643
......@@ -19,9 +19,20 @@
package btree
//go:generate ./py/gen-testdata
import (
//"testing"
"testing"
)
type kv struct {
key int64
value interface{}
}
type testEntry struct {
oid zodb.Oid
itemv []kv
}
// TODO
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# Copyright (C) 2018 Nexedi SA and Contributors.
# Kirill Smelkov <kirr@nexedi.com>
#
# This program is free software: you can Use, Study, Modify and Redistribute
# it under the terms of the GNU General Public License version 3, or (at your
# option) any later version, as published by the Free Software Foundation.
#
# You can also Link and Combine this program with other software covered by
# the terms of any of the Free Software licenses or any of the Open Source
# Initiative approved licenses and Convey the resulting work. Corresponding
# source of such a combination shall include the source code for all other
# software used.
#
# This program is distributed WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See COPYING file for full licensing terms.
# See https://www.nexedi.com/licensing for rationale and options.
"""generate test data for btree serialization tests"""
from ZODB.DB import DB
from BTrees.LOBTree import LOBucket
from ZODB.utils import u64
import os, transaction
from golang.gcompat import qq
def main():
outfs = "testdata/1.fs"
os.remove(outfs)
db = DB(outfs)
conn = db.open()
root = conn.root()
root['b0'] = b0 = LOBucket() # empty bucket
root['b1'] = b1 = LOBucket([(10, 17)]) # 1k -> 1v
root['b2'] = b2 = LOBucket([(15, 1), (23, "hello")]) # 2k -> 2v
transaction.commit()
with open("ztestdata_expect_test.go", "w") as f:
def emit(v):
print >>f, v
emit("// Code generated by %s; DO NOT EDIT." % __file__)
emit("package btree\n")
emit("import \"lab.nexedi.com/kirr/neo/go/zodb\"\n")
emit("\nvar _1fs_testEntry = [...]testEntry{")
for b in (b0, b1, b2):
s = "testEntry{oid: %s, itemv: []kv{" % u64(b._p_oid)
for k, v in b.items():
if isinstance(v, str):
v = qq(v)
s += "{%s, %s}, " % (k, v)
s += "},"
emit("\t"+s)
emit("}")
conn.close()
db.close()
if __name__ == '__main__':
main()
// Code generated by ./py/gen-testdata; DO NOT EDIT.
package btree
import "lab.nexedi.com/kirr/neo/go/zodb"
var _1fs_testEntry = [...]testEntry{
testEntry{oid: 1, itemv: []kv{},
testEntry{oid: 2, itemv: []kv{{10, 17}, },
testEntry{oid: 3, itemv: []kv{{15, 1}, {23, "hello"}, },
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment