t1300: add a few more hairy examples of sections becoming empty
During the review of the first iteration of the patch series to remove sections that become empty upon --unset or --unset-all, Jeff King identified a couple of problematic cases with the backtracking approach that was still used then to "look backwards for the section header": https://public-inbox.org/git/20180329213229.GG2939@sigill.intra.peff.net/ This patch adds a couple of concocted examples designed to fool a backtracking parser. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
dde154b5bd
commit
422e8ef26d
|
@ -1426,7 +1426,50 @@ test_expect_failure '--unset last key removes section (except if commented)' '
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
git config --unset section.key &&
|
git config --unset section.key &&
|
||||||
test_cmp expect .git/config
|
test_cmp expect .git/config &&
|
||||||
|
|
||||||
|
q_to_tab >.git/config <<-\EOF &&
|
||||||
|
[one]
|
||||||
|
Qkey = "multiline \
|
||||||
|
QQ# with comment"
|
||||||
|
[two]
|
||||||
|
key = true
|
||||||
|
EOF
|
||||||
|
git config --unset two.key &&
|
||||||
|
! grep two .git/config &&
|
||||||
|
|
||||||
|
q_to_tab >.git/config <<-\EOF &&
|
||||||
|
[one]
|
||||||
|
Qkey = "multiline \
|
||||||
|
QQ# with comment"
|
||||||
|
[one]
|
||||||
|
key = true
|
||||||
|
EOF
|
||||||
|
git config --unset-all one.key &&
|
||||||
|
test_line_count = 0 .git/config &&
|
||||||
|
|
||||||
|
q_to_tab >.git/config <<-\EOF &&
|
||||||
|
[one]
|
||||||
|
Qkey = true
|
||||||
|
Q# a comment not at the start
|
||||||
|
[two]
|
||||||
|
Qkey = true
|
||||||
|
EOF
|
||||||
|
git config --unset two.key &&
|
||||||
|
grep two .git/config &&
|
||||||
|
|
||||||
|
q_to_tab >.git/config <<-\EOF &&
|
||||||
|
[one]
|
||||||
|
Qkey = not [two "subsection"]
|
||||||
|
[two "subsection"]
|
||||||
|
[two "subsection"]
|
||||||
|
Qkey = true
|
||||||
|
[TWO "subsection"]
|
||||||
|
[one]
|
||||||
|
EOF
|
||||||
|
git config --unset two.subsection.key &&
|
||||||
|
test "not [two subsection]" = "$(git config one.key)" &&
|
||||||
|
test_line_count = 3 .git/config
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_failure 'adding a key into an empty section reuses header' '
|
test_expect_failure 'adding a key into an empty section reuses header' '
|
||||||
|
|
Loading…
Reference in New Issue