< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/share/test/LocalRandom.java

Print this page
@@ -111,10 +111,36 @@
              throw new TestFailure(
                      "Validation failure: " + arr.getClass() + " hash: " + hash);
          }
      }
  
+     public static void nextBytes(Byte[] arr) {
+         if (arr.length == 0) {
+             return;
+         }
+         int k = Math.max(1, arr.length / maxRandomCount);
+         byte hash = 0;
+         byte b;
+         for (int i = 0; i < arr.length - k; i += k) {
+             b = nextByte();
+             arr[i] = b;
+             hash ^= b;
+         }
+         arr[arr.length - k] = hash;
+     }
+     public static void validate(Byte[] arr) {
+         int k = Math.max(1, arr.length / maxRandomCount);
+         byte hash = 0;
+         for (int i = 0; i < arr.length; i += k) {
+             hash ^= arr[i];
+         }
+         if (hash != 0) {
+             throw new TestFailure(
+                     "Validation failure: " + arr.getClass() + " hash: " + hash);
+         }
+     }
+ 
      public static void nextShorts(short[] arr) {
          if (arr.length == 0) {
              return;
          }
          int k = Math.max(1, arr.length / maxRandomCount);

@@ -192,10 +218,38 @@
              throw new TestFailure(
                      "Validation failure: " + arr.getClass() + " hash: " + hash);
          }
      }
  
+ 
+     public static void nextInts(Integer[] arr) {
+         if (arr.length == 0) {
+             return;
+         }
+         int k = Math.max(1, arr.length / maxRandomCount);
+         int hash = 0;
+         int in;
+         for (int i = 0; i < arr.length - k; i += k) {
+             in = nextInt();
+             hash ^= in;
+             arr[i] = in;
+         }
+         arr[arr.length - k] = hash;
+     }
+ 
+     public static void validate(Integer[] arr) {
+         int k = Math.max(1, arr.length / maxRandomCount);
+         int hash = 0;
+         for (int i = 0; i < arr.length; i += k) {
+             hash ^= arr[i];
+         }
+         if (hash != 0) {
+             throw new TestFailure(
+                     "Validation failure: " + arr.getClass() + " hash: " + hash);
+         }
+     }
+ 
      public static void nextBooleans(boolean[] arr) {
          if (arr.length == 0) {
              return;
          }
          int k = Math.max(1, arr.length / maxRandomCount);

@@ -219,10 +273,38 @@
              throw new TestFailure(
                      "Validation failure: " + arr.getClass() + " hash: " + hash);
          }
      }
  
+     public static void nextBooleans(Boolean[] arr) {
+         if (arr.length == 0) {
+             return;
+         }
+         int k = Math.max(1, arr.length / maxRandomCount);
+         boolean hash = false;
+         boolean b;
+         for (int i = 0; i < arr.length - k; i += k) {
+             b = nextBoolean();
+             hash ^= b;
+             arr[i] = b;
+         }
+         arr[arr.length - k] = hash;
+     }
+ 
+     public static void validate(Boolean[] arr) {
+         int k = Math.max(1, arr.length / maxRandomCount);
+         boolean hash = false;
+         for (int i = 0; i < arr.length; i += k) {
+             hash ^= arr[i];
+         }
+         if (hash != false) {
+             throw new TestFailure(
+                     "Validation failure: " + arr.getClass() + " hash: " + hash);
+         }
+     }
+ 
+ 
      public static void nextLongs(long[] arr) {
          if (arr.length == 0) {
              return;
          }
          int k = Math.max(1, arr.length / maxRandomCount);
< prev index next >