1#!/bin/sh
2# Blackbox test for tdbbackup of given ldb or tdb database
3# Copyright (C) 2018 Andrew Bartlett <abartlet@samba.org>
4
5if [ $# -lt 1 ]; then
6	echo "Usage: $0 LDBFILE"
7	exit 1;
8fi
9
10LDBFILE=$1
11
12timestamp() {
13  date -u +'time: %Y-%m-%d %H:%M:%S.%6NZ' | sed 's/\..*NZ$/.000000Z/'
14}
15
16subunit_fail_test () {
17  timestamp
18  printf 'failure: %s [\n' "$1"
19  cat -
20  echo "]"
21}
22
23testit () {
24	name="$1"
25	shift
26	cmdline="$@"
27	timestamp
28	printf 'test: %s\n' "$1"
29	output=`$cmdline 2>&1`
30	status=$?
31	if [ x$status = x0 ]; then
32		timestamp
33		printf 'success: %s\n' "$name"
34	else
35		echo "$output" | subunit_fail_test "$name"
36	fi
37	return $status
38}
39
40$BINDIR/tdbdump $LDBFILE | sort > orig_dump
41
42testit "normal tdbbackup on tdb file" $BINDIR/tdbbackup $LDBFILE -s .bak
43$BINDIR/tdbdump $LDBFILE.bak | sort > bak_dump
44testit "cmp between tdbdumps of original and backup" cmp orig_dump bak_dump
45rm $LDBFILE.bak
46rm bak_dump
47
48testit "readonly tdbbackup on tdb file" $BINDIR/tdbbackup $LDBFILE -s .bak -r
49$BINDIR/tdbdump $LDBFILE.bak | sort > bak_dump
50testit "cmp between tdbdumps of original and back dbs" cmp orig_dump bak_dump
51rm $LDBFILE.bak
52rm bak_dump
53
54rm orig_dump
55