mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-28 20:47:49 +01:00
Server: parallel quarkus tests
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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(\"\")",
|
||||
() -> {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user