]>
Commit | Line | Data |
---|---|---|
a15860dc JH |
1 | #!/usr/bin/perl |
2 | # | |
3 | # Scrub the variable fields from the normal trace2 output to | |
4 | # make testing easier. | |
5 | ||
6 | use strict; | |
7 | use warnings; | |
8 | ||
9 | my $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 | ||
14 | while (<>) { | |
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 | } |