]> git.ipfire.org Git - thirdparty/git.git/blame - t/t0210/scrub_normal.perl
tr2: log parent process name
[thirdparty/git.git] / t / t0210 / scrub_normal.perl
CommitLineData
a15860dc
JH
1#!/usr/bin/perl
2#
3# Scrub the variable fields from the normal trace2 output to
4# make testing easier.
5
6use strict;
7use warnings;
8
9my $float = '[0-9]*\.[0-9]+([eE][-+]?[0-9]+)?';
10
11# This code assumes that the trace2 data was written with bare
12# turned on (which omits the "<clock> <file>:<line>" prefix.
13
14while (<>) {
15 # Various messages include an elapsed time in the middle
16 # of the message. Replace the time with a placeholder to
17 # simplify our HEREDOC in the test script.
18 s/elapsed:$float/elapsed:_TIME_/g;
19
20 my $line = $_;
21
22 # we expect:
23 # start <argv0> [<argv1> [<argv2> [...]]]
24 #
25 # where argv0 might be a relative or absolute path, with
26 # or without quotes, and platform dependent. Replace argv0
27 # with a token for HEREDOC matching in the test script.
28
29 if ($line =~ m/^start/) {
30 $line =~ /^start\s+(.*)/;
31 my $argv = $1;
32 $argv =~ m/(\'[^\']*\'|[^ ]+)\s+(.*)/;
33 my $argv_0 = $1;
34 my $argv_rest = $2;
35
36 print "start _EXE_ $argv_rest\n";
37 }
38 elsif ($line =~ m/^cmd_path/) {
39 # Likewise, the 'cmd_path' message breaks out argv[0].
40 #
41 # This line is only emitted when RUNTIME_PREFIX is defined,
42 # so just omit it for testing purposes.
43 # print "cmd_path _EXE_\n";
44 }
2f732bf1
ES
45 elsif ($line =~ m/^cmd_ancestry/) {
46 # 'cmd_ancestry' is not implemented everywhere, so for portability's
47 # sake, skip it when parsing normal.
48 #
49 # print "$line";
50 }
a15860dc
JH
51 else {
52 print "$line";
53 }
54}