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} */