Re: [PATCH 1/4] line-log: demonstrate a bug with nearly-overlapping ranges

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

 



Hi,

Johannes Schindelin wrote:

> Currently, this test case throws an assertion:
>
> 	Assertion failed!
>
> 	Program: git.exe
> 	File: line-log.c, Line 71
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
> ---
>  t/t4211-line-log.sh | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)

Thanks for finding and demonstrating it.  Can you say more about what
is going on in the test case?  Alternatively, could it be squashed in
with the patch that fixes it?

The below will be more nitpicky:

[...]
> --- a/t/t4211-line-log.sh
> +++ b/t/t4211-line-log.sh
> @@ -115,4 +115,21 @@ test_expect_success 'range_set_union' '
>  	git log $(for x in $(test_seq 200); do echo -L $((2*x)),+1:c.c; done)
>  '
>  
> +q_to_lf () {
> +	tr Q '\012'
> +}
> +
> +test_expect_failure 'close to overlapping ranges' '
> +	test_seq 5 >a1.c &&
> +	git add a1.c &&
> +	git commit -m "5 lines" a1.c &&

It would be nice to use test_tick or test_commit for a more realistic
history (with time marching forward).

> +	sed s/3/3QaQb/ <a1.c | q_to_lf >tmp &&
> +	mv tmp a1.c &&
> +	git commit -m "2 more lines" a1.c &&

It's probably just me, but the bit with Q makes it hard for me to
follow.  Maybe there's a simpler way?

"sed -e '3aa' -e '3ab'" works here, but I don't know how portable it
is. I'd be more tempted to do

	test_write_lines 1 2 3 4 5 >a1.c &&
	...

	test_write_lines 1 2 3 a b 4 5 >a1.c &&
	...

	test_write_lines 1 2 3 a b c 4 5 >a1.c &&
	...

which is concise and has obvious behavior.

Thanks and hope that helps,
Jonathan



[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