Fix changes sometimes disappearing entirely
```git-check-assertions run test/mechanicaldiff.bats assert_success git checkout HEAD~ bin run test/mechanicaldiff.bats assert_failure assert_output --partial "not ok 9 keeps matching change with an extra removed line" assert_output --partial "not ok 10 keeps matching change with an extra added line" ```
This commit is contained in:
parent
c55e0276a6
commit
057686a6b9
4 changed files with 74 additions and 4 deletions
|
|
@ -162,6 +162,71 @@ setup() {
|
|||
assert_output "$(cat "$BATS_TEST_TMPDIR/diff")"
|
||||
}
|
||||
|
||||
@test "keeps matching change with an extra removed line" {
|
||||
cat >"$BATS_TEST_TMPDIR/old" <<-'EOF'
|
||||
foo
|
||||
bar
|
||||
baz
|
||||
EOF
|
||||
cat >"$BATS_TEST_TMPDIR/new" <<-'EOF'
|
||||
foo_changed
|
||||
baz
|
||||
EOF
|
||||
|
||||
git diff --no-index "$BATS_TEST_TMPDIR/old" "$BATS_TEST_TMPDIR/new" \
|
||||
>"$BATS_TEST_TMPDIR/diff" || true
|
||||
|
||||
cat >"$BATS_TEST_TMPDIR/new_kept" <<-'EOF'
|
||||
foo_changed
|
||||
bar
|
||||
baz
|
||||
EOF
|
||||
git diff --no-index "$BATS_TEST_TMPDIR/old" \
|
||||
"$BATS_TEST_TMPDIR/new_kept" \
|
||||
>"$BATS_TEST_TMPDIR/diff_expected" || true
|
||||
|
||||
run mechanicaldiff foo foo_changed <"$BATS_TEST_TMPDIR/diff"
|
||||
assert_failure
|
||||
expected="$(sed \
|
||||
-e 's/new_kept/new/g' \
|
||||
-e '/^index /d' \
|
||||
"$BATS_TEST_TMPDIR/diff_expected")"
|
||||
output_normalized="$(printf '%s\n' "$output" | recountdiff | sed -e '/^index /d')"
|
||||
assert_equal "$expected" "$output_normalized"
|
||||
}
|
||||
|
||||
@test "keeps matching change with an extra added line" {
|
||||
cat >"$BATS_TEST_TMPDIR/old" <<-'EOF'
|
||||
foo
|
||||
baz
|
||||
EOF
|
||||
cat >"$BATS_TEST_TMPDIR/new" <<-'EOF'
|
||||
foo_changed
|
||||
bar
|
||||
baz
|
||||
EOF
|
||||
|
||||
git diff --no-index "$BATS_TEST_TMPDIR/old" "$BATS_TEST_TMPDIR/new" \
|
||||
>"$BATS_TEST_TMPDIR/diff" || true
|
||||
|
||||
cat >"$BATS_TEST_TMPDIR/new_kept" <<-'EOF'
|
||||
foo_changed
|
||||
baz
|
||||
EOF
|
||||
git diff --no-index "$BATS_TEST_TMPDIR/old" \
|
||||
"$BATS_TEST_TMPDIR/new_kept" \
|
||||
>"$BATS_TEST_TMPDIR/diff_expected" || true
|
||||
|
||||
run mechanicaldiff foo foo_changed <"$BATS_TEST_TMPDIR/diff"
|
||||
assert_failure
|
||||
expected="$(sed \
|
||||
-e 's/new_kept/new/g' \
|
||||
-e '/^index /d' \
|
||||
"$BATS_TEST_TMPDIR/diff_expected")"
|
||||
output_normalized="$(printf '%s\n' "$output" | recountdiff | sed -e '/^index /d')"
|
||||
assert_equal "$expected" "$output_normalized"
|
||||
}
|
||||
|
||||
@test "ignores leading and trailing blank lines for comparison" {
|
||||
cat >"$BATS_TEST_TMPDIR/old" <<-'EOF'
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue