]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t7063-status-untracked-cache.sh
dir: convert trace calls to trace2 equivalents
[thirdparty/git.git] / t / t7063-status-untracked-cache.sh
index accefde72fb1bd518b2fcd7caf4d8c4921180bdc..9710d33b3cd60f0b5bc76d7e197152250f9dfab4 100755 (executable)
@@ -57,6 +57,19 @@ iuc () {
        return $ret
 }
 
+get_relevant_traces () {
+       # From the GIT_TRACE2_PERF data of the form
+       #    $TIME $FILE:$LINE | d0 | main | data | r1 | ? | ? | read_directo | $RELEVANT_STAT
+       # extract the $RELEVANT_STAT fields.  We don't care about region_enter
+       # or region_leave, or stats for things outside read_directory.
+       INPUT_FILE=$1
+       OUTPUT_FILE=$2
+       grep data.*read_directo $INPUT_FILE |
+           cut -d "|" -f 9 \
+           >"$OUTPUT_FILE"
+}
+
+
 test_lazy_prereq UNTRACKED_CACHE '
        { git update-index --test-untracked-cache; ret=$?; } &&
        test $ret -ne 1
@@ -129,19 +142,21 @@ EOF
 
 test_expect_success 'status first time (empty cache)' '
        avoid_racy &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 3
-gitignore invalidation: 1
-directory invalidation: 0
-opendir: 4
+ ....path:
+ ....node-creation:3
+ ....gitignore-invalidation:1
+ ....directory-invalidation:0
+ ....opendir:4
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'untracked cache after first status' '
@@ -151,19 +166,21 @@ test_expect_success 'untracked cache after first status' '
 
 test_expect_success 'status second time (fully populated cache)' '
        avoid_racy &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 0
-opendir: 0
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:0
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'untracked cache after second status' '
@@ -174,8 +191,8 @@ test_expect_success 'untracked cache after second status' '
 test_expect_success 'modify in root directory, one dir invalidation' '
        avoid_racy &&
        : >four &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -189,13 +206,15 @@ A  two
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 1
-opendir: 1
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:1
+ ....opendir:1
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 
 '
 
@@ -223,8 +242,8 @@ EOF
 test_expect_success 'new .gitignore invalidates recursively' '
        avoid_racy &&
        echo four >.gitignore &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -238,13 +257,15 @@ A  two
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 1
-directory invalidation: 1
-opendir: 4
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:1
+ ....directory-invalidation:1
+ ....opendir:4
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 
 '
 
@@ -272,8 +293,8 @@ EOF
 test_expect_success 'new info/exclude invalidates everything' '
        avoid_racy &&
        echo three >>.git/info/exclude &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -285,13 +306,15 @@ A  two
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 1
-directory invalidation: 0
-opendir: 4
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:1
+ ....directory-invalidation:0
+ ....opendir:4
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'verify untracked cache dump' '
@@ -330,8 +353,8 @@ EOF
 '
 
 test_expect_success 'status after the move' '
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -343,13 +366,15 @@ A  one
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 0
-opendir: 1
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:1
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'verify untracked cache dump' '
@@ -389,8 +414,8 @@ EOF
 '
 
 test_expect_success 'status after the move' '
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -402,13 +427,15 @@ A  two
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 0
-opendir: 1
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:1
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'verify untracked cache dump' '
@@ -438,8 +465,8 @@ test_expect_success 'set up for sparse checkout testing' '
 '
 
 test_expect_success 'status after commit' '
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -448,13 +475,15 @@ test_expect_success 'status after commit' '
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 0
-opendir: 2
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:2
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'untracked cache correct after commit' '
@@ -496,9 +525,9 @@ test_expect_success 'create/modify files, some of which are gitignored' '
 '
 
 test_expect_success 'test sparse status with untracked cache' '
-       : >../trace &&
+       : >../trace.output &&
        avoid_racy &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../status.actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -509,13 +538,15 @@ test_expect_success 'test sparse status with untracked cache' '
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../status.actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 1
-directory invalidation: 2
-opendir: 2
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:1
+ ....directory-invalidation:2
+ ....opendir:2
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'untracked cache correct after status' '
@@ -539,8 +570,8 @@ EOF
 
 test_expect_success 'test sparse status again with untracked cache' '
        avoid_racy &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../status.actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -551,13 +582,15 @@ test_expect_success 'test sparse status again with untracked cache' '
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../status.actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 0
-opendir: 0
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:0
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'set up for test of subdir and sparse checkouts' '
@@ -568,8 +601,8 @@ test_expect_success 'set up for test of subdir and sparse checkouts' '
 
 test_expect_success 'test sparse status with untracked cache and subdir' '
        avoid_racy &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../status.actual &&
        iuc status --porcelain >../status.iuc &&
        cat >../status.expect <<EOF &&
@@ -581,13 +614,15 @@ test_expect_success 'test sparse status with untracked cache and subdir' '
 EOF
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../status.actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 2
-gitignore invalidation: 0
-directory invalidation: 1
-opendir: 3
+ ....path:
+ ....node-creation:2
+ ....gitignore-invalidation:0
+ ....directory-invalidation:1
+ ....opendir:3
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'verify untracked cache dump (sparse/subdirs)' '
@@ -616,19 +651,21 @@ EOF
 
 test_expect_success 'test sparse status again with untracked cache and subdir' '
        avoid_racy &&
-       : >../trace &&
-       GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
+       : >../trace.output &&
+       GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
        git status --porcelain >../status.actual &&
        iuc status --porcelain >../status.iuc &&
        test_cmp ../status.expect ../status.iuc &&
        test_cmp ../status.expect ../status.actual &&
+       get_relevant_traces ../trace.output ../trace.relevant &&
        cat >../trace.expect <<EOF &&
-node creation: 0
-gitignore invalidation: 0
-directory invalidation: 0
-opendir: 0
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:0
 EOF
-       test_cmp ../trace.expect ../trace
+       test_cmp ../trace.expect ../trace.relevant
 '
 
 test_expect_success 'move entry in subdir from untracked to cached' '