Hi,

Please review and help me with integration:

Problem:
java.math.BigInteger.BigIntegerTest uses java.math.Random(), so we have no possibility to reproduce it.

Solution:
Test gets start random seed   from environment variable.
If this variable not exists,  test write current random seed   to log.

Bug: https://bugs.openjdk.java.net/browse/JDK-8051861
Fix: (in attachment)

Best regards, Vasily
diff -r 08d0c4b1a48d test/java/math/BigInteger/BigIntegerTest.java
--- a/test/java/math/BigInteger/BigIntegerTest.java     Wed Jul 02 10:03:40 
2014 +0100
+++ b/test/java/math/BigInteger/BigIntegerTest.java     Thu Jul 24 16:22:44 
2014 +0400
@@ -34,6 +34,8 @@
 import java.io.FileOutputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.lang.Long;
+import java.lang.System;
 import java.math.BigInteger;
 import java.util.Random;
 
@@ -944,8 +946,22 @@
      *
      */
     public static void main(String[] args) throws Exception {
+      //reproducibility fix
+        String seed = System.getProperty("startseed");
+        if(seed!=null){
+            rnd.setSeed(Long.valueOf(seed).longValue());
+        }else{
+            Long currentSeed = rnd.nextLong();
+            System.err.println("Seed: " + currentSeed);
+            rnd.setSeed(currentSeed);
+        }
+
+
+
 
         // Some variables for sizing test numbers in bits
+
+
         int order1 = ORDER_MEDIUM;
         int order2 = ORDER_SMALL;
         int order3 = ORDER_KARATSUBA;

Reply via email to