Merge branch 'tr/test-v-and-v-subtest-only'
Allows N instances of tests run in parallel, each running 1/N parts of the test suite under Valgrind, to speed things up. * tr/test-v-and-v-subtest-only: perf-lib: fix start/stop of perf tests test-lib: support running tests under valgrind in parallel test-lib: allow prefixing a custom string before "ok N" etc. test-lib: valgrind for only tests matching a pattern test-lib: verbose mode for only tests matching a pattern test-lib: self-test that --verbose works test-lib: rearrange start/end of test_expect_* and test_skip test-lib: refactor $GIT_SKIP_TESTS matching test-lib: enable MALLOC_* for the actual tests
This commit is contained in:
@ -47,8 +47,13 @@ test_expect_failure 'pretend we have a known breakage' '
|
||||
|
||||
run_sub_test_lib_test () {
|
||||
name="$1" descr="$2" # stdin is the body of the test code
|
||||
shift 2
|
||||
mkdir "$name" &&
|
||||
(
|
||||
# Pretend we're a test harness. This prevents
|
||||
# test-lib from writing the counts to a file that will
|
||||
# later be summarized, showing spurious "failed" tests
|
||||
export HARNESS_ACTIVE=t &&
|
||||
cd "$name" &&
|
||||
cat >"$name.sh" <<-EOF &&
|
||||
#!$SHELL_PATH
|
||||
@ -65,7 +70,7 @@ run_sub_test_lib_test () {
|
||||
cat >>"$name.sh" &&
|
||||
chmod +x "$name.sh" &&
|
||||
export TEST_DIRECTORY &&
|
||||
./"$name.sh" >out 2>err
|
||||
./"$name.sh" "$@" >out 2>err
|
||||
)
|
||||
}
|
||||
|
||||
@ -215,6 +220,60 @@ test_expect_success 'pretend we have a mix of all possible results' "
|
||||
EOF
|
||||
"
|
||||
|
||||
test_expect_success 'test --verbose' '
|
||||
test_must_fail run_sub_test_lib_test \
|
||||
test-verbose "test verbose" --verbose <<-\EOF &&
|
||||
test_expect_success "passing test" true
|
||||
test_expect_success "test with output" "echo foo"
|
||||
test_expect_success "failing test" false
|
||||
test_done
|
||||
EOF
|
||||
mv test-verbose/out test-verbose/out+
|
||||
grep -v "^Initialized empty" test-verbose/out+ >test-verbose/out &&
|
||||
check_sub_test_lib_test test-verbose <<-\EOF
|
||||
> expecting success: true
|
||||
> Z
|
||||
> ok 1 - passing test
|
||||
> Z
|
||||
> expecting success: echo foo
|
||||
> foo
|
||||
> Z
|
||||
> ok 2 - test with output
|
||||
> Z
|
||||
> expecting success: false
|
||||
> Z
|
||||
> not ok 3 - failing test
|
||||
> # false
|
||||
> Z
|
||||
> # failed 1 among 3 test(s)
|
||||
> 1..3
|
||||
EOF
|
||||
'
|
||||
|
||||
test_expect_success 'test --verbose-only' '
|
||||
test_must_fail run_sub_test_lib_test \
|
||||
test-verbose-only-2 "test verbose-only=2" \
|
||||
--verbose-only=2 <<-\EOF &&
|
||||
test_expect_success "passing test" true
|
||||
test_expect_success "test with output" "echo foo"
|
||||
test_expect_success "failing test" false
|
||||
test_done
|
||||
EOF
|
||||
check_sub_test_lib_test test-verbose-only-2 <<-\EOF
|
||||
> ok 1 - passing test
|
||||
> Z
|
||||
> expecting success: echo foo
|
||||
> foo
|
||||
> Z
|
||||
> ok 2 - test with output
|
||||
> Z
|
||||
> not ok 3 - failing test
|
||||
> # false
|
||||
> # failed 1 among 3 test(s)
|
||||
> 1..3
|
||||
EOF
|
||||
'
|
||||
|
||||
test_set_prereq HAVEIT
|
||||
haveit=no
|
||||
test_expect_success HAVEIT 'test runs if prerequisite is satisfied' '
|
||||
|
Reference in New Issue
Block a user