From 694b3ea5f5c966007b46c965424ce40a5979731b Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Fri, 26 Aug 2016 18:40:49 -0400 Subject: Add known file test case for btree byte swap Add a regression test for the preceding bugfix. This test uses btree database files with known contents and byte orders with short keys and overflow data items. (back ported from commit af3e7a4ac8b49ae8047ae2be7070d32feb69217d) ticket: 8485 version_fixed: 1.13.7 --- .gitignore | 3 ++ src/plugins/kdb/db2/libdb2/test/Makefile.in | 8 +++- src/plugins/kdb/db2/libdb2/test/run.test | 26 +++++++++++- src/plugins/kdb/db2/libdb2/test/t.be.txt | 64 +++++++++++++++++++++++++++++ src/plugins/kdb/db2/libdb2/test/t.le.txt | 64 +++++++++++++++++++++++++++++ 5 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 src/plugins/kdb/db2/libdb2/test/t.be.txt create mode 100644 src/plugins/kdb/db2/libdb2/test/t.le.txt diff --git a/.gitignore b/.gitignore index 02e85be..70e8135 100644 --- a/.gitignore +++ b/.gitignore @@ -382,3 +382,6 @@ testlog /src/util/support/t_unal /src/util/verto/rename.h + +/src/plugins/kdb/db2/libdb2/test/t.be.db +/src/plugins/kdb/db2/libdb2/test/t.le.db diff --git a/src/plugins/kdb/db2/libdb2/test/Makefile.in b/src/plugins/kdb/db2/libdb2/test/Makefile.in index 866787c..fa3a0e2 100644 --- a/src/plugins/kdb/db2/libdb2/test/Makefile.in +++ b/src/plugins/kdb/db2/libdb2/test/Makefile.in @@ -17,7 +17,12 @@ all:: dbtest: dbtest.o $(DB_DEPLIB) $(CC_LINK) -o $@ dbtest.o $(STRERROR_OBJ) $(DB_LIB) -check:: dbtest +t.be.db: $(srcdir)/t.be.txt +t.le.db: $(srcdir)/t.le.txt +t.be.db t.le.db: + $(PERL) -ne 'chomp; print pack("H*", $$_);' $? > $@ + +check:: dbtest t.be.db t.le.db $(RUN_SETUP) srcdir=$(srcdir) TMPDIR=$(TMPDIR) $(VALGRIND) $(FCTSH) $(srcdir)/run.test bttest.o: $(srcdir)/btree.tests/main.c @@ -29,3 +34,4 @@ bttest: bttest.o $(DB_DEPLIB) clean-unix:: $(RM) dbtest.o dbtest __dbtest $(RM) bttest.o bttest + $(RM) t.be.db t.le.db diff --git a/src/plugins/kdb/db2/libdb2/test/run.test b/src/plugins/kdb/db2/libdb2/test/run.test index 6f5d589..729ca1f 100644 --- a/src/plugins/kdb/db2/libdb2/test/run.test +++ b/src/plugins/kdb/db2/libdb2/test/run.test @@ -36,7 +36,7 @@ main() find $bindir -type f -exec test -r {} \; -print | head -100 > $BINFILES if [ $# -eq 0 ]; then - for t in 1 2 3 4 5 6 7 8 9 10 11 12 13 20 40 41 60 61; do + for t in 1 2 3 4 5 6 7 8 9 10 11 12 13 20 40 41 60 61 62; do test$t done else @@ -47,7 +47,7 @@ main() [0-9]*) test$1;; btree) - for t in 1 2 3 7 8 9 10 12 13 40 41 60 61; do + for t in 1 2 3 7 8 9 10 12 13 40 41 60 61 62; do test$t done;; hash) @@ -947,4 +947,26 @@ test61 () { done } +test62 () { + echo "Test 62: btree: small key, big data, known byte order files" + (echo foo1234; echo bar1234) | + awk '{ + s = $0 + for (i = 0; i < 484; i++) { + s = s "x"; + } + printf("%s\n", s); + }' > $TMP1 + (echo g; echo kfoo1234; echo g; echo kbar1234) > $TMP2 + for f in t.le.db t.be.db; do + echo " $f" + $PROG -f $f -s -o $TMP3 btree $TMP2 + if (cmp -s $TMP1 $TMP3); then : + else + echo "test62: btree: failed" + exit 1 + fi + done +} + main $* diff --git a/src/plugins/kdb/db2/libdb2/test/t.be.txt b/src/plugins/kdb/db2/libdb2/test/t.be.txt new file mode 100644 index 0000000..4c60e2e --- /dev/null +++ b/src/plugins/kdb/db2/libdb2/test/t.be.txt @@ -0,0 +1,64 @@ +0005316200000003000002000000000000000000000000200000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000001000000000000000000000002001801C801C801E4FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFF000000080000000801626172313233340A00000003000001 +ECFFFFFF000000080000000801666F6F313233340A00000002000001ECFFFFFF +0000000200000000000000000000000400000000666F6F313233347878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +787878787878787878787878787878787878787878787878787878787878780A +0000000300000000000000000000000400000000626172313233347878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +787878787878787878787878787878787878787878787878787878787878780A diff --git a/src/plugins/kdb/db2/libdb2/test/t.le.txt b/src/plugins/kdb/db2/libdb2/test/t.le.txt new file mode 100644 index 0000000..ad1154b --- /dev/null +++ b/src/plugins/kdb/db2/libdb2/test/t.le.txt @@ -0,0 +1,64 @@ +6231050003000000000200000000000000000000200000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +010000000000000000000000020000001800C801C801E401FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFF080000000800000001626172313233340A03000000EC0100 +00FFFFFF080000000800000001666F6F313233340A02000000EC010000FFFFFF +0200000000000000000000000400000000000000666F6F313233347878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +787878787878787878787878787878787878787878787878787878787878780A +0300000000000000000000000400000000000000626172313233347878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +7878787878787878787878787878787878787878787878787878787878787878 +787878787878787878787878787878787878787878787878787878787878780A -- cgit v1.1