view tests/test-bdiff.py.out @ 30449:a31634336471

drawdag: update test repos by drawing the changelog DAG in ASCII Currently, we have "debugbuilddag" which is a powerful tool to build test cases but not intuitive. We may end up running "hg log" in the test to make the test more readable. This patch adds a "drawdag" extension with a "debugdrawdag" command for similar testing purpose. Unlike the cryptic "debugbuilddag" command, it reads an ASCII graph that is intuitive to human, so the test case can be more readable. Unlike "debugbuilddag", "drawdag" does not require an empty repo. So it can be used to add new changesets to an existing repo. Since the "drawdag" logic is not that trivial and only makes sense for testing purpose, the extension is added to the "tests" directory, to make the core logic clean. If we find it useful (for example, to demonstrate cases and help user understand some cases) and want to ship it by default in the future, we can move it to a ship-by-default "debugdrawdag" at that time.
author Jun Wu <quark@fb.com>
date Wed, 09 Nov 2016 16:01:34 +0000
parents 96f2f50d923f
children 7c0c722d568d
line wrap: on
line source

test 'a\nc\n\n\n\n' 'a\nb\n\n\n'
test 'a\nb\nc\n' 'a\nc\n'
test '' ''
test 'a\nb\nc' 'a\nb\nc'
test 'a\nb\nc\nd\n' 'a\nd\n'
test 'a\nb\nc\nd\n' 'a\nc\ne\n'
test 'a\nb\nc\n' 'a\nc\n'
test 'a\n' 'c\na\nb\n'
test 'a\n' ''
test 'a\n' 'b\nc\n'
test 'a\n' 'c\na\n'
test '' 'adjfkjdjksdhfksj'
test '' 'ab'
test '' 'abc'
test 'a' 'a'
test 'ab' 'ab'
test 'abc' 'abc'
test 'a\n' 'a\n'
test 'a\nb' 'a\nb'
showdiff(
  'x\n\nx\n\nx\n\nx\n\nz\n',
  'x\n\nx\n\ny\n\nx\n\nx\n\nz\n'):
 'x\n\nx\n\n'
 6 6 '' -> 'y\n\n'
 'x\n\nx\n\nz\n'
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'):
 'x\n\nx\n\n'
 6 6 '' -> 'y\n\n'
 'x\n\n'
 9 9 '' -> 'y\n\n'
 'x\n\nz\n'
showdiff(
  'a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n',
  'a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n'):
 0 0 '' -> 'a\nb\nb\n'
 'a\nb\nb\nb\nc\n.\n'
 12 12 '' -> 'b\nc\n.\n'
 'd\ne\n'
 16 18 '.\n' -> ''
 'f\n'
done
done
Nice diff for a trivial change:
showdiff(
  '<0\n-\n<1\n-\n<2\n-\n<3\n-\n<4\n-\n',
  '>0\n-\n>1\n-\n>2\n-\n>3\n-\n>4\n-\n'):
 0 3 '<0\n' -> '>0\n'
 '-\n'
 5 8 '<1\n' -> '>1\n'
 '-\n'
 10 13 '<2\n' -> '>2\n'
 '-\n'
 15 18 '<3\n' -> '>3\n'
 '-\n'
 20 23 '<4\n' -> '>4\n'
 '-\n'
Diff 1 to 3 lines - preference for appending:
showdiff(
  'a\n',
  'a\na\na\n'):
 'a\n'
 2 2 '' -> 'a\na\n'
Diff 1 to 5 lines - preference for appending:
showdiff(
  'a\n',
  'a\na\na\na\na\n'):
 'a\n'
 2 2 '' -> 'a\na\na\na\n'
Diff 3 to 1 lines - preference for removing trailing lines:
showdiff(
  'a\na\na\n',
  'a\n'):
 'a\n'
 2 6 'a\na\n' -> ''
Diff 5 to 1 lines - preference for removing trailing lines:
showdiff(
  'a\na\na\na\na\n',
  'a\n'):
 'a\n'
 2 10 'a\na\na\na\n' -> ''