Server: parallel quarkus tests

This commit is contained in:
2024-11-29 16:15:21 +01:00
parent c4fd46d9b1
commit 5fd444577c
10 changed files with 64 additions and 27 deletions

View File

@@ -151,6 +151,15 @@
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkCount>1C</forkCount>
<reuseForks>false</reuseForks>
<parallel>classes</parallel>
</configuration>
</plugin>
<plugin>
<groupId>${quarkus.platform.group-id}</groupId>
<artifactId>quarkus-maven-plugin</artifactId>

View File

@@ -1,6 +1,8 @@
package com.usatiuk.dhfs.objects.repository.peerdiscovery;
import com.usatiuk.dhfs.objects.repository.PersistentPeerDataService;
import io.quarkus.arc.lookup.LookupIfProperty;
import io.quarkus.arc.properties.IfBuildProperty;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.Startup;
@@ -13,6 +15,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
import java.net.*;
@ApplicationScoped
@IfBuildProperty(name = "dhfs.local-discovery", stringValue = "true")
public class LocalPeerDiscoveryBroadcaster {
@Inject

View File

@@ -2,6 +2,8 @@ package com.usatiuk.dhfs.objects.repository.peerdiscovery;
import com.google.protobuf.InvalidProtocolBufferException;
import com.usatiuk.dhfs.objects.repository.PeerManager;
import io.quarkus.arc.lookup.LookupIfProperty;
import io.quarkus.arc.properties.IfBuildProperty;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.Startup;
@@ -15,6 +17,7 @@ import java.nio.ByteBuffer;
import java.util.UUID;
@ApplicationScoped
@IfBuildProperty(name = "dhfs.local-discovery", stringValue = "true")
public class LocalPeerDiscoveryClient {
@Inject

View File

@@ -39,6 +39,7 @@ dhfs.objects.move-processor.threads=4
dhfs.objects.ref-processor.threads=4
dhfs.objects.opsender.batch-size=100
dhfs.objects.lock_timeout_secs=15
dhfs.local-discovery=true
quarkus.log.category."com.usatiuk.dhfs".min-level=TRACE
quarkus.log.category."com.usatiuk.dhfs".level=TRACE
quarkus.http.insecure-requests=enabled

View File

@@ -0,0 +1,29 @@
package com.usatiuk.dhfs;
import io.quarkus.test.junit.QuarkusTestProfile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
abstract public class TempDataProfile implements QuarkusTestProfile {
protected void getConfigOverrides(Map<String, String> toPut) {}
@Override
final public Map<String, String> getConfigOverrides() {
Path tempDirWithPrefix;
try {
tempDirWithPrefix = Files.createTempDirectory("dhfs-test");
} catch (IOException e) {
throw new RuntimeException(e);
}
var ret = new HashMap<String, String>();
ret.put("dhfs.objects.persistence.files.root", tempDirWithPrefix.resolve("dhfs_root_test").toString());
ret.put("dhfs.objects.root", tempDirWithPrefix.resolve("dhfs_root_d_test").toString());
ret.put("dhfs.fuse.root", tempDirWithPrefix.resolve("dhfs_fuse_root_test").toString());
getConfigOverrides(ret);
return ret;
}
}

View File

@@ -1,27 +1,24 @@
package com.usatiuk.dhfs.benchmarks;
import com.google.protobuf.UnsafeByteOperations;
import com.usatiuk.dhfs.TempDataProfile;
import com.usatiuk.dhfs.files.service.DhfsFileService;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.QuarkusTestProfile;
import io.quarkus.test.junit.TestProfile;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
class Profiles {
public static class DhfsFuseTestProfile implements QuarkusTestProfile {
public static class DhfsFuseTestProfile extends TempDataProfile {
@Override
public Map<String, String> getConfigOverrides() {
var ret = new HashMap<String, String>();
protected void getConfigOverrides(Map<String, String> ret) {
ret.put("quarkus.log.category.\"com.usatiuk.dhfs\".level", "INFO");
ret.put("dhfs.fuse.enabled", "false");
ret.put("dhfs.objects.ref_verification", "false");
return ret;
}
}
}
@@ -33,6 +30,7 @@ public class DhfsFileBenchmarkTest {
DhfsFileService dhfsFileService;
@Test
@Disabled
void openRootTest() {
Benchmarker.runAndPrintMixSimple("dhfsFileService.open(\"\")",
() -> {

View File

@@ -1,6 +1,7 @@
package com.usatiuk.dhfs.files;
import com.google.protobuf.ByteString;
import com.usatiuk.dhfs.TempDataProfile;
import com.usatiuk.dhfs.files.objects.ChunkData;
import com.usatiuk.dhfs.files.objects.File;
import com.usatiuk.dhfs.files.service.DhfsFileService;
@@ -8,12 +9,10 @@ import com.usatiuk.dhfs.objects.jrepository.DeletedObjectAccessException;
import com.usatiuk.dhfs.objects.jrepository.JObjectManager;
import com.usatiuk.dhfs.objects.jrepository.JObjectTxManager;
import com.usatiuk.kleppmanntree.AlreadyExistsException;
import io.quarkus.test.junit.QuarkusTestProfile;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
@@ -23,32 +22,26 @@ import java.util.concurrent.atomic.AtomicReference;
import static org.awaitility.Awaitility.await;
class Profiles {
public static class DhfsFileServiceSimpleTestProfile implements QuarkusTestProfile {
public static class DhfsFileServiceSimpleTestProfile extends TempDataProfile {
@Override
public Map<String, String> getConfigOverrides() {
var ret = new HashMap<String, String>();
protected void getConfigOverrides(Map<String, String> ret) {
ret.put("dhfs.fuse.enabled", "false");
return ret;
}
}
public static class DhfsFileServiceSimpleTestProfileNoChunking implements QuarkusTestProfile {
public static class DhfsFileServiceSimpleTestProfileNoChunking extends TempDataProfile {
@Override
public Map<String, String> getConfigOverrides() {
var ret = new HashMap<String, String>();
protected void getConfigOverrides(Map<String, String> ret) {
ret.put("dhfs.fuse.enabled", "false");
ret.put("dhfs.files.target_chunk_size", "-1");
return ret;
}
}
public static class DhfsFileServiceSimpleTestProfileSmallChunking implements QuarkusTestProfile {
public static class DhfsFileServiceSimpleTestProfileSmallChunking extends TempDataProfile {
@Override
public Map<String, String> getConfigOverrides() {
var ret = new HashMap<String, String>();
protected void getConfigOverrides(Map<String, String> ret) {
ret.put("dhfs.fuse.enabled", "false");
ret.put("dhfs.files.target_chunk_size", "3");
return ret;
}
}
}

View File

@@ -1,5 +1,6 @@
package com.usatiuk.dhfs.fuse;
import com.usatiuk.dhfs.TempDataProfile;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.QuarkusTestProfile;
import io.quarkus.test.junit.TestProfile;
@@ -12,7 +13,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
class Profiles {
public static class DhfsFuseTestProfile implements QuarkusTestProfile {
public static class DhfsFuseTestProfile extends TempDataProfile {
}
}

View File

@@ -1,32 +1,29 @@
package com.usatiuk.dhfs.persistence;
import com.google.protobuf.ByteString;
import com.usatiuk.dhfs.TempDataProfile;
import com.usatiuk.dhfs.objects.persistence.ChunkDataP;
import com.usatiuk.dhfs.objects.persistence.JObjectDataP;
import com.usatiuk.dhfs.objects.persistence.ObjectMetadataP;
import com.usatiuk.dhfs.objects.repository.persistence.FileObjectPersistentStore;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.QuarkusTestProfile;
import io.quarkus.test.junit.TestProfile;
import jakarta.inject.Inject;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ThreadLocalRandom;
class Profiles {
public static class FileObjectPersistentStoreTestProfile implements QuarkusTestProfile {
public static class FileObjectPersistentStoreTestProfile extends TempDataProfile {
@Override
public Map<String, String> getConfigOverrides() {
var ret = new HashMap<String, String>();
protected void getConfigOverrides(Map<String, String> ret) {
ret.put("quarkus.log.category.\"com.usatiuk.dhfs\".level", "TRACE");
ret.put("dhfs.fuse.enabled", "false");
ret.put("dhfs.objects.ref_verification", "true");
return ret;
}
}
}

View File

@@ -6,3 +6,6 @@ dhfs.objects.deletion.delay=0
quarkus.log.category."com.usatiuk.dhfs".level=TRACE
quarkus.log.category."com.usatiuk.dhfs".min-level=TRACE
quarkus.class-loading.parent-first-artifacts=com.usatiuk.dhfs:supportlib
quarkus.http.test-port=0
quarkus.http.test-ssl-port=0
dhfs.local-discovery=false