Blob


1 #!/bin/sh
3 diff_prog="../diff/diff"
5 diff_type=unidiff
7 verify_diff_script() {
8 orig_left="$1"
9 orig_right="$2"
10 the_diff="$3"
12 verify_left="verify.$orig_left"
13 verify_right="verify.$orig_right"
15 if [ "x$diff_type" = "xunidiff" ]; then
16 cp "$orig_left" "$verify_right"
17 patch --quiet -u "$verify_right" "$the_diff"
18 if ! cmp "$orig_right" "$verify_right" ; then
19 echo "FAIL: $orig_right != $verify_right"
20 return 1
21 fi
23 cp "$orig_right" "$verify_left"
24 patch --quiet -u -R "$verify_left" "$the_diff"
25 if ! cmp "$orig_left" "$verify_left" ; then
26 echo "FAIL: $orig_left != $verify_left"
27 return 1
28 fi
29 else
30 tail -n +3 "$the_diff" | grep -v "^+" | sed 's/^.//' > "$verify_left"
31 tail -n +3 "$the_diff" | grep -v "^-" | sed 's/^.//' > "$verify_right"
33 if ! cmp "$orig_left" "$verify_left" ; then
34 echo "FAIL: $orig_left != $verify_left"
35 return 1
36 fi
37 if ! cmp "$orig_right" "$verify_right" ; then
38 echo "FAIL: $orig_right != $verify_right"
39 return 1
40 fi
41 fi
42 echo "OK: $diff_prog $orig_left $orig_right"
43 return 0
44 }
46 for left in test*.left.* ; do
47 right="$(echo "$left" | sed 's/\.left\./.right./')"
48 expected_diff="$(echo "$left" | sed 's/test\([0-9]*\)\..*/expect\1.diff/')"
49 got_diff="verify.$expected_diff"
51 "$diff_prog" "$left" "$right" > "$got_diff"
53 set -e
54 verify_diff_script "$left" "$right" "$got_diff"
55 set +e
56 done