blob: 8f125f712bc21966d25f705ef4bc3e5e3c7b8eeb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
#!/bin/sh
LC_ALL=C; export LC_ALL
source ${builddir:-.}/slapd.sh
probably=
compare()
{
probably=
if ! cmp -s "$@" ; then
if diff -u -i "$@" > /dev/null 2> /dev/null ; then
probably="(probably)"
fi
fi
diff -u -i "$@" > /dev/null 2> /dev/null
}
showdiff()
{
base1=`basename "$1"`
base2=`basename "$2"`
diff -u "$@" | \
sed -r -e "s,^--- .*/(.*),--- \1,g" -e "s,^\+\+\+ .*/(.*),+++ \1,g"
}
settle()
{
sleep 5
}
for subdir in "$@" ; do
pushd $subdir > /dev/null
TEST="$subdir"
precmd=
if ! $TESTS_USE_REFINT ; then
if test -s $TESTDIR/$TEST/plugin-need-refint.txt ; then
echo Skipping "$TEST", needs the refint plugin.
continue
fi
fi
if ! $TESTS_USE_MEMBEROF ; then
if test -s $TESTDIR/$TEST/plugin-need-memberof.txt ; then
echo Skipping "$TEST", needs the memberof plugin.
continue
fi
fi
if ! $TESTS_USE_MANAGED_ENTRIES ; then
if test -s $TESTDIR/$TEST/plugin-need-mep.txt ; then
echo Skipping "$TEST", needs the managed entries plugin.
continue
fi
fi
if ! $TESTS_USE_BETXN ; then
if test -s $TESTDIR/$TEST/plugin-need-betxn.txt ; then
echo Skipping "$TEST", needs backend transaction support.
continue
fi
fi
if test -s $TESTDIR/$TEST/plugin-need-wrappers.txt ; then
if ! test -s ${BTESTDIR}/wrappers.so ; then
echo Skipping "$TEST", needs test wrappers.
continue
fi
fi
if test -x edit-dse-config.sh ; then
precmd="$TESTDIR/$subdir/edit-dse-config.sh $BTESTDIR/config/dse.ldif"
fi
startslapd $TESTDIR/$subdir/dse.ldif $TESTDIR/$subdir/userRoot.ldif "$precmd"
if test -s $TESTDIR/$TEST/plugin-need-wrappers.txt ; then
ENVCMD="`cat $TESTDIR/$TEST/plugin-need-wrappers.txt`"
ENVCMD=env\ `eval echo $ENVCMD`
else
ENVCMD=
fi
if test -x $TESTDIR/$subdir/before.sh ; then
settle
$ENVCMD $TESTDIR/$subdir/before.sh > before.out 2>&1
if test -r $TESTDIR/$subdir/before.txt ; then
if ! compare $TESTDIR/$subdir/before.txt before.out ; then
echo `basename "$subdir"`:
showdiff $TESTDIR/$subdir/before.txt before.out
stopslapd
exit 1
fi
fi
fi
if test -x $TESTDIR/$subdir/change.sh ; then
settle
$ENVCMD $TESTDIR/$subdir/change.sh > change.out 2>&1
if test -r $TESTDIR/$subdir/change.txt ; then
if ! compare $TESTDIR/$subdir/change.txt change.out ; then
echo `basename "$subdir"`:
showdiff $TESTDIR/$subdir/change.txt change.out
stopslapd
exit 1
fi
fi
fi
if test -x $TESTDIR/$subdir/after.sh ; then
settle
$ENVCMD $TESTDIR/$subdir/after.sh > after.out 2>&1
if test -r $TESTDIR/$subdir/after.txt ; then
if ! compare $TESTDIR/$subdir/after.txt after.out ; then
echo `basename "$subdir"`:
showdiff $TESTDIR/$subdir/after.txt after.out
stopslapd
exit 1
fi
fi
fi
if ! test -r $TESTDIR/$subdir/before.txt ; then
if ! test -r $TESTDIR/$subdir/after.txt ; then
if test -x $TESTDIR/$subdir/post.sh ; then
if ! $TESTDIR/$subdir/post.sh $TESTDIR/$subdir/before.out $TESTDIR/$subdir/after.out ; then
echo `basename "$subdir"`:
showdiff $TESTDIR/$subdir/before.out after.out
stopslapd
exit 1
fi
fi
fi
fi
stopslapd
popd > /dev/null
if test -s $TESTDIR/$subdir/description.txt ; then
echo `basename $subdir`" ("`head -n 1 $TESTDIR/$subdir/description.txt`")": $probably OK
else
echo `basename $subdir`: $probably OK
fi
done
exit 0
|