You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2008/01/18 11:25:15 UTC
svn commit: r613122 - in /harmony/enhanced/drlvm/trunk:
build/make/excludes/exclude.drlvm_kernel.windows.x86.gc_cc
build/make/excludes/exclude.drlvm_kernel.windows.x86_64.gc_cc
vm/tests/kernel/java/lang/RuntimeTest.java
Author: varlax
Date: Fri Jan 18 02:25:14 2008
New Revision: 613122
URL: http://svn.apache.org/viewvc?rev=613122&view=rev
Log:
Fixed HARMONY-3711 [drlvm][test] kernel test RuntimeTest.test_freeMemory fails intermittently:
- invoke gc() to get clean initial state
- skip test if heap is too close to the end
- grow probe in small linear chunks to not jump over starting boundaries
Modified:
harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86.gc_cc
harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86_64.gc_cc
harmony/enhanced/drlvm/trunk/vm/tests/kernel/java/lang/RuntimeTest.java
Modified: harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86.gc_cc
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86.gc_cc?rev=613122&r1=613121&r2=613122&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86.gc_cc (original)
+++ harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86.gc_cc Fri Jan 18 02:25:14 2008
@@ -1,8 +1,5 @@
## HARMONY-3521
java/lang/RuntimeAdditionalTest*.java
-## HARMONY-3711
-java/lang/RuntimeTest.java
-
# HARMONY-3953
java/lang/ClassTestDesiredAssertionStatus.java
Modified: harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86_64.gc_cc
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86_64.gc_cc?rev=613122&r1=613121&r2=613122&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86_64.gc_cc (original)
+++ harmony/enhanced/drlvm/trunk/build/make/excludes/exclude.drlvm_kernel.windows.x86_64.gc_cc Fri Jan 18 02:25:14 2008
@@ -1,8 +1,5 @@
## HARMONY-3521
java/lang/RuntimeAdditionalTest*.java
-## HARMONY-3711
-java/lang/RuntimeTest.java
-
# HARMONY-3953
java/lang/ClassTestDesiredAssertionStatus.java
Modified: harmony/enhanced/drlvm/trunk/vm/tests/kernel/java/lang/RuntimeTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/tests/kernel/java/lang/RuntimeTest.java?rev=613122&r1=613121&r2=613122&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/tests/kernel/java/lang/RuntimeTest.java (original)
+++ harmony/enhanced/drlvm/trunk/vm/tests/kernel/java/lang/RuntimeTest.java Fri Jan 18 02:25:14 2008
@@ -83,24 +83,30 @@
*
*/
public void test_freeMemory() {
- /**/System.out.println("test_freeMemory");
+ Runtime.getRuntime().gc();
long r1 = Runtime.getRuntime().freeMemory();
- assertTrue("Runtime.freeMemory method must not return negative value!",
+ assertTrue("Runtime.freeMemory() returned negative value: " + r1,
r1 >= 0);
+ if (r1 < 500000) {
+ // low memory condition,
+ // avoid false alarm if indicator is too coarse-grained
+ return;
+ }
+ int probe = 0;
try {
String stmp = "";
- for (int ind = 0; ind < 100; ind++) {
+ for (int ind = 0; ind < 300; ind++) {
stmp += "0123456789";
}
- while (true) {
- stmp += stmp;
- if (r1 > Runtime.getRuntime().freeMemory())
- break;
-
+ String inc = stmp;
+ probe = stmp.length();
+ while (r1 <= Runtime.getRuntime().freeMemory()) {
+ stmp += inc;
+ probe = stmp.length();
}
} catch (OutOfMemoryError e) {
- fail("Runtime.freeMemory method should be sensitive to huge "
- + "memory allocating!");
+ fail("Runtime.freeMemory() failed to detect " + probe
+ + " memory reduction from " + r1);
}
}