Skip to content

Commit c3cd1d8

Browse files
committed
fix(server): allow sufficient startup time on slower machines
1 parent 4018f22 commit c3cd1d8

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

gradle/build.gradle.kts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import org.gradle.kotlin.dsl.support.unzipTo
22
import org.jetbrains.dokka.gradle.DokkaTask
33
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
44
import sc.gradle.ScriptsTask
5+
import java.nio.file.Files
56
import java.util.concurrent.atomic.AtomicBoolean
67

78
plugins {
@@ -133,9 +134,11 @@ tasks {
133134
.redirectError(testGameDir.resolve("server-err.log"))
134135
.directory(project(":server").buildDir.resolve("runnable"))
135136
.start()
136-
Thread.sleep(400)
137+
var i = 0
138+
while(Files.size(testGameDir.resolve("server.log").toPath()) < 1000 && i++ < 50)
139+
Thread.sleep(300)
137140
val startClient: (Int) -> Process = {
138-
Thread.sleep(100)
141+
Thread.sleep(300)
139142
ProcessBuilder(java, "-jar", deployDir.resolve(deployedPlayer).absolutePath)
140143
.redirectOutput(testGameDir.resolve("client$it.log")).redirectError(testGameDir.resolve("client$it-err.log")).start()
141144
}
@@ -221,6 +224,7 @@ tasks {
221224
}
222225

223226
check {
227+
dependOnSubprojects()
224228
if (enableIntegrationTesting)
225229
dependsOn(integrationTest)
226230
}

helpers/test-client/src/sc/TestClient.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.io.IOException;
2424
import java.math.BigDecimal;
2525
import java.math.MathContext;
26+
import java.nio.file.Files;
2627
import java.util.Arrays;
2728
import java.util.Objects;
2829
import java.util.StringTokenizer;
@@ -133,16 +134,20 @@ public static void main(String[] args) {
133134
logger.info("Starting server from {}", serverLocation);
134135
ProcessBuilder builder = new ProcessBuilder("java", "-classpath", classpath, "-Dfile.encoding=UTF-8", "-jar", serverLocation.getPath(), "--port", String.valueOf(port));
135136
logDir.mkdirs();
136-
builder.redirectOutput(new File(logDir, "server_port" + port + ".log"));
137+
File stdout = new File(logDir, "server_port" + port + ".log");
138+
builder.redirectOutput(stdout);
137139
builder.redirectError(new File(logDir, "server_port" + port + "-err.log"));
138140
Process server = builder.start();
139141
Runtime.getRuntime().addShutdownHook(new Thread(server::destroyForcibly));
140-
Thread.sleep(1000);
142+
int i = 0;
143+
while(Files.size(stdout.toPath()) < 1000 && i++ < 50)
144+
Thread.sleep(300);
145+
Thread.sleep(300);
141146
}
142147
testclient = new TestClient(host, port, numberOfTests);
143148
Runtime.getRuntime().addShutdownHook(new Thread(testclient::printScores));
144149
} catch (Exception e) {
145-
logger.error("Error while initializing: " + e.toString());
150+
logger.error("Error while initializing: " + e);
146151
e.printStackTrace();
147152
exit(2);
148153
}

0 commit comments

Comments
 (0)