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# Compiled Failed Invalid   Time   FailedType FailedMethod
7#       38      0       0     0.41          0             
8
9
10
11BEGIN	{
12	    headerlines=0; datalines=0; totallines=0
13	}
14
15/^Compiled Failed Invalid   Time   FailedType FailedMethod$/	{
16	    headerlines++;
17	}
18
19# note - the FailedMethod column is not matched very thoroughly by the
20# following pattern. We just check for zero or more spaces after the
21# FailedType column and the for any sequence of characters for the
22# FailedMethod column. Better checking would verify an optional string of
23# characters that follows class/method name patterns. However, it's very
24# difficult to generate any data in this column under normal circumstances.
25#
26/^[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*.*$/	{
27	    datalines++;
28	}
29
30	{ totallines++; print $0 }
31
32END	{
33	    if ((headerlines == 1) && (datalines == 1)) {
34	        exit 0
35	    }
36	    else {
37	        exit 1
38	    }
39	}
40