mingw: support spawning programs containing spaces in their names
[gitweb.git] / t / t0211-trace2-perf.sh
index 953e2f78471f647312c4b53920a4d71f24f9c4d5..2c3ad6e8c186d7c563d9e10db228dcb21d19a99a 100755 (executable)
@@ -3,6 +3,11 @@
 test_description='test trace2 facility (perf target)'
 . ./test-lib.sh
 
+# Turn off any inherited trace2 settings for this test.
+sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
+sane_unset GIT_TRACE2_PERF_BRIEF
+sane_unset GIT_TRACE2_CONFIG_PARAMS
+
 # Add t/helper directory to PATH so that we can use a relative
 # path to run nested instances of test-tool.exe (see 004child).
 # This helps with HEREDOC comparisons later.
@@ -15,11 +20,6 @@ PATH="$TTDIR:$PATH" && export PATH
 # Warning: So you may see extra lines in artifact files when
 # Warning: interactively debugging.
 
-# Turn off any inherited trace2 settings for this test.
-unset GIT_TR2 GIT_TR2_PERF GIT_TR2_EVENT
-unset GIT_TR2_PERF_BRIEF
-unset GIT_TR2_CONFIG_PARAMS
-
 V=$(git version | sed -e 's/^git version //') && export V
 
 # There are multiple trace2 targets: normal, perf, and event.
@@ -27,13 +27,13 @@ V=$(git version | sed -e 's/^git version //') && export V
 # to whatever filtering that target decides to do).
 # Test each target independently.
 #
-# Defer setting GIT_TR2_PERF until the actual command we want to
+# Defer setting GIT_TRACE2_PERF until the actual command we want to
 # test because hidden git and test-tool commands in the test
 # harness can contaminate our output.
 
 # Enable "brief" feature which turns off the prefix:
 #     "<clock> <file>:<line> | <nr_parents> | "
-GIT_TR2_PERF_BRIEF=1 && export GIT_TR2_PERF_BRIEF
+GIT_TRACE2_PERF_BRIEF=1 && export GIT_TRACE2_PERF_BRIEF
 
 # Repeat some of the t0210 tests using the perf target stream instead of
 # the normal stream.
@@ -46,11 +46,11 @@ GIT_TR2_PERF_BRIEF=1 && export GIT_TR2_PERF_BRIEF
 
 test_expect_success 'perf stream, return code 0' '
        test_when_finished "rm trace.perf actual expect" &&
-       GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
+       GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
        perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
        cat >expect <<-EOF &&
                d0|main|version|||||$V
-               d0|main|start|||||_EXE_ trace2 001return 0
+               d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
                d0|main|cmd_name|||||trace2 (trace2)
                d0|main|exit||_T_ABS_|||code:0
                d0|main|atexit||_T_ABS_|||code:0
@@ -60,11 +60,11 @@ test_expect_success 'perf stream, return code 0' '
 
 test_expect_success 'perf stream, return code 1' '
        test_when_finished "rm trace.perf actual expect" &&
-       test_must_fail env GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 1 &&
+       test_must_fail env GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 1 &&
        perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
        cat >expect <<-EOF &&
                d0|main|version|||||$V
-               d0|main|start|||||_EXE_ trace2 001return 1
+               d0|main|start||_T_ABS_|||_EXE_ trace2 001return 1
                d0|main|cmd_name|||||trace2 (trace2)
                d0|main|exit||_T_ABS_|||code:1
                d0|main|atexit||_T_ABS_|||code:1
@@ -78,11 +78,11 @@ test_expect_success 'perf stream, return code 1' '
 
 test_expect_success 'perf stream, error event' '
        test_when_finished "rm trace.perf actual expect" &&
-       GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 003error "hello world" "this is a test" &&
+       GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 003error "hello world" "this is a test" &&
        perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
        cat >expect <<-EOF &&
                d0|main|version|||||$V
-               d0|main|start|||||_EXE_ trace2 003error '\''hello world'\'' '\''this is a test'\''
+               d0|main|start||_T_ABS_|||_EXE_ trace2 003error '\''hello world'\'' '\''this is a test'\''
                d0|main|cmd_name|||||trace2 (trace2)
                d0|main|error|||||hello world
                d0|main|error|||||this is a test
@@ -124,19 +124,19 @@ test_expect_success 'perf stream, error event' '
 
 test_expect_success 'perf stream, child processes' '
        test_when_finished "rm trace.perf actual expect" &&
-       GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
+       GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
        perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
        cat >expect <<-EOF &&
                d0|main|version|||||$V
-               d0|main|start|||||_EXE_ trace2 004child test-tool trace2 004child test-tool trace2 001return 0
+               d0|main|start||_T_ABS_|||_EXE_ trace2 004child test-tool trace2 004child test-tool trace2 001return 0
                d0|main|cmd_name|||||trace2 (trace2)
                d0|main|child_start||_T_ABS_|||[ch0] class:? argv: test-tool trace2 004child test-tool trace2 001return 0
                d1|main|version|||||$V
-               d1|main|start|||||_EXE_ trace2 004child test-tool trace2 001return 0
+               d1|main|start||_T_ABS_|||_EXE_ trace2 004child test-tool trace2 001return 0
                d1|main|cmd_name|||||trace2 (trace2/trace2)
                d1|main|child_start||_T_ABS_|||[ch0] class:? argv: test-tool trace2 001return 0
                d2|main|version|||||$V
-               d2|main|start|||||_EXE_ trace2 001return 0
+               d2|main|start||_T_ABS_|||_EXE_ trace2 001return 0
                d2|main|cmd_name|||||trace2 (trace2/trace2/trace2)
                d2|main|exit||_T_ABS_|||code:0
                d2|main|atexit||_T_ABS_|||code:0
@@ -150,4 +150,25 @@ test_expect_success 'perf stream, child processes' '
        test_cmp expect actual
 '
 
+sane_unset GIT_TRACE2_PERF_BRIEF
+
+# Now test without environment variables and get all Trace2 settings
+# from the global config.
+
+test_expect_success 'using global config, perf stream, return code 0' '
+       test_when_finished "rm trace.perf actual expect" &&
+       test_config_global trace2.perfBrief 1 &&
+       test_config_global trace2.perfTarget "$(pwd)/trace.perf" &&
+       test-tool trace2 001return 0 &&
+       perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
+       cat >expect <<-EOF &&
+               d0|main|version|||||$V
+               d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
+               d0|main|cmd_name|||||trace2 (trace2)
+               d0|main|exit||_T_ABS_|||code:0
+               d0|main|atexit||_T_ABS_|||code:0
+       EOF
+       test_cmp expect actual
+'
+
 test_done