From 075fb313afff55f17e6ae6b7dd8906f33250bc9e Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 10:33:32 -0800 Subject: [PATCH 01/13] skip the exhaustive `generateBucketValueDistribution` when we're not testing on Travis Linux builds --- .../test/java/com/optimizely/ab/bucketing/BucketerTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index 1e571945e..e31bb4417 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -24,6 +24,7 @@ import com.optimizely.ab.config.Variation; import com.optimizely.ab.internal.LogbackVerifier; +import org.junit.Assume; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -40,6 +41,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import static com.optimizely.ab.config.ProjectConfigTestUtils.validProjectConfigV2; +import static com.sun.media.jfxmediaimpl.HostUtils.isLinux; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertNull; @@ -79,6 +81,7 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Test @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { + Assume.assumeTrue(isLinux()); long lowerHalfCount = 0; long totalCount = 0; int outOfRangeCount = 0; From 68306da4604bf75d44737dc74efdc3df08d8f9a9 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 10:48:14 -0800 Subject: [PATCH 02/13] use system property so changes are compatible with java 1.6 and java 1.7 --- .../optimizely/ab/bucketing/BucketerTest.java | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index e31bb4417..a518b03b1 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -16,6 +16,7 @@ */ package com.optimizely.ab.bucketing; +import ch.qos.logback.classic.Level; import com.optimizely.ab.bucketing.internal.MurmurHash3; import com.optimizely.ab.categories.ExhaustiveTest; import com.optimizely.ab.config.Experiment; @@ -23,33 +24,21 @@ import com.optimizely.ab.config.TrafficAllocation; import com.optimizely.ab.config.Variation; import com.optimizely.ab.internal.LogbackVerifier; - +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.junit.Assume; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.rules.ExpectedException; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; -import ch.qos.logback.classic.Level; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; - import static com.optimizely.ab.config.ProjectConfigTestUtils.validProjectConfigV2; -import static com.sun.media.jfxmediaimpl.HostUtils.isLinux; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; /** * Tests for {@link Bucketer}. @@ -81,7 +70,7 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Test @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { - Assume.assumeTrue(isLinux()); + Assume.assumeTrue(System.getProperty("os.name").contains("Linux")); long lowerHalfCount = 0; long totalCount = 0; int outOfRangeCount = 0; From 95d2feca06ee753eeafdd06d2d26e8001d77ef1f Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 11:29:52 -0800 Subject: [PATCH 03/13] Check for ENV variable set to true by default by travis. --- .../src/test/java/com/optimizely/ab/bucketing/BucketerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index a518b03b1..0deeda5ec 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -70,7 +70,7 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Test @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { - Assume.assumeTrue(System.getProperty("os.name").contains("Linux")); + Assume.assumeTrue(System.getenv("CI").equals("true")); long lowerHalfCount = 0; long totalCount = 0; int outOfRangeCount = 0; From 66fa8efafc4ec9a388d095fba6f1ad297dc9ec95 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 11:40:34 -0800 Subject: [PATCH 04/13] verify test runs on Travis CI --- .../test/java/com/optimizely/ab/bucketing/BucketerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index 0deeda5ec..d1bb8a96c 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -70,7 +70,7 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Test @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { - Assume.assumeTrue(System.getenv("CI").equals("true")); + Assume.assumeTrue(Boolean.valueOf(System.getenv("CI"))); long lowerHalfCount = 0; long totalCount = 0; int outOfRangeCount = 0; @@ -87,7 +87,7 @@ public void generateBucketValueDistribution() throws Exception { outOfRangeCount++; } } - + assertTrue(false); // verify that all values are in the expected range and that 50% of the values are in the lower half assertThat(outOfRangeCount, is(0)); assertThat(Math.round(((double)lowerHalfCount/totalCount) * 100), is(50L)); From 2219b469bbf89a90479ed9c66394e559e80c0f9a Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 11:48:58 -0800 Subject: [PATCH 05/13] check ci value on travis --- .travis.yml | 2 ++ .../src/test/java/com/optimizely/ab/bucketing/BucketerTest.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5be8e640d..898c284ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ jdk: - oraclejdk8 install: true script: + - "echo checkENVCI" + - "echo $CI" - "./gradlew clean" - "if [[ -n $TRAVIS_TAG ]]; then ./gradlew ship; diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index d1bb8a96c..d483e8f71 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -71,6 +71,7 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { Assume.assumeTrue(Boolean.valueOf(System.getenv("CI"))); + assertTrue(false); long lowerHalfCount = 0; long totalCount = 0; int outOfRangeCount = 0; @@ -87,7 +88,6 @@ public void generateBucketValueDistribution() throws Exception { outOfRangeCount++; } } - assertTrue(false); // verify that all values are in the expected range and that 50% of the values are in the lower half assertThat(outOfRangeCount, is(0)); assertThat(Math.round(((double)lowerHalfCount/totalCount) * 100), is(50L)); From 06f6f9ed689488e6c3d94288bb69f07fd98a5137 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 11:52:11 -0800 Subject: [PATCH 06/13] show log streams in travis --- .travis.yml | 1 - build.gradle | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 898c284ad..3bce86e27 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ jdk: - oraclejdk8 install: true script: - - "echo checkENVCI" - "echo $CI" - "./gradlew clean" - "if [[ -n $TRAVIS_TAG ]]; then diff --git a/build.gradle b/build.gradle index a58dff003..de1457614 100644 --- a/build.gradle +++ b/build.gradle @@ -76,7 +76,7 @@ subprojects { } testLogging { - showStandardStreams = false + showStandardStreams = true } } From 4b742e9b4eceef0f5ebcb3e932639ce1796d1855 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 12:01:02 -0800 Subject: [PATCH 07/13] log into travis our bucketvaluedistribution test --- .../src/test/java/com/optimizely/ab/bucketing/BucketerTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index d483e8f71..38f0c6891 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -70,6 +70,8 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Test @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { + System.out.println("starting generateBucketValueDistribution"); + System.out.println("CI Value is " + System.getenv("CI")); Assume.assumeTrue(Boolean.valueOf(System.getenv("CI"))); assertTrue(false); long lowerHalfCount = 0; From a7b40be8e5eb63dece5e1a033b57580ce71e7624 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 12:09:35 -0800 Subject: [PATCH 08/13] use exhaustive test for gradles --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 3bce86e27..ba599a5d7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ install: true script: - "echo $CI" - "./gradlew clean" + - "./gradlew exhaustiveTest" - "if [[ -n $TRAVIS_TAG ]]; then ./gradlew ship; else From 526848687e5eab0aab6e2699864602281af14a98 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 13:03:43 -0800 Subject: [PATCH 09/13] remove false assert --- .../test/java/com/optimizely/ab/bucketing/BucketerTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index 38f0c6891..b25163287 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -70,10 +70,7 @@ public void generateBucketValueForNegativeHashCodes() throws Exception { @Test @Category(ExhaustiveTest.class) public void generateBucketValueDistribution() throws Exception { - System.out.println("starting generateBucketValueDistribution"); - System.out.println("CI Value is " + System.getenv("CI")); Assume.assumeTrue(Boolean.valueOf(System.getenv("CI"))); - assertTrue(false); long lowerHalfCount = 0; long totalCount = 0; int outOfRangeCount = 0; From 00d49fcaba64027b7dd8b44c4c960728c130a420 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 13:10:28 -0800 Subject: [PATCH 10/13] revert wildcard imports --- .../com/optimizely/ab/bucketing/BucketerTest.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index b25163287..64e20af03 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -31,14 +31,23 @@ import org.junit.experimental.categories.Category; import org.junit.rules.ExpectedException; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import static com.optimizely.ab.config.ProjectConfigTestUtils.validProjectConfigV2; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + /** * Tests for {@link Bucketer}. From d708acb375017d9d74de85f60c533ab6ea0fd3b8 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 13:14:10 -0800 Subject: [PATCH 11/13] change things back to normal --- .travis.yml | 1 - build.gradle | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ba599a5d7..adb85e7dd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ jdk: - oraclejdk8 install: true script: - - "echo $CI" - "./gradlew clean" - "./gradlew exhaustiveTest" - "if [[ -n $TRAVIS_TAG ]]; then diff --git a/build.gradle b/build.gradle index de1457614..a58dff003 100644 --- a/build.gradle +++ b/build.gradle @@ -76,7 +76,7 @@ subprojects { } testLogging { - showStandardStreams = true + showStandardStreams = false } } From 57abf073845286b135fcb8482dbe3272ead96de6 Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 13:15:46 -0800 Subject: [PATCH 12/13] fix nit --- .../src/test/java/com/optimizely/ab/bucketing/BucketerTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index 64e20af03..3480a468e 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -96,6 +96,7 @@ public void generateBucketValueDistribution() throws Exception { outOfRangeCount++; } } + // verify that all values are in the expected range and that 50% of the values are in the lower half assertThat(outOfRangeCount, is(0)); assertThat(Math.round(((double)lowerHalfCount/totalCount) * 100), is(50L)); From 0ea8cba8f4571c71591e31a8e9ec942281a003ea Mon Sep 17 00:00:00 2001 From: wangjoshuah Date: Fri, 10 Mar 2017 13:16:30 -0800 Subject: [PATCH 13/13] fix nit --- .../test/java/com/optimizely/ab/bucketing/BucketerTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java index 3480a468e..f22d6a7cf 100644 --- a/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/bucketing/BucketerTest.java @@ -48,7 +48,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; - /** * Tests for {@link Bucketer}. */ @@ -96,7 +95,7 @@ public void generateBucketValueDistribution() throws Exception { outOfRangeCount++; } } - + // verify that all values are in the expected range and that 50% of the values are in the lower half assertThat(outOfRangeCount, is(0)); assertThat(Math.round(((double)lowerHalfCount/totalCount) * 100), is(50L));