D2604: tests: add tests about diff quality
This revision was automatically updated to reflect the committed changes. Closed by commit rHGc1af0dc644d4: tests: add tests about diff quality (authored by quark, committed by ). CHANGED PRIOR TO COMMIT https://phab.mercurial-scm.org/D2604?vs=6481=6519#toc REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2604?vs=6481=6519 REVISION DETAIL https://phab.mercurial-scm.org/D2604 AFFECTED FILES tests/hghave.py tests/test-diff-antipatience.t tests/test-diff-indent-heuristic.t CHANGE DETAILS diff --git a/tests/test-diff-indent-heuristic.t b/tests/test-diff-indent-heuristic.t new file mode 100644 --- /dev/null +++ b/tests/test-diff-indent-heuristic.t @@ -0,0 +1,339 @@ +#testcases bdiff xdiff + +#if xdiff +#require xdiff + $ cat >> $HGRCPATH < [experimental] + > xdiff = true + > EOF +#endif + + $ hg init + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 2. + > */ + > int g() { + > return 2; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + +The below two files are taken from git: t/t4061-diff-indent.sh + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + + $ hg commit -m 1 -A . -q + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_another_thing(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i + > end + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import baz + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > bar() { + > foo + > } + > + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + +#if xdiff + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -4,12 +4,6 @@ + int f() { + return 1; + } + -/* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + /* +* This function returns 3. +*/ + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -2,6 +2,10 @@ + do_something(); + } + + +if (y) { + + do_another_thing(); + +} + + + if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + +["foo", "bar", "baz"].map do |i| + + i + +end + ["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -2,6 +2,10 @@ + import foo + except ImportError: + pass + +try: + +import baz + +except ImportError: + +pass + try: + import bar + except ImportError: + diff --git a/functions.c b/functions.c + --- a/functions.c + +++ b/functions.c + @@ -1,5 +1,10 @@ + 1 + 2 + +/* function */ + +bar() { + +foo + +} + + + /* function */ + foo() { + foo + diff --git a/spaces.txt b/spaces.txt + --- a/spaces.txt + +++ b/spaces.txt + @@ -2,6 +2,9 @@ + 2 + a + + +b + +a + + + b + 3 + 4 +#else + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -5,12 +5,6 @@ + return 1; + } + /* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + -/* +* This function returns 3. +*/ + int h() { + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -3,5 +3,9 @@ + } + + if (y) { + + do_another_thing(); + +} + + + +if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + ["foo", "bar", "baz"].map do |i| + + i + +end + +["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@
D2604: tests: add tests about diff quality
quark updated this revision to Diff 6481. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2604?vs=6468=6481 REVISION DETAIL https://phab.mercurial-scm.org/D2604 AFFECTED FILES tests/hghave.py tests/test-diff-antipatience.t tests/test-diff-indent-heuristic.t CHANGE DETAILS diff --git a/tests/test-diff-indent-heuristic.t b/tests/test-diff-indent-heuristic.t new file mode 100644 --- /dev/null +++ b/tests/test-diff-indent-heuristic.t @@ -0,0 +1,339 @@ +#testcases bdiff xdiff + +#if xdiff +#require xdiff + $ cat >> $HGRCPATH < [experimental] + > xdiff = true + > EOF +#endif + + $ hg init + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 2. + > */ + > int g() { + > return 2; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + +The below two files are taken from git: t/t4061-diff-indent.sh + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + + $ hg commit -m 1 -A . -q + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_another_thing(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i + > end + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import baz + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > bar() { + > foo + > } + > + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + +#if xdiff + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -4,12 +4,6 @@ + int f() { + return 1; + } + -/* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + /* +* This function returns 3. +*/ + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -2,6 +2,10 @@ + do_something(); + } + + +if (y) { + + do_another_thing(); + +} + + + if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + +["foo", "bar", "baz"].map do |i| + + i + +end + ["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -2,6 +2,10 @@ + import foo + except ImportError: + pass + +try: + +import baz + +except ImportError: + +pass + try: + import bar + except ImportError: + diff --git a/functions.c b/functions.c + --- a/functions.c + +++ b/functions.c + @@ -1,5 +1,10 @@ + 1 + 2 + +/* function */ + +bar() { + +foo + +} + + + /* function */ + foo() { + foo + diff --git a/spaces.txt b/spaces.txt + --- a/spaces.txt + +++ b/spaces.txt + @@ -2,6 +2,9 @@ + 2 + a + + +b + +a + + + b + 3 + 4 +#else + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -5,12 +5,6 @@ + return 1; + } + /* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + -/* +* This function returns 3. +*/ + int h() { + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -3,5 +3,9 @@ + } + + if (y) { + + do_another_thing(); + +} + + + +if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + ["foo", "bar", "baz"].map do |i| + + i + +end + +["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -3,6 +3,10 @@ + except ImportError: + pass + try: + +import baz + +except ImportError: + +pass + +try: + import bar + except ImportError: + pass + diff --git a/functions.c
D2604: tests: add tests about diff quality
indygreg requested changes to this revision. indygreg added a comment. This revision now requires changes to proceed. Can you please fix the Python 3 compatibility issues? If you want to push back, we can do it as a follow-up. INLINE COMMENTS > test-diff-antipatience.t:14 > + $ hg init > + >>> open('a', 'w').write('\n'.join(list('a' + 'x' * 10 + 'u' + 'x' * 30 + > 'a\n'))) > + $ hg commit -m 1 -A a This should be `'wb'` for Python 3 compatibility. And it should use `b''` literals. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D2604 To: quark, #hg-reviewers, indygreg Cc: indygreg, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D2604: tests: add tests about diff quality
quark updated this revision to Diff 6468. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2604?vs=6461=6468 REVISION DETAIL https://phab.mercurial-scm.org/D2604 AFFECTED FILES tests/hghave.py tests/test-diff-antipatience.t tests/test-diff-indent-heuristic.t CHANGE DETAILS diff --git a/tests/test-diff-indent-heuristic.t b/tests/test-diff-indent-heuristic.t new file mode 100644 --- /dev/null +++ b/tests/test-diff-indent-heuristic.t @@ -0,0 +1,339 @@ +#testcases bdiff xdiff + +#if xdiff +#require xdiff + $ cat >> $HGRCPATH < [experimental] + > xdiff = true + > EOF +#endif + + $ hg init + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 2. + > */ + > int g() { + > return 2; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + +The below two files are taken from git: t/t4061-diff-indent.sh + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + + $ hg commit -m 1 -A . -q + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_another_thing(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i + > end + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import baz + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > bar() { + > foo + > } + > + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + +#if xdiff + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -4,12 +4,6 @@ + int f() { + return 1; + } + -/* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + /* +* This function returns 3. +*/ + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -2,6 +2,10 @@ + do_something(); + } + + +if (y) { + + do_another_thing(); + +} + + + if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + +["foo", "bar", "baz"].map do |i| + + i + +end + ["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -2,6 +2,10 @@ + import foo + except ImportError: + pass + +try: + +import baz + +except ImportError: + +pass + try: + import bar + except ImportError: + diff --git a/functions.c b/functions.c + --- a/functions.c + +++ b/functions.c + @@ -1,5 +1,10 @@ + 1 + 2 + +/* function */ + +bar() { + +foo + +} + + + /* function */ + foo() { + foo + diff --git a/spaces.txt b/spaces.txt + --- a/spaces.txt + +++ b/spaces.txt + @@ -2,6 +2,9 @@ + 2 + a + + +b + +a + + + b + 3 + 4 +#else + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -5,12 +5,6 @@ + return 1; + } + /* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + -/* +* This function returns 3. +*/ + int h() { + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -3,5 +3,9 @@ + } + + if (y) { + + do_another_thing(); + +} + + + +if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + ["foo", "bar", "baz"].map do |i| + + i + +end + +["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -3,6 +3,10 @@ + except ImportError: + pass + try: + +import baz + +except ImportError: + +pass + +try: + import bar + except ImportError: + pass + diff --git a/functions.c
D2604: tests: add tests about diff quality
quark created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY These show the differences between bdiff and xdiff. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D2604 AFFECTED FILES tests/hghave.py tests/run-tests.py tests/test-diff-antipatience.t tests/test-diff-indent-heuristic.t CHANGE DETAILS diff --git a/tests/test-diff-indent-heuristic.t b/tests/test-diff-indent-heuristic.t new file mode 100644 --- /dev/null +++ b/tests/test-diff-indent-heuristic.t @@ -0,0 +1,339 @@ +#testcases bdiff xdiff + +#if xdiff +#require xdiff + $ cat >> $HGRCPATH < [experimental] + > xdiff = true + > EOF +#endif + + $ hg init + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 2. + > */ + > int g() { + > return 2; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + +The below two files are taken from git: t/t4061-diff-indent.sh + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + + $ hg commit -m 1 -A . -q + + $ cat > a.c <<'EOF' + > /* + > * This function returns 1. + > */ + > int f() { + > return 1; + > } + > /* + > * This function returns 3. + > */ + > int h() { + > return 3; + > } + > EOF + + $ cat > b.c <<'EOF' + > if (x) { + >do_something(); + > } + > + > if (y) { + >do_another_thing(); + > } + > + > if (y) { + >do_something_else(); + > } + > EOF + + $ cat > c.rb <<'EOF' + > #!ruby + > ["foo", "bar", "baz"].map do |i| + > i + > end + > ["foo", "bar", "baz"].map do |i| + > i.upcase + > end + > EOF + + $ cat > d.py <<'EOF' + > try: + > import foo + > except ImportError: + > pass + > try: + > import baz + > except ImportError: + > pass + > try: + > import bar + > except ImportError: + > pass + > EOF + + $ cat > spaces.txt <<'EOF' + > 1 + > 2 + > a + > + > b + > a + > + > b + > 3 + > 4 + > EOF + + $ cat > functions.c <<'EOF' + > 1 + > 2 + > /* function */ + > bar() { + > foo + > } + > + > /* function */ + > foo() { + > foo + > } + > + > 3 + > 4 + > EOF + +#if xdiff + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -4,12 +4,6 @@ + int f() { + return 1; + } + -/* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + /* +* This function returns 3. +*/ + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -2,6 +2,10 @@ + do_something(); + } + + +if (y) { + + do_another_thing(); + +} + + + if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + +["foo", "bar", "baz"].map do |i| + + i + +end + ["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -2,6 +2,10 @@ + import foo + except ImportError: + pass + +try: + +import baz + +except ImportError: + +pass + try: + import bar + except ImportError: + diff --git a/functions.c b/functions.c + --- a/functions.c + +++ b/functions.c + @@ -1,5 +1,10 @@ + 1 + 2 + +/* function */ + +bar() { + +foo + +} + + + /* function */ + foo() { + foo + diff --git a/spaces.txt b/spaces.txt + --- a/spaces.txt + +++ b/spaces.txt + @@ -2,6 +2,9 @@ + 2 + a + + +b + +a + + + b + 3 + 4 +#else + $ hg diff --git + diff --git a/a.c b/a.c + --- a/a.c + +++ b/a.c + @@ -5,12 +5,6 @@ + return 1; + } + /* + - * This function returns 2. + - */ + -int g() { + - return 2; + -} + -/* +* This function returns 3. +*/ + int h() { + diff --git a/b.c b/b.c + --- a/b.c + +++ b/b.c + @@ -3,5 +3,9 @@ + } + + if (y) { + + do_another_thing(); + +} + + + +if (y) { + do_something_else(); + } + diff --git a/c.rb b/c.rb + --- a/c.rb + +++ b/c.rb + @@ -1,4 +1,7 @@ + #!ruby + ["foo", "bar", "baz"].map do |i| + + i + +end + +["foo", "bar", "baz"].map do |i| + i.upcase + end + diff --git a/d.py b/d.py + --- a/d.py + +++ b/d.py + @@ -3,6 +3,10 @@ + except ImportError: + pass + try: + +import baz + +except ImportError: + +pass + +try: +