Blame


1 3b0f3d61 2020-01-22 neels #!/bin/sh
2 3b0f3d61 2020-01-22 neels
3 3b0f3d61 2020-01-22 neels diff_prog="../diff/diff"
4 3b0f3d61 2020-01-22 neels
5 11d9f2f7 2020-10-07 stsp # At present, test015 only passes with GNU patch.
6 11d9f2f7 2020-10-07 stsp # Larry's patch has a bug with empty files in combination with -R...
7 11d9f2f7 2020-10-07 stsp if which gpatch > /dev/null; then
8 11d9f2f7 2020-10-07 stsp patch_prog="gpatch"
9 11d9f2f7 2020-10-07 stsp else
10 11d9f2f7 2020-10-07 stsp patch_prog="patch"
11 11d9f2f7 2020-10-07 stsp fi
12 11d9f2f7 2020-10-07 stsp
13 81b40973 2020-01-22 neels diff_type=unidiff
14 3b0f3d61 2020-01-22 neels
15 3b0f3d61 2020-01-22 neels verify_diff_script() {
16 3b0f3d61 2020-01-22 neels orig_left="$1"
17 3b0f3d61 2020-01-22 neels orig_right="$2"
18 3b0f3d61 2020-01-22 neels the_diff="$3"
19 417a6e49 2020-09-26 stsp expected_diff="$4"
20 417a6e49 2020-09-26 stsp diff_opts="$5"
21 3b0f3d61 2020-01-22 neels
22 0c9a7e9d 2020-10-07 stsp if echo -- $diff_opts | grep -q -- '-w'; then
23 0c9a7e9d 2020-10-07 stsp ignore_whitespace="true"
24 0c9a7e9d 2020-10-07 stsp else
25 0c9a7e9d 2020-10-07 stsp ignore_whitespace=""
26 0c9a7e9d 2020-10-07 stsp fi
27 3b0f3d61 2020-01-22 neels verify_left="verify.$orig_left"
28 3b0f3d61 2020-01-22 neels verify_right="verify.$orig_right"
29 3b0f3d61 2020-01-22 neels
30 417a6e49 2020-09-26 stsp if [ -e "$expected_diff" ]; then
31 417a6e49 2020-09-26 stsp echo cmp "$got_diff" "$expected_diff"
32 732e8ee0 2020-09-20 stsp if ! cmp "$got_diff" "$expected_diff" ; then
33 732e8ee0 2020-09-20 stsp echo "FAIL: $got_diff != $expected_diff"
34 732e8ee0 2020-09-20 stsp return 1
35 732e8ee0 2020-09-20 stsp fi
36 417a6e49 2020-09-26 stsp fi
37 0c9a7e9d 2020-10-07 stsp if [ -z "$ignore_whitespace" -a "x$diff_type" = "xunidiff" ]; then
38 3b0f3d61 2020-01-22 neels cp "$orig_left" "$verify_right"
39 11d9f2f7 2020-10-07 stsp $patch_prog --quiet -u "$verify_right" "$the_diff"
40 3b0f3d61 2020-01-22 neels if ! cmp "$orig_right" "$verify_right" ; then
41 3b0f3d61 2020-01-22 neels echo "FAIL: $orig_right != $verify_right"
42 3b0f3d61 2020-01-22 neels return 1
43 3b0f3d61 2020-01-22 neels fi
44 3b0f3d61 2020-01-22 neels
45 3b0f3d61 2020-01-22 neels cp "$orig_right" "$verify_left"
46 11d9f2f7 2020-10-07 stsp $patch_prog --quiet -u -R "$verify_left" "$the_diff"
47 3b0f3d61 2020-01-22 neels if ! cmp "$orig_left" "$verify_left" ; then
48 3b0f3d61 2020-01-22 neels echo "FAIL: $orig_left != $verify_left"
49 3b0f3d61 2020-01-22 neels return 1
50 3b0f3d61 2020-01-22 neels fi
51 0c9a7e9d 2020-10-07 stsp elif [ -z "$ignore_whitespace" ]; then
52 3b0f3d61 2020-01-22 neels tail -n +3 "$the_diff" | grep -v "^+" | sed 's/^.//' > "$verify_left"
53 3b0f3d61 2020-01-22 neels tail -n +3 "$the_diff" | grep -v "^-" | sed 's/^.//' > "$verify_right"
54 3b0f3d61 2020-01-22 neels
55 3b0f3d61 2020-01-22 neels if ! cmp "$orig_left" "$verify_left" ; then
56 3b0f3d61 2020-01-22 neels echo "FAIL: $orig_left != $verify_left"
57 3b0f3d61 2020-01-22 neels return 1
58 3b0f3d61 2020-01-22 neels fi
59 3b0f3d61 2020-01-22 neels if ! cmp "$orig_right" "$verify_right" ; then
60 3b0f3d61 2020-01-22 neels echo "FAIL: $orig_right != $verify_right"
61 3b0f3d61 2020-01-22 neels return 1
62 3b0f3d61 2020-01-22 neels fi
63 3b0f3d61 2020-01-22 neels fi
64 3b0f3d61 2020-01-22 neels echo "OK: $diff_prog $orig_left $orig_right"
65 3b0f3d61 2020-01-22 neels return 0
66 3b0f3d61 2020-01-22 neels }
67 3b0f3d61 2020-01-22 neels
68 732e8ee0 2020-09-20 stsp for left in test*.left* ; do
69 732e8ee0 2020-09-20 stsp right="$(echo "$left" | sed 's/\.left/\.right/')"
70 0c9a7e9d 2020-10-07 stsp diff_opts="$(echo "$left" | sed 's/test[0-9]*\.left\([-a-zA-Z0-9]*\).txt/\1/')"
71 732e8ee0 2020-09-20 stsp expected_diff="$(echo "$left" | sed 's/test\([-0-9a-zA-Z]*\)\..*/expect\1.diff/')"
72 3b0f3d61 2020-01-22 neels got_diff="verify.$expected_diff"
73 3b0f3d61 2020-01-22 neels
74 732e8ee0 2020-09-20 stsp "$diff_prog" $diff_opts "$left" "$right" > "$got_diff"
75 3b0f3d61 2020-01-22 neels
76 3b0f3d61 2020-01-22 neels set -e
77 417a6e49 2020-09-26 stsp verify_diff_script "$left" "$right" "$got_diff" "$expected_diff" "$diff_opts"
78 3b0f3d61 2020-01-22 neels set +e
79 3b0f3d61 2020-01-22 neels done