##// END OF EJS Templates
tests: make test-bdiff.py easier to maintain...
Mads Kiilerich -
r30427:ede7bc45 default
parent child Browse files
Show More
@@ -11,13 +11,12 b' def test1(a, b):'
11 if d:
11 if d:
12 c = mpatch.patches(a, [d])
12 c = mpatch.patches(a, [d])
13 if c != b:
13 if c != b:
14 print("***", repr(a), repr(b))
14 print("bad diff+patch result from\n %r to\n %r:" % (a, b))
15 print("bad:")
15 print("bdiff: %r" % d)
16 print(repr(c)[:200])
16 print("patched: %r" % c[:200])
17 print(repr(d))
18
17
19 def test(a, b):
18 def test(a, b):
20 print("***", repr(a), repr(b))
19 print("test", repr(a), repr(b))
21 test1(a, b)
20 test1(a, b)
22 test1(b, a)
21 test1(b, a)
23
22
@@ -43,13 +42,21 b' test("a\\nb", "a\\nb")'
43
42
44 #issue1295
43 #issue1295
45 def showdiff(a, b):
44 def showdiff(a, b):
45 print('showdiff(\n %r,\n %r):' % (a, b))
46 bin = bdiff.bdiff(a, b)
46 bin = bdiff.bdiff(a, b)
47 pos = 0
47 pos = 0
48 q = 0
48 while pos < len(bin):
49 while pos < len(bin):
49 p1, p2, l = struct.unpack(">lll", bin[pos:pos + 12])
50 p1, p2, l = struct.unpack(">lll", bin[pos:pos + 12])
50 pos += 12
51 pos += 12
51 print(p1, p2, repr(bin[pos:pos + l]))
52 if p1:
53 print('', repr(a[q:p1]))
54 print('', p1, p2, repr(a[p1:p2]), '->', repr(bin[pos:pos + l]))
52 pos += l
55 pos += l
56 q = p2
57 if q < len(a):
58 print('', repr(a[q:]))
59
53 showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\nx\n\nz\n")
60 showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\nx\n\nz\n")
54 showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n")
61 showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n")
55 # we should pick up abbbc. rather than bc.de as the longest match
62 # we should pick up abbbc. rather than bc.de as the longest match
@@ -1,27 +1,44 b''
1 *** 'a\nc\n\n\n\n' 'a\nb\n\n\n'
1 test 'a\nc\n\n\n\n' 'a\nb\n\n\n'
2 *** 'a\nb\nc\n' 'a\nc\n'
2 test 'a\nb\nc\n' 'a\nc\n'
3 *** '' ''
3 test '' ''
4 *** 'a\nb\nc' 'a\nb\nc'
4 test 'a\nb\nc' 'a\nb\nc'
5 *** 'a\nb\nc\nd\n' 'a\nd\n'
5 test 'a\nb\nc\nd\n' 'a\nd\n'
6 *** 'a\nb\nc\nd\n' 'a\nc\ne\n'
6 test 'a\nb\nc\nd\n' 'a\nc\ne\n'
7 *** 'a\nb\nc\n' 'a\nc\n'
7 test 'a\nb\nc\n' 'a\nc\n'
8 *** 'a\n' 'c\na\nb\n'
8 test 'a\n' 'c\na\nb\n'
9 *** 'a\n' ''
9 test 'a\n' ''
10 *** 'a\n' 'b\nc\n'
10 test 'a\n' 'b\nc\n'
11 *** 'a\n' 'c\na\n'
11 test 'a\n' 'c\na\n'
12 *** '' 'adjfkjdjksdhfksj'
12 test '' 'adjfkjdjksdhfksj'
13 *** '' 'ab'
13 test '' 'ab'
14 *** '' 'abc'
14 test '' 'abc'
15 *** 'a' 'a'
15 test 'a' 'a'
16 *** 'ab' 'ab'
16 test 'ab' 'ab'
17 *** 'abc' 'abc'
17 test 'abc' 'abc'
18 *** 'a\n' 'a\n'
18 test 'a\n' 'a\n'
19 *** 'a\nb' 'a\nb'
19 test 'a\nb' 'a\nb'
20 6 6 'y\n\n'
20 showdiff(
21 6 6 'y\n\n'
21 'x\n\nx\n\nx\n\nx\n\nz\n',
22 9 9 'y\n\n'
22 'x\n\nx\n\ny\n\nx\n\nx\n\nz\n'):
23 0 0 'a\nb\nb\n'
23 'x\n\nx\n\n'
24 12 12 'b\nc\n.\n'
24 6 6 '' -> 'y\n\n'
25 16 18 ''
25 'x\n\nx\n\nz\n'
26 showdiff(
27 'x\n\nx\n\nx\n\nx\n\nz\n',
28 'x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n'):
29 'x\n\nx\n\n'
30 6 6 '' -> 'y\n\n'
31 'x\n\n'
32 9 9 '' -> 'y\n\n'
33 'x\n\nz\n'
34 showdiff(
35 'a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n',
36 'a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n'):
37 0 0 '' -> 'a\nb\nb\n'
38 'a\nb\nb\nb\nc\n.\n'
39 12 12 '' -> 'b\nc\n.\n'
40 'd\ne\n'
41 16 18 '.\n' -> ''
42 'f\n'
26 done
43 done
27 done
44 done
General Comments 0
You need to be logged in to leave comments. Login now