tests/test-diff-ignore-whitespace
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Wed, 26 Sep 2007 01:58:45 -0300
changeset 5338 f87685355c9c
parent 4878 372d93f03d3a
permissions -rwxr-xr-x
revlog: fix revlogio.packentry corner case We want to store version information about the revlog in the first entry of its index. The code in packentry was using some heuristics to detect whether this was the first entry, but these heuristics could fail in some cases (e.g. rev 0 was empty; rev 1 descends directly from the nullid and is stored as a delta). We now give the revision number to packentry to avoid heuristics.

#!/bin/sh

# GNU diff is the reference for all of these results.

hgdiff() {
    echo hg diff $@
    hg diff --nodates "$@"
}

test_added_blank_lines() {
    printf '\nhello world\n\ngoodbye world\n\n' >foo

    echo '>>> two diffs showing three added lines <<<'
    hgdiff
    hgdiff -b

    echo '>>> no diffs <<<'
    hgdiff -B
    hgdiff -Bb
}

test_added_horizontal_space_first_on_a_line() {
    printf '\t hello world\ngoodbye world\n' >foo

    echo '>>> four diffs showing added space first on the first line <<<'
    hgdiff
    hgdiff -b
    hgdiff -B
    hgdiff -Bb
}

test_added_horizontal_space_last_on_a_line() {
    printf 'hello world\t \ngoodbye world\n' >foo

    echo '>>> two diffs showing space appended to the first line <<<'
    hgdiff
    hgdiff -B

    echo '>>> no diffs <<<'
    hgdiff -b
    hgdiff -Bb
}

test_added_horizontal_space_in_the_middle_of_a_word() {
    printf 'hello world\ngood bye world\n' >foo

    echo '>>> four diffs showing space inserted into "goodbye" <<<'
    hgdiff
    hgdiff -B
    hgdiff -b
    hgdiff -Bb
}

test_increased_horizontal_whitespace_amount() {
    printf 'hello world\ngoodbye\t\t  \tworld\n' >foo

    echo '>>> two diffs showing changed whitespace amount in the last line <<<'
    hgdiff
    hgdiff -B

    echo '>>> no diffs <<<'
    hgdiff -b
    hgdiff -Bb
}

test_added_blank_line_with_horizontal_whitespace() {
    printf 'hello world\n \t\ngoodbye world\n' >foo

    echo '>>> four diffs showing added blank line w/horizontal space <<<'
    hgdiff
    hgdiff -B
    hgdiff -b
    hgdiff -Bb
}

test_added_blank_line_with_other_whitespace() {
    printf 'hello  world\n \t\ngoodbye world \n' >foo

    echo '>>> three diffs showing added blank line w/other space <<<'
    hgdiff
    hgdiff -B
    hgdiff -b
    hgdiff -Bb
}

test_whitespace_changes() {
    printf 'helloworld\ngoodbye\tworld \n' >foo

    echo '>>> four diffs showing changed whitespace <<<'
    hgdiff
    hgdiff -B
    hgdiff -b
    hgdiff -Bb
    hgdiff -w
}

test_whitespace_changes_and_blank_lines() {
    printf 'helloworld\n\n\n\ngoodbye\tworld \n' >foo

    echo '>>> five diffs showing changed whitespace <<<'
    hgdiff
    hgdiff -B
    hgdiff -b
    hgdiff -Bb
    hgdiff -w
    hgdiff -wB
}

hg init
printf 'hello world\ngoodbye world\n' >foo
hg ci -Amfoo -ufoo -d '0 0'

test_added_blank_lines
test_added_horizontal_space_first_on_a_line
test_added_horizontal_space_last_on_a_line
test_added_horizontal_space_in_the_middle_of_a_word
test_increased_horizontal_whitespace_amount
test_added_blank_line_with_horizontal_whitespace
test_added_blank_line_with_other_whitespace
test_whitespace_changes
test_whitespace_changes_and_blank_lines