diff options
author | Thomas Rast <trast@inf.ethz.ch> | 2013-04-05 16:34:48 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-05 19:39:09 +0200 |
commit | 209618860c2627a4e134a15472587c574b328b40 (patch) | |
tree | c0c33f379053fb4150b1dbfc1fd506a925c948a4 /t/t4211-line-log.sh | |
parent | log -L: check range set invariants when we look it up (diff) | |
download | git-209618860c2627a4e134a15472587c574b328b40.tar.xz git-209618860c2627a4e134a15472587c574b328b40.zip |
log -L: fix overlapping input ranges
The existing code was too defensive, and would trigger the assert in
range_set_append() if the user gave overlapping ranges.
The intent was always to define overlapping ranges as just the union
of all of them, as evidenced by the call to sort_and_merge_range_set().
(Which was already used, unlike what the comment said.)
Fix by splitting out the meat of range_set_append() to a new _unsafe()
function that lacks the paranoia. sort_and_merge_range_set will fix
up the ranges, so we don't need the checks there.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4211-line-log.sh')
-rwxr-xr-x | t/t4211-line-log.sh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/t/t4211-line-log.sh b/t/t4211-line-log.sh index 426a82868e..2341351e1b 100755 --- a/t/t4211-line-log.sh +++ b/t/t4211-line-log.sh @@ -39,6 +39,12 @@ canned_test "-L 24,+1:a.c simple" vanishes-early canned_test "-L '/long f/,/^}/:b.c' move-support" move-support-f +canned_test "-L 4,12:a.c -L :main:a.c simple" multiple +canned_test "-L 4,18:a.c -L :main:a.c simple" multiple-overlapping +canned_test "-L :main:a.c -L 4,18:a.c simple" multiple-overlapping +canned_test "-L 4:a.c -L 8,12:a.c simple" multiple-superset +canned_test "-L 8,12:a.c -L 4:a.c simple" multiple-superset + test_bad_opts "-L" "switch.*requires a value" test_bad_opts "-L b.c" "argument.*not of the form" test_bad_opts "-L 1:" "argument.*not of the form" |