提交 729a12fd 编写于 作者: J jcbeyler

8205541:...

8205541: serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatArrayCorrectnessTest.java fails with Should not have any events stored yet.
Summary: Fix StatArray and StatObject tests from the HeapMonitor package
Reviewed-by: amenkov, sspitsyn
Contributed-by: jcbeyler@google.com
上级 7be992c6
...@@ -81,7 +81,6 @@ runtime/CompressedOops/UseCompressedOops.java 8079353 generic-all ...@@ -81,7 +81,6 @@ runtime/CompressedOops/UseCompressedOops.java 8079353 generic-all
serviceability/sa/TestRevPtrsForInvokeDynamic.java 8191270 generic-all serviceability/sa/TestRevPtrsForInvokeDynamic.java 8191270 generic-all
serviceability/sa/sadebugd/SADebugDTest.java 8163805 generic-all serviceability/sa/sadebugd/SADebugDTest.java 8163805 generic-all
serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatArrayCorrectnessTest.java 8205541 generic-all
serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatRateTest.java 8205652 generic-all serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatRateTest.java 8205652 generic-all
############################################################################# #############################################################################
......
...@@ -46,8 +46,6 @@ public class HeapMonitorStatArrayCorrectnessTest { ...@@ -46,8 +46,6 @@ public class HeapMonitorStatArrayCorrectnessTest {
public static void main(String[] args) { public static void main(String[] args) {
int sizes[] = {1000, 10000, 100000}; int sizes[] = {1000, 10000, 100000};
HeapMonitor.enableSamplingEvents();
for (int currentSize : sizes) { for (int currentSize : sizes) {
System.out.println("Testing size " + currentSize); System.out.println("Testing size " + currentSize);
...@@ -56,12 +54,16 @@ public class HeapMonitorStatArrayCorrectnessTest { ...@@ -56,12 +54,16 @@ public class HeapMonitorStatArrayCorrectnessTest {
throw new RuntimeException("Should not have any events stored yet."); throw new RuntimeException("Should not have any events stored yet.");
} }
HeapMonitor.enableSamplingEvents();
// 111 is as good a number as any. // 111 is as good a number as any.
final int samplingMultiplier = 111; final int samplingMultiplier = 111;
HeapMonitor.setSamplingRate(samplingMultiplier * currentSize); HeapMonitor.setSamplingRate(samplingMultiplier * currentSize);
allocate(currentSize); allocate(currentSize);
HeapMonitor.disableSamplingEvents();
// For simplifications, we ignore the array memory usage for array internals (with the array // For simplifications, we ignore the array memory usage for array internals (with the array
// sizes requested, it should be a negligible oversight). // sizes requested, it should be a negligible oversight).
// //
......
...@@ -41,9 +41,13 @@ public class HeapMonitorStatObjectCorrectnessTest { ...@@ -41,9 +41,13 @@ public class HeapMonitorStatObjectCorrectnessTest {
private native static boolean statsHaveExpectedNumberSamples(int expected, int percentError); private native static boolean statsHaveExpectedNumberSamples(int expected, int percentError);
private static void allocate() { private static void allocate() {
emptyStorage();
HeapMonitor.enableSamplingEvents();
for (int j = 0; j < maxIteration; j++) { for (int j = 0; j < maxIteration; j++) {
obj = new BigObject(); obj = new BigObject();
} }
HeapMonitor.disableSamplingEvents();
} }
private static void testBigAllocationRate() { private static void testBigAllocationRate() {
...@@ -53,7 +57,6 @@ public class HeapMonitorStatObjectCorrectnessTest { ...@@ -53,7 +57,6 @@ public class HeapMonitorStatObjectCorrectnessTest {
final int samplingMultiplier = 111; final int samplingMultiplier = 111;
HeapMonitor.setSamplingRate(samplingMultiplier * sizeObject); HeapMonitor.setSamplingRate(samplingMultiplier * sizeObject);
emptyStorage();
allocate(); allocate();
// For simplifications, the code is allocating: // For simplifications, the code is allocating:
...@@ -96,7 +99,6 @@ public class HeapMonitorStatObjectCorrectnessTest { ...@@ -96,7 +99,6 @@ public class HeapMonitorStatObjectCorrectnessTest {
// 0 means sample every allocation. // 0 means sample every allocation.
HeapMonitor.setSamplingRate(0); HeapMonitor.setSamplingRate(0);
emptyStorage();
allocate(); allocate();
double expected = maxIteration; double expected = maxIteration;
...@@ -111,8 +113,6 @@ public class HeapMonitorStatObjectCorrectnessTest { ...@@ -111,8 +113,6 @@ public class HeapMonitorStatObjectCorrectnessTest {
} }
public static void main(String[] args) { public static void main(String[] args) {
HeapMonitor.enableSamplingEvents();
testBigAllocationRate(); testBigAllocationRate();
testEveryAllocationSampled(); testEveryAllocationSampled();
} }
......
...@@ -45,7 +45,7 @@ extern "C" { ...@@ -45,7 +45,7 @@ extern "C" {
#define TRUE 1 #define TRUE 1
#define FALSE 0 #define FALSE 0
#define PRINT_OUT 0 #define PRINT_OUT 1
static jvmtiEnv *jvmti = NULL; static jvmtiEnv *jvmti = NULL;
static jvmtiEnv *second_jvmti = NULL; static jvmtiEnv *second_jvmti = NULL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册