Silence odd test runner warnings after gradle upgrade (#13471)

This commit is contained in:
Dawid Weiss 2024-06-10 11:31:40 +02:00 committed by GitHub
parent fb94403e0f
commit 06f86a5096
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 7 deletions

View File

@ -133,7 +133,12 @@ allprojects {
jvmArgs '--add-modules', 'jdk.incubator.vector'
}
jvmArgs '--enable-native-access=' + (project.path == ':lucene:core' ? 'ALL-UNNAMED' : 'org.apache.lucene.core')
jvmArgs '--enable-native-access=' + (project.path in [
':lucene:core',
':lucene:codecs',
":lucene:distribution.tests",
":lucene:test-framework"
] ? 'ALL-UNNAMED' : 'org.apache.lucene.core')
def loggingConfigFile = layout.projectDirectory.file("${resources}/logging.properties")
def tempDir = layout.projectDirectory.dir(testsTmpDir.toString())

View File

@ -16,8 +16,12 @@
*/
package org.apache.lucene.codecs;
import com.carrotsearch.randomizedtesting.LifecycleScope;
import com.carrotsearch.randomizedtesting.RandomizedContext;
import com.carrotsearch.randomizedtesting.RandomizedRunner;
import com.carrotsearch.randomizedtesting.RandomizedTest;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
@ -34,6 +38,7 @@ import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.apache.lucene.tests.util.LuceneTestCase;
import org.apache.lucene.util.NamedThreadFactory;
import org.apache.lucene.util.SuppressForbidden;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -46,6 +51,7 @@ public class TestCodecLoadingDeadlock extends Assert {
private static final int MAX_TIME_SECONDS = 30;
@Test
@SuppressForbidden(reason = "Uses Path.toFile because ProcessBuilder requires it.")
public void testDeadlock() throws Exception {
// pick random codec names for stress test in separate process:
final Random rnd = RandomizedContext.current().getRandom();
@ -67,13 +73,24 @@ public class TestCodecLoadingDeadlock extends Assert {
args.addAll(List.of(getClass().getName(), codecName, pfName, dvfName));
// Fork a separate JVM to reinitialize classes.
final Process p = new ProcessBuilder(args).inheritIO().start();
final Path output = RandomizedTest.newTempFile(LifecycleScope.TEST);
final Process p =
new ProcessBuilder(args).redirectErrorStream(true).redirectOutput(output.toFile()).start();
boolean success = false;
try {
if (p.waitFor(MAX_TIME_SECONDS * 2, TimeUnit.SECONDS)) {
assertEquals("Process died abnormally?", 0, p.waitFor());
success = true;
} else {
p.destroyForcibly().waitFor();
fail("Process did not exit after 60 secs?");
}
} finally {
if (!success) {
System.out.println("Subprocess emitted the following output:");
System.out.write(Files.readAllBytes(output));
}
}
}
// This method is called in a spawned process.