8205108: [testbug] Fix pattern matching in jstatd tests

Reviewed-by: stuefe, azeller
This commit is contained in:
Goetz Lindenmaier 2018-06-20 11:12:58 +02:00
parent b7fe5e4f7b
commit ecbeb2db13

View File

@ -25,16 +25,14 @@ import java.util.Arrays;
import jdk.testlibrary.Utils;
import static jdk.testlibrary.Asserts.*;
import java.text.NumberFormat;
/**
* The helper class for parsing following output from command 'jstat -gcutil':
*
* S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
* 100.00 0.00 64.68 13.17 73.39 33.46 2 0.003 1 0.156 0.158
* 100.00 0.00 76.54 13.17 73.39 33.46 2 0.003 1 0.156 0.158
* 100.00 0.00 83.49 13.17 73.39 33.46 2 0.003 1 0.156 0.158
* 100.00 0.00 84.53 13.17 73.39 33.46 2 0.003 1 0.156 0.158
* 100.00 0.00 85.57 13.17 73.39 33.46 2 0.003 1 0.156 0.158
* S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT
* 0.00 0.00 86.67 0.00 - - 0 0.000 0 0.000 0 0.000 0.000
* 0.00 0.00 86.67 0.00 - - 0 0.000 0 0.000 0 0.000 0.000
*
* It will be verified that numerical values have defined types and are reasonable,
* for example percentage should fit within 0-100 interval.
@ -50,7 +48,7 @@ public class JstatGCUtilParser {
S1(GcStatisticsType.PERCENTAGE),
E(GcStatisticsType.PERCENTAGE),
O(GcStatisticsType.PERCENTAGE),
M(GcStatisticsType.PERCENTAGE),
M(GcStatisticsType.PERCENTAGE_OR_DASH),
CCS(GcStatisticsType.PERCENTAGE_OR_DASH),
YGC(GcStatisticsType.INTEGER),
YGCT(GcStatisticsType.DOUBLE),
@ -97,18 +95,18 @@ public class JstatGCUtilParser {
GcStatisticsType type = values()[i].getType();
String value = valueArray[i].trim();
if (type.equals(GcStatisticsType.INTEGER)) {
Integer.parseInt(value);
NumberFormat.getInstance().parse(value).intValue();
break;
}
if (type.equals(GcStatisticsType.DOUBLE)) {
Double.parseDouble(value);
NumberFormat.getInstance().parse(value).doubleValue();
break;
}
if (type.equals(GcStatisticsType.PERCENTAGE_OR_DASH) &&
value.equals("-")) {
break;
}
double percentage = Double.parseDouble(value);
double percentage = NumberFormat.getInstance().parse(value).doubleValue();
assertTrue(0 <= percentage && percentage <= 100,
"Not a percentage: " + value);
}