Skip to content

Commit

Permalink
enable gradle daemon toolchain auto-provisioning
Browse files Browse the repository at this point in the history
Also added some debugging information on a flaky OpenJDK test which
appears to be a test bug, but is hard to reproduce and did not provide
any error details.
  • Loading branch information
ben-manes committed Feb 12, 2025
1 parent b3b3206 commit 2fee4bd
Show file tree
Hide file tree
Showing 22 changed files with 139 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
*/
package com.github.benmanes.caffeine.openjdk.concurrent.concurrenthashmap;

import static com.google.common.truth.Truth.assertWithMessage;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
Expand All @@ -49,7 +51,9 @@
import java.util.concurrent.ThreadLocalRandom;
import java.util.function.Supplier;

import org.testng.ITestResult;
import org.testng.annotations.Test;
import org.testng.util.RetryAnalyzerCount;

import com.github.benmanes.caffeine.cache.Caffeine;

Expand Down Expand Up @@ -77,15 +81,25 @@ static void reallyAssert(boolean b) {
}
}

@Test
public static final class Retries extends RetryAnalyzerCount {
public Retries() {
setCount(3);
}
@Override public boolean retryMethod(ITestResult result) {
return !result.isSuccess();
}
}

@Test(retryAnalyzer = Retries.class)
public void bounded() {
test(() -> Caffeine.newBuilder()
.expireAfterWrite(Duration.ofNanos(Long.MAX_VALUE))
.maximumSize(Long.MAX_VALUE)
.executor(Runnable::run)
.build().asMap());
}

@Test
@Test(retryAnalyzer = Retries.class)
public void unbounded() {
test(() -> Caffeine.newBuilder().build().asMap());
}
Expand Down Expand Up @@ -183,7 +197,7 @@ static void t1(String nm, int n, Map s, Object[] key, int expect) {
}
}
timer.finish();
reallyAssert(sum == expect * iters);
assertWithMessage("%s", s).that(sum).isEqualTo(expect * iters);
}

static void t2(String nm, int n, Map s, Object[] key, int expect) {
Expand All @@ -195,7 +209,7 @@ static void t2(String nm, int n, Map s, Object[] key, int expect) {
}
}
timer.finish();
reallyAssert(sum == expect);
assertWithMessage("%s", s).that(sum).isEqualTo(expect);
}

static void t3(String nm, int n, Map s, Object[] key, int expect) {
Expand All @@ -207,7 +221,7 @@ static void t3(String nm, int n, Map s, Object[] key, int expect) {
}
}
timer.finish();
reallyAssert(sum == expect);
assertWithMessage("%s", s).that(sum).isEqualTo(expect);
}

static void t4(String nm, int n, Map s, Object[] key, int expect) {
Expand All @@ -219,7 +233,7 @@ static void t4(String nm, int n, Map s, Object[] key, int expect) {
}
}
timer.finish();
reallyAssert(sum == expect);
assertWithMessage("%s", s).that(sum).isEqualTo(expect);
}

static void t5(String nm, int n, Map s, Object[] key, int expect) {
Expand All @@ -231,7 +245,7 @@ static void t5(String nm, int n, Map s, Object[] key, int expect) {
}
}
timer.finish();
reallyAssert(sum == expect);
assertWithMessage("%s", s).that(sum).isEqualTo(expect);
}

static void t6(String nm, int n, Map s, Object[] k1, Object[] k2) {
Expand All @@ -246,7 +260,7 @@ static void t6(String nm, int n, Map s, Object[] k1, Object[] k2) {
}
}
timer.finish();
reallyAssert(sum == n);
assertWithMessage("%s", s).that(sum).isEqualTo(n);
}

static void t7(String nm, int n, Map s, Object[] k1, Object[] k2) {
Expand All @@ -261,7 +275,7 @@ static void t7(String nm, int n, Map s, Object[] k1, Object[] k2) {
}
}
timer.finish();
reallyAssert(sum == n);
assertWithMessage("%s", s).that(sum).isEqualTo(n);
}

static void t8(String nm, int n, Map s, Object[] key, int expect) {
Expand All @@ -273,7 +287,7 @@ static void t8(String nm, int n, Map s, Object[] key, int expect) {
}
}
timer.finish();
reallyAssert(sum == expect);
assertWithMessage("%s", s).that(sum).isEqualTo(expect);
}


Expand All @@ -288,7 +302,7 @@ static void t9(Map s) {
}
}
timer.finish();
reallyAssert(sum != 0);
assertWithMessage("%s", s).that(sum).isNotEqualTo(0);
}


Expand All @@ -302,7 +316,7 @@ static void ktest(Map s, int size, Object[] key) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", s).that(sum).isEqualTo(size);
}


Expand All @@ -315,7 +329,7 @@ static void ittest1(Map s, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", s).that(sum).isEqualTo(size);
}

static void ittest2(Map s, int size) {
Expand All @@ -327,7 +341,7 @@ static void ittest2(Map s, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", s).that(sum).isEqualTo(size);
}
static void ittest3(Map s, int size) {
int sum = 0;
Expand All @@ -338,12 +352,12 @@ static void ittest3(Map s, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", s).that(sum).isEqualTo(size);
}

static void ittest4(Map s, int size, int pos) {
IdentityHashMap seen = new IdentityHashMap(size);
reallyAssert(s.size() == size);
assertWithMessage("%s", s).that(s).hasSize(size);
int sum = 0;
timer.start("Iter XEntry ", size);
Iterator it = s.entrySet().iterator();
Expand All @@ -358,9 +372,9 @@ static void ittest4(Map s, int size, int pos) {
++sum;
}
}
reallyAssert(s.containsKey(k));
assertWithMessage("%s", s).that(s).containsKey(k);
it.remove();
reallyAssert(!s.containsKey(k));
assertWithMessage("%s", s).that(s).doesNotContainKey(k);
while (it.hasNext()) {
Map.Entry x = (Map.Entry)(it.next());
Object k2 = x.getKey();
Expand All @@ -370,12 +384,12 @@ static void ittest4(Map s, int size, int pos) {
}
}

reallyAssert(s.size() == size-1);
assertWithMessage("%s", s).that(s).hasSize(size-1);
s.put(k, v);
reallyAssert(seen.size() == size);
assertWithMessage("%s", s).that(seen).hasSize(size);
timer.finish();
reallyAssert(sum == size);
reallyAssert(s.size() == size);
assertWithMessage("%s", s).that(sum).isEqualTo(size);
assertWithMessage("%s", s).that(s).hasSize(size);
}


Expand All @@ -397,7 +411,7 @@ static void entest1(Hashtable ht, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", ht).that(sum).isEqualTo(size);
}

static void entest2(Hashtable ht, int size) {
Expand All @@ -409,7 +423,7 @@ static void entest2(Hashtable ht, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", ht).that(sum).isEqualTo(size);
}


Expand All @@ -424,7 +438,7 @@ static void entest3(Hashtable ht, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", ht).that(sum).isEqualTo(size);
}

static void entest4(Hashtable ht, int size) {
Expand All @@ -437,7 +451,7 @@ static void entest4(Hashtable ht, int size) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", ht).that(sum).isEqualTo(size);
}

static void entest(Map s, int size) {
Expand Down Expand Up @@ -484,14 +498,14 @@ static void dtest(Supplier<Map> supplier, Map s, int size, Object[] key) {
timer.finish();

timer.start("Iter Equals ", size * 2);
boolean eqt = s2.equals(s) && s.equals(s2);
reallyAssert(eqt);
assertWithMessage("%s", s).that(s).isEqualTo(s2);
assertWithMessage("%s", s).that(s2).isEqualTo(s);
timer.finish();

timer.start("Iter HashCode ", size * 2);
int shc = s.hashCode();
int s2hc = s2.hashCode();
reallyAssert(shc == s2hc);
assertWithMessage("%s", s).that(shc).isEqualTo(s2hc);
timer.finish();

timer.start("Put (present) ", size);
Expand All @@ -508,21 +522,21 @@ static void dtest(Supplier<Map> supplier, Map s, int size, Object[] key) {
}
}
timer.finish();
reallyAssert(sum == size);
assertWithMessage("%s", s).that(sum).isEqualTo(size);

t6("Get ", size, s2, key, absent);

Object hold = s2.get(key[size-1]);
s2.put(key[size-1], absent[0]);
timer.start("Iter Equals ", size * 2);
eqt = s2.equals(s) && s.equals(s2);
reallyAssert(!eqt);
assertWithMessage("%s", s).that(s).isNotEqualTo(s2);
assertWithMessage("%s", s).that(s2).isNotEqualTo(s);
timer.finish();

timer.start("Iter HashCode ", size * 2);
int s1h = s.hashCode();
int s2h = s2.hashCode();
reallyAssert(s1h != s2h);
assertWithMessage("%s", s).that(s1h).isNotEqualTo(s2h);
timer.finish();

s2.put(key[size-1], hold);
Expand All @@ -534,12 +548,13 @@ static void dtest(Supplier<Map> supplier, Map s, int size, Object[] key) {
}
timer.finish();

reallyAssert(s.isEmpty());
assertWithMessage("%s", s).that(s).isEmpty();

timer.start("Clear ", size);
s2.clear();
timer.finish();
reallyAssert(s2.isEmpty() && s.isEmpty());
assertWithMessage("%s", s).that(s).isEmpty();
assertWithMessage("%s", s).that(s2).isEmpty();
}

static void stest(Map s, int size) throws Exception {
Expand Down Expand Up @@ -571,7 +586,7 @@ static void stest(Map s, int size) throws Exception {
if (s instanceof IdentityHashMap) {
return;
}
reallyAssert(s.equals(m));
assertWithMessage("%s", s).that(s).isEqualTo(m);
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e7806cd9471741d622398825f14d2da6/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/0402cc5012ae8124ea0ad01bd29342ef/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/86ea5d26c5757681ffe78d87258b45ec/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ea8232621e1368089cec8b12816df5e3/redirect
toolchainVersion=21
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[versions]
caffeine = "3.2.0"
junit = "5.12.0-RC1"
reactor = "3.7.2"
junit = "5.12.0-RC2"
reactor = "3.7.3"
truth = "1.4.4"
versions = "0.52.0"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-rc-1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion examples/graal-native/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[versions]
caffeine = "3.2.0"
graal = "0.10.5"
junit = "5.12.0-RC1"
junit = "5.12.0-RC2"
truth = "1.4.4"
versions = "0.52.0"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-rc-1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
Expand Down
10 changes: 10 additions & 0 deletions examples/hibernate/gradle/gradle-daemon-jvm.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e7806cd9471741d622398825f14d2da6/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/0402cc5012ae8124ea0ad01bd29342ef/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/86ea5d26c5757681ffe78d87258b45ec/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ea8232621e1368089cec8b12816df5e3/redirect
toolchainVersion=21
4 changes: 2 additions & 2 deletions examples/hibernate/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[versions]
caffeine = "3.2.0"
h2 = "2.3.232"
hibernate = "7.0.0.Beta3"
junit = "5.12.0-RC1"
hibernate = "7.0.0.Beta4"
junit = "5.12.0-RC2"
log4j2 = "3.0.0-beta2"
truth = "1.4.4"
versions = "0.52.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-rc-1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
Expand Down
10 changes: 10 additions & 0 deletions examples/indexable/gradle/gradle-daemon-jvm.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e7806cd9471741d622398825f14d2da6/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/0402cc5012ae8124ea0ad01bd29342ef/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e2d97f28068cf05b0467aa8e97b19f69/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/a41f952f4496c2309be30fd168c6c117/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/86ea5d26c5757681ffe78d87258b45ec/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ea8232621e1368089cec8b12816df5e3/redirect
toolchainVersion=21
2 changes: 1 addition & 1 deletion examples/indexable/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[versions]
caffeine = "3.2.0"
guava = "33.4.0-jre"
junit-jupiter = "5.12.0-RC1"
junit-jupiter = "5.12.0-RC2"
truth = "1.4.4"
versions = "0.52.0"

Expand Down
Loading

0 comments on commit 2fee4bd

Please sign in to comment.