summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/format/s_dumpcmp.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/test/format/s_dumpcmp.sh')
-rwxr-xr-xsrc/third_party/wiredtiger/test/format/s_dumpcmp.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/test/format/s_dumpcmp.sh b/src/third_party/wiredtiger/test/format/s_dumpcmp.sh
new file mode 100755
index 00000000000..453d42cda32
--- /dev/null
+++ b/src/third_party/wiredtiger/test/format/s_dumpcmp.sh
@@ -0,0 +1,67 @@
+#! /bin/sh
+
+trap 'exit 1' 1 2
+
+top=../..
+
+home="RUNDIR"
+wturi="file:wt"
+
+colflag=0
+bdbdir=""
+while :
+ do case "$1" in
+ # -b means we need to dump the Berkeley DB database
+ -b)
+ bdbdir="$2";
+ shift ; shift ;;
+ # -c means it was a column-store.
+ -c)
+ colflag=1
+ shift ;;
+ -h)
+ shift ;
+ home=$1
+ shift;;
+ -n)
+ shift ;
+ wturi=$1
+ shift ;;
+ *)
+ break ;;
+ esac
+done
+
+if test $# -ne 0; then
+ echo 'usage: s_dumpcmp [-bc]' >&2
+ exit 1
+fi
+
+$top/wt -h $home dump $wturi |
+ sed -e '1,/^Data$/d' > $home/wt_dump
+
+if test "X$bdbdir" = "X"; then
+ exit 0
+fi
+
+if test $colflag -eq 0; then
+ $bdbdir/bin/db_dump -p $home/bdb |
+ sed -e '1,/HEADER=END/d' \
+ -e '/DATA=END/d' \
+ -e 's/^ //' > $home/bdb_dump
+else
+ # Format stores record numbers in Berkeley DB as string keys,
+ # it's simpler that way. Convert record numbers from strings
+ # to numbers.
+ $bdbdir/bin/db_dump -p $home/bdb |
+ sed -e '1,/HEADER=END/d' \
+ -e '/DATA=END/d' \
+ -e 's/^ //' |
+ sed -e 's/^0*//' \
+ -e 's/\.00$//' \
+ -e N > $home/bdb_dump
+fi
+
+cmp $home/wt_dump $home/bdb_dump > /dev/null
+
+exit $?