Re: [PATCH v6 11/21] range-diff: add tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/13, Thomas Rast via GitGitGadget wrote:
> From: Thomas Rast <tr@xxxxxxxxxxxxx>
> 
> These are essentially lifted from https://github.com/trast/tbdiff, with
> light touch-ups to account for the command now being named `git
> range-diff`.
> 
> Apart from renaming `tbdiff` to `range-diff`, only one test case needed
> to be adjusted: 11 - 'changed message'.
> 
> The underlying reason it had to be adjusted is that diff generation is
> sometimes ambiguous. In this case, a comment line and an empty line are
> added, but it is ambiguous whether they were added after the existing
> empty line, or whether an empty line and the comment line are added
> *before* the existing empty line. And apparently xdiff picks a different
> option here than Python's difflib.
>

Just noticed while reading the whole series again (hopefully for the
last time :)), do we need Thomas Rast's Sign-off here, as he is
credited as the author here? 

> Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
> ---
>  t/.gitattributes       |   1 +
>  t/t3206-range-diff.sh  | 145 ++++++++++
>  t/t3206/history.export | 604 +++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 750 insertions(+)
>  create mode 100755 t/t3206-range-diff.sh
>  create mode 100644 t/t3206/history.export
> 
> diff --git a/t/.gitattributes b/t/.gitattributes
> index 3bd959ae5..b17bf71b8 100644
> --- a/t/.gitattributes
> +++ b/t/.gitattributes
> @@ -1,6 +1,7 @@
>  t[0-9][0-9][0-9][0-9]/* -whitespace
>  /diff-lib/* eol=lf
>  /t0110/url-* binary
> +/t3206/* eol=lf
>  /t3900/*.txt eol=lf
>  /t3901/*.txt eol=lf
>  /t4034/*/* eol=lf
> diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh
> new file mode 100755
> index 000000000..2237c7f4a
> --- /dev/null
> +++ b/t/t3206-range-diff.sh
> @@ -0,0 +1,145 @@
> +#!/bin/sh
> +
> +test_description='range-diff tests'
> +
> +. ./test-lib.sh
> +
> +# Note that because of the range-diff's heuristics, test_commit does more
> +# harm than good.  We need some real history.
> +
> +test_expect_success 'setup' '
> +	git fast-import < "$TEST_DIRECTORY"/t3206/history.export
> +'
> +
> +test_expect_success 'simple A..B A..C (unmodified)' '
> +	git range-diff --no-color master..topic master..unmodified \
> +		>actual &&
> +	cat >expected <<-EOF &&
> +	1:  4de457d = 1:  35b9b25 s/5/A/
> +	2:  fccce22 = 2:  de345ab s/4/A/
> +	3:  147e64e = 3:  9af6654 s/11/B/
> +	4:  a63e992 = 4:  2901f77 s/12/B/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'simple B...C (unmodified)' '
> +	git range-diff --no-color topic...unmodified >actual &&
> +	# same "expected" as above
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'simple A B C (unmodified)' '
> +	git range-diff --no-color master topic unmodified >actual &&
> +	# same "expected" as above
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'trivial reordering' '
> +	git range-diff --no-color master topic reordered >actual &&
> +	cat >expected <<-EOF &&
> +	1:  4de457d = 1:  aca177a s/5/A/
> +	3:  147e64e = 2:  14ad629 s/11/B/
> +	4:  a63e992 = 3:  ee58208 s/12/B/
> +	2:  fccce22 = 4:  307b27a s/4/A/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'removed a commit' '
> +	git range-diff --no-color master topic removed >actual &&
> +	cat >expected <<-EOF &&
> +	1:  4de457d = 1:  7657159 s/5/A/
> +	2:  fccce22 < -:  ------- s/4/A/
> +	3:  147e64e = 2:  43d84d3 s/11/B/
> +	4:  a63e992 = 3:  a740396 s/12/B/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'added a commit' '
> +	git range-diff --no-color master topic added >actual &&
> +	cat >expected <<-EOF &&
> +	1:  4de457d = 1:  2716022 s/5/A/
> +	2:  fccce22 = 2:  b62accd s/4/A/
> +	-:  ------- > 3:  df46cfa s/6/A/
> +	3:  147e64e = 4:  3e64548 s/11/B/
> +	4:  a63e992 = 5:  12b4063 s/12/B/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'new base, A B C' '
> +	git range-diff --no-color master topic rebased >actual &&
> +	cat >expected <<-EOF &&
> +	1:  4de457d = 1:  cc9c443 s/5/A/
> +	2:  fccce22 = 2:  c5d9641 s/4/A/
> +	3:  147e64e = 3:  28cc2b6 s/11/B/
> +	4:  a63e992 = 4:  5628ab7 s/12/B/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'new base, B...C' '
> +	# this syntax includes the commits from master!
> +	git range-diff --no-color topic...rebased >actual &&
> +	cat >expected <<-EOF &&
> +	-:  ------- > 1:  a31b12e unrelated
> +	1:  4de457d = 2:  cc9c443 s/5/A/
> +	2:  fccce22 = 3:  c5d9641 s/4/A/
> +	3:  147e64e = 4:  28cc2b6 s/11/B/
> +	4:  a63e992 = 5:  5628ab7 s/12/B/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'changed commit' '
> +	git range-diff --no-color topic...changed >actual &&
> +	cat >expected <<-EOF &&
> +	1:  4de457d = 1:  a4b3333 s/5/A/
> +	2:  fccce22 = 2:  f51d370 s/4/A/
> +	3:  147e64e ! 3:  0559556 s/11/B/
> +	    @@ -10,7 +10,7 @@
> +	      9
> +	      10
> +	     -11
> +	    -+B
> +	    ++BB
> +	      12
> +	      13
> +	      14
> +	4:  a63e992 ! 4:  d966c5c s/12/B/
> +	    @@ -8,7 +8,7 @@
> +	     @@
> +	      9
> +	      10
> +	    - B
> +	    + BB
> +	     -12
> +	     +B
> +	      13
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_expect_success 'changed message' '
> +	git range-diff --no-color topic...changed-message >actual &&
> +	sed s/Z/\ /g >expected <<-EOF &&
> +	1:  4de457d = 1:  f686024 s/5/A/
> +	2:  fccce22 ! 2:  4ab067d s/4/A/
> +	    @@ -2,6 +2,8 @@
> +	    Z
> +	    Z    s/4/A/
> +	    Z
> +	    +    Also a silly comment here!
> +	    +
> +	    Zdiff --git a/file b/file
> +	    Z--- a/file
> +	    Z+++ b/file
> +	3:  147e64e = 3:  b9cb956 s/11/B/
> +	4:  a63e992 = 4:  8add5f1 s/12/B/
> +	EOF
> +	test_cmp expected actual
> +'
> +
> +test_done
> diff --git a/t/t3206/history.export b/t/t3206/history.export
> new file mode 100644
> index 000000000..b8ffff094
> --- /dev/null
> +++ b/t/t3206/history.export
> @@ -0,0 +1,604 @@
> +blob
> +mark :1
> +data 51
> +1
> +2
> +3
> +4
> +5
> +6
> +7
> +8
> +9
> +10
> +11
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +reset refs/heads/removed
> +commit refs/heads/removed
> +mark :2
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374424921 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374484724 +0200
> +data 8
> +initial
> +M 100644 :1 file
> +
> +blob
> +mark :3
> +data 51
> +1
> +2
> +3
> +4
> +A
> +6
> +7
> +8
> +9
> +10
> +11
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/topic
> +mark :4
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +blob
> +mark :5
> +data 51
> +1
> +2
> +3
> +A
> +A
> +6
> +7
> +8
> +9
> +10
> +11
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/topic
> +mark :6
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +data 7
> +s/4/A/
> +from :4
> +M 100644 :5 file
> +
> +blob
> +mark :7
> +data 50
> +1
> +2
> +3
> +A
> +A
> +6
> +7
> +8
> +9
> +10
> +B
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/topic
> +mark :8
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +data 8
> +s/11/B/
> +from :6
> +M 100644 :7 file
> +
> +blob
> +mark :9
> +data 49
> +1
> +2
> +3
> +A
> +A
> +6
> +7
> +8
> +9
> +10
> +B
> +B
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/topic
> +mark :10
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +data 8
> +s/12/B/
> +from :8
> +M 100644 :9 file
> +
> +blob
> +mark :11
> +data 10
> +unrelated
> +
> +commit refs/heads/master
> +mark :12
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485127 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485127 +0200
> +data 10
> +unrelated
> +from :2
> +M 100644 :11 otherfile
> +
> +commit refs/heads/rebased
> +mark :13
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485137 +0200
> +data 7
> +s/5/A/
> +from :12
> +M 100644 :3 file
> +
> +commit refs/heads/rebased
> +mark :14
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485138 +0200
> +data 7
> +s/4/A/
> +from :13
> +M 100644 :5 file
> +
> +commit refs/heads/rebased
> +mark :15
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485138 +0200
> +data 8
> +s/11/B/
> +from :14
> +M 100644 :7 file
> +
> +commit refs/heads/rebased
> +mark :16
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485138 +0200
> +data 8
> +s/12/B/
> +from :15
> +M 100644 :9 file
> +
> +commit refs/heads/added
> +mark :17
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485341 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +commit refs/heads/added
> +mark :18
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485341 +0200
> +data 7
> +s/4/A/
> +from :17
> +M 100644 :5 file
> +
> +blob
> +mark :19
> +data 51
> +1
> +2
> +3
> +A
> +A
> +A
> +7
> +8
> +9
> +10
> +11
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/added
> +mark :20
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485186 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485341 +0200
> +data 7
> +s/6/A/
> +from :18
> +M 100644 :19 file
> +
> +blob
> +mark :21
> +data 50
> +1
> +2
> +3
> +A
> +A
> +A
> +7
> +8
> +9
> +10
> +B
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/added
> +mark :22
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485341 +0200
> +data 8
> +s/11/B/
> +from :20
> +M 100644 :21 file
> +
> +blob
> +mark :23
> +data 49
> +1
> +2
> +3
> +A
> +A
> +A
> +7
> +8
> +9
> +10
> +B
> +B
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/added
> +mark :24
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485341 +0200
> +data 8
> +s/12/B/
> +from :22
> +M 100644 :23 file
> +
> +commit refs/heads/reordered
> +mark :25
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485350 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +blob
> +mark :26
> +data 50
> +1
> +2
> +3
> +4
> +A
> +6
> +7
> +8
> +9
> +10
> +B
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/reordered
> +mark :27
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485350 +0200
> +data 8
> +s/11/B/
> +from :25
> +M 100644 :26 file
> +
> +blob
> +mark :28
> +data 49
> +1
> +2
> +3
> +4
> +A
> +6
> +7
> +8
> +9
> +10
> +B
> +B
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/reordered
> +mark :29
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485350 +0200
> +data 8
> +s/12/B/
> +from :27
> +M 100644 :28 file
> +
> +commit refs/heads/reordered
> +mark :30
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485350 +0200
> +data 7
> +s/4/A/
> +from :29
> +M 100644 :9 file
> +
> +commit refs/heads/changed
> +mark :31
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485507 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +commit refs/heads/changed
> +mark :32
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485507 +0200
> +data 7
> +s/4/A/
> +from :31
> +M 100644 :5 file
> +
> +blob
> +mark :33
> +data 51
> +1
> +2
> +3
> +A
> +A
> +6
> +7
> +8
> +9
> +10
> +BB
> +12
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/changed
> +mark :34
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485507 +0200
> +data 8
> +s/11/B/
> +from :32
> +M 100644 :33 file
> +
> +blob
> +mark :35
> +data 50
> +1
> +2
> +3
> +A
> +A
> +6
> +7
> +8
> +9
> +10
> +BB
> +B
> +13
> +14
> +15
> +16
> +17
> +18
> +19
> +20
> +
> +commit refs/heads/changed
> +mark :36
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485507 +0200
> +data 8
> +s/12/B/
> +from :34
> +M 100644 :35 file
> +
> +commit refs/heads/changed-message
> +mark :37
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485530 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +commit refs/heads/changed-message
> +mark :38
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485530 +0200
> +data 35
> +s/4/A/
> +
> +Also a silly comment here!
> +from :37
> +M 100644 :5 file
> +
> +commit refs/heads/changed-message
> +mark :39
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485536 +0200
> +data 8
> +s/11/B/
> +from :38
> +M 100644 :7 file
> +
> +commit refs/heads/changed-message
> +mark :40
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485536 +0200
> +data 8
> +s/12/B/
> +from :39
> +M 100644 :9 file
> +
> +commit refs/heads/unmodified
> +mark :41
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485631 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +commit refs/heads/unmodified
> +mark :42
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485024 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485631 +0200
> +data 7
> +s/4/A/
> +from :41
> +M 100644 :5 file
> +
> +commit refs/heads/unmodified
> +mark :43
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485632 +0200
> +data 8
> +s/11/B/
> +from :42
> +M 100644 :7 file
> +
> +commit refs/heads/unmodified
> +mark :44
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374485632 +0200
> +data 8
> +s/12/B/
> +from :43
> +M 100644 :9 file
> +
> +commit refs/heads/removed
> +mark :45
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485014 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374486061 +0200
> +data 7
> +s/5/A/
> +from :2
> +M 100644 :3 file
> +
> +commit refs/heads/removed
> +mark :46
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485036 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374486061 +0200
> +data 8
> +s/11/B/
> +from :45
> +M 100644 :26 file
> +
> +commit refs/heads/removed
> +mark :47
> +author Thomas Rast <trast@xxxxxxxxxxx> 1374485044 +0200
> +committer Thomas Rast <trast@xxxxxxxxxxx> 1374486061 +0200
> +data 8
> +s/12/B/
> +from :46
> +M 100644 :28 file
> +
> +reset refs/heads/removed
> +from :47
> +
> -- 
> gitgitgadget
> 



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux