You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/03/15 14:06:43 UTC

[commons-rng] 01/02: BaseProviderTest: test restoreState using state too small/large

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git

commit f5d9ad991a10e0d0eb877f22cf4daf5b58f4b066
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Fri Mar 15 13:51:09 2019 +0000

    BaseProviderTest: test restoreState using state too small/large
---
 .../apache/commons/rng/core/BaseProviderTest.java  | 26 +++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/commons-rng-core/src/test/java/org/apache/commons/rng/core/BaseProviderTest.java b/commons-rng-core/src/test/java/org/apache/commons/rng/core/BaseProviderTest.java
index 2e316ac..edb6343 100644
--- a/commons-rng-core/src/test/java/org/apache/commons/rng/core/BaseProviderTest.java
+++ b/commons-rng-core/src/test/java/org/apache/commons/rng/core/BaseProviderTest.java
@@ -18,6 +18,7 @@ package org.apache.commons.rng.core;
 
 import org.junit.Test;
 import org.junit.Assert;
+import org.junit.Assume;
 
 /**
  * Tests for {@link BaseProvider}.
@@ -29,8 +30,18 @@ import org.junit.Assert;
  */
 public class BaseProviderTest {
     @Test(expected=IllegalStateException.class)
-    public void testWrongStateSize() {
-        new DummyGenerator().restoreState(new RandomProviderDefaultState(new byte[1]));
+    public void testStateSizeTooSmall() {
+        final DummyGenerator dummy = new DummyGenerator();
+        final int size = dummy.getStateSize();
+        Assume.assumeTrue(size > 0);
+        dummy.restoreState(new RandomProviderDefaultState(new byte[size - 1]));
+    }
+
+    @Test(expected=IllegalStateException.class)
+    public void testStateSizeTooLarge() {
+        final DummyGenerator dummy = new DummyGenerator();
+        final int size = dummy.getStateSize();
+        dummy.restoreState(new RandomProviderDefaultState(new byte[size + 1]));
     }
 
     @Test
@@ -76,13 +87,22 @@ public class BaseProviderTest {
      *  <li>{@code fillState} methods with "protected" access</li>
      * </ul>
      */
-    class DummyGenerator extends org.apache.commons.rng.core.source32.IntProvider {
+    static class DummyGenerator extends org.apache.commons.rng.core.source32.IntProvider {
         /** {@inheritDoc} */
         @Override
         public int next() {
             return 4; // https://www.xkcd.com/221/
         }
 
+        /**
+         * Gets the state size. This captures the state size of the IntProvider.
+         *
+         * @return the state size
+         */
+        int getStateSize() {
+            return getStateInternal().length;
+        }
+
         // Missing overrides of "setStateInternal" and "getStateInternal".
 
         /** {@inheritDoc} */