Looking for a sponsor to review changes made to two unit tests under jdk/test
Mani Sarkar
sadhak001 at gmail.com
Fri Apr 5 00:55:31 UTC 2013
Thanks David,
Here are the patches, let me know if they have come in fine:
1) test/java/lang/ref/Basic.**java.patch - changed to not use
Thread.sleep() any more rather use the java.util.concurrent.**CountdownLatch
functionality
Authors: Mani (sadhak001 at gmail.com) and Edward Yue Shung Wong (
edward.ys.wong at gmail.com)
------------x---------------
diff -r 38e1821c4472 test/java/lang/ref/Basic.java
--- a/test/java/lang/ref/Basic.java Wed Mar 06 18:35:51 2013 +0100
+++ b/test/java/lang/ref/Basic.java Sat Mar 23 14:51:25 2013 +0000
@@ -29,7 +29,7 @@
import java.lang.ref.*;
import java.util.Vector;
-
+import java.util.concurrent.CountDownLatch;
public class Basic {
@@ -64,22 +64,22 @@
fork(new Runnable() {
public void run() {
System.err.println("References: W " + rw.get()
- + ", W2 " + rw2.get()
- + ", P " + rp.get()
- + ", P2 " + rp2.get());
+ + ", W2 " + rw2.get()
+ + ", P " + rp.get()
+ + ", P2 " + rp2.get());
}
});
}
- static void createNoise() throws InterruptedException {
+ static void createNoise(final CountDownLatch cdl) throws
InterruptedException {
fork(new Runnable() {
public void run() {
keep.addElement(new PhantomReference(new Object(), q2));
+ createNoiseHasFinishedAddingToKeep(cdl);
}
});
}
-
public static void main(String[] args) throws Exception {
fork(new Runnable() {
@@ -97,13 +97,16 @@
int ndq = 0;
boolean prevFinalized = false;
- outer:
+ outer:
for (int i = 1;; i++) {
Reference r;
- createNoise();
+ CountDownLatch inQueueWaitLatch = new CountDownLatch(1);
+ createNoise(inQueueWaitLatch);
+
System.err.println("GC " + i);
- Thread.sleep(10);
+ waitUntilCreateNoiseHasFinished(inQueueWaitLatch);
+
System.gc();
System.runFinalization();
@@ -137,7 +140,7 @@
if (ndq != 3) {
throw new Exception("Expected to dequeue 3 reference objects,"
- + " but only got " + ndq);
+ + " but only got " + ndq);
}
if (! Basic.finalized) {
@@ -146,4 +149,13 @@
}
+
+ private static void createNoiseHasFinishedAddingToKeep(CountDownLatch
cdl) {
+ cdl.countDown();
+ }
+
+ private static void waitUntilCreateNoiseHasFinished(CountDownLatch
cdl) throws InterruptedException {
+ cdl.await();
+ }
+
}
------------x----------------
2) test/java/lang/Runtime/exec/**LotsOfOutput.java.patch - refactor-ing and
tidy-ing of existing code (removing string literals and replacing with
constants, etc...)
Author: Edward Yue Shung Wong (edward.ys.wong at gmail.com)
------------x----------------
diff -r 38e1821c4472 test/java/lang/Runtime/exec/LotsOfOutput.java
--- a/test/java/lang/Runtime/exec/LotsOfOutput.java Wed Mar 06 18:35:51
2013 +0100
+++ b/test/java/lang/Runtime/exec/LotsOfOutput.java Sat Mar 23 15:48:46
2013 +0000
@@ -33,17 +33,24 @@
public class LotsOfOutput {
static final String CAT = "/usr/bin/cat";
- public static void main(String[] args) throws Exception{
- if (File.separatorChar == '\\' || // Windows
- !new File(CAT).exists()) // no cat
+ static final int MEMORY_GROWTH_LIMIT = 1000000;
+
+ public static void main(String[] args) throws Exception {
+ if (isWindowsOrCatNotAvailable()) {
return;
+ }
+
Process p = Runtime.getRuntime().exec(CAT + " /dev/zero");
long initMemory = Runtime.getRuntime().totalMemory();
- for (int i=1; i< 10; i++) {
+ for (int i = 1; i < 10; i++) {
Thread.sleep(100);
- if (Runtime.getRuntime().totalMemory() > initMemory + 1000000)
- throw new Exception("Process consumes memory.");
+ if (Runtime.getRuntime().totalMemory() > initMemory +
MEMORY_GROWTH_LIMIT)
+ throw new Exception("Runtime memory has grown more than: "
+ MEMORY_GROWTH_LIMIT);
}
}
+
+ private static boolean isWindowsOrCatNotAvailable() {
+ return File.separatorChar == '\\' || !new File(CAT).exists();
+ }
}
------------x----------------
Any queries please let me know.
Thanks.
Regards,
mani
On Fri, Apr 5, 2013 at 1:38 AM, David Holmes <david.holmes at oracle.com>wrote:
> Hi Mani,
>
> Attachments get stripped so you will need to inline the patches in your
> email to the list.
>
> Thanks,
> David
>
>
> On 5/04/2013 9:07 AM, Mani Sarkar wrote:
>
>> Hi all,
>>
>> I'd like to rectify that I;m a contributor (and not a committer as
>> mentioned earlier), so I don't have access to the webrev system but would
>> love to have these patches hosted on them when a sponsor becomes
>> available.
>>
>> Cheers,
>> mani
>>
>> On Thu, Apr 4, 2013 at 11:57 PM, Mani Sarkar <sadhak001 at gmail.com> wrote:
>>
>> Hi all,
>>>
>>> During #TestFest in London last month we hacked away on jtreg and tests
>>> in
>>> the OpenJDK. Myself and another participant managed to change two unit
>>> tests. I haven't looked for a sponsor in the past so I'm fairly new to
>>> the
>>> process, hence my email on the list is to request for someone to review,
>>> and process these patches further. I'm a committer (signed OCA).
>>>
>>> Here's details of the changes made to the tests under the
>>> .*./jdk8_tl/jdk*folders:
>>>
>>> 1) *test/java/lang/ref/Basic.**java.patch* - changed to not use
>>>
>>> Thread.sleep() any more rather use the java.util.concurrent.**
>>> CountdownLatch
>>> functionality
>>> 2) *test/java/lang/Runtime/exec/**LotsOfOutput.java.patch* -
>>> refactor-ing
>>>
>>> and tidy-ing of existing code (removing string literals and replacing
>>> with
>>> constants, etc...)
>>>
>>> Please let me know what you would like me to do next with these patches.
>>>
>>> Regards,
>>> mani
>>>
>>> --
>>> *Twitter:* @theNeomatrix369
>>> *Blog:* http://neomatrix369.wordpress.**com<http://neomatrix369.wordpress.com>
>>> *JUG activity:* LJC Advocate (@adoptopenjdk & @adoptajsr programs)
>>> *Meet-a-Project:* https://github.com/**MutabilityDetector<https://github.com/MutabilityDetector>
>>> *Devoxx UK 2013 was a grand success:*
>>> http://www.devoxx.com/display/**UK13/Home<http://www.devoxx.com/display/UK13/Home>
>>> *Don't chase success, rather aim for "Excellence", and success will come
>>> chasing after you!*
>>>
>>>
>>
>>
>>
--
*Twitter:* @theNeomatrix369
*Blog:* http://neomatrix369.wordpress.com
*JUG activity:* LJC Advocate (@adoptopenjdk & @adoptajsr programs)
*Meet-a-Project:* https://github.com/MutabilityDetector
*Devoxx UK 2013 was a grand success:*
http://www.devoxx.com/display/UK13/Home
*Don't chase success, rather aim for "Excellence", and success will come
chasing after you!*
More information about the core-libs-dev
mailing list