J. Duke | 319a3b9 | 2007-12-01 00:00:00 +0000 | [diff] [blame^] | 1 | # |
| 2 | # matching the following output specified as a pattern that verifies |
| 3 | # that the numerical values conform to a specific pattern, rather than |
| 4 | # specific values. |
| 5 | # |
| 6 | # S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC |
| 7 | # 0.00 100.00 14.01 3.06 23.20 1 0.032 0 0.000 0.032 Allocation Failure No GC |
| 8 | |
| 9 | |
| 10 | BEGIN { |
| 11 | headerlines=0; datalines=0; totallines=0 |
| 12 | } |
| 13 | |
| 14 | /^ S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC $/ { |
| 15 | headerlines++; |
| 16 | } |
| 17 | |
| 18 | # The following pattern does not verify the validity of the gc cause |
| 19 | # string as the values can vary depending on conditions out of our |
| 20 | # control. To accomodate this variability, the pattern matcher simply |
| 21 | # detects that there are two strings that match a specific pattern |
| 22 | # where the first character is a letter followed by a sequence of zero |
| 23 | # or more letters and spaces. It also provides for the ".", "(", and ")" |
| 24 | # characters to allow for the string "System.gc()". |
| 25 | # |
| 26 | /^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[a-zA-Z]+[a-zA-Z \.\(\)]*[ ]*[a-zA-Z]+[a-zA-Z \.\(\)]*$/ { |
| 27 | datalines++; |
| 28 | } |
| 29 | |
| 30 | { totallines++; print $0 } |
| 31 | |
| 32 | END { |
| 33 | if ((headerlines == 1) && (datalines == 1) && (totallines == 2)) { |
| 34 | exit 0 |
| 35 | } |
| 36 | else { |
| 37 | exit 1 |
| 38 | } |
| 39 | } |