more threading work
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
This commit is contained in:
parent
5563b4366f
commit
82027a20cb
@ -3,8 +3,10 @@ package electrosphere.engine;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Semaphore;
|
import java.util.concurrent.Semaphore;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import electrosphere.engine.loadingthreads.LoadingThread;
|
import electrosphere.engine.loadingthreads.LoadingThread;
|
||||||
|
import electrosphere.util.CodeUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages all running threads
|
* Manages all running threads
|
||||||
@ -35,7 +37,6 @@ public class ThreadManager {
|
|||||||
List<Thread> threadsToRemove = new LinkedList<Thread>();
|
List<Thread> threadsToRemove = new LinkedList<Thread>();
|
||||||
for(LoadingThread thread : loadingThreads){
|
for(LoadingThread thread : loadingThreads){
|
||||||
if(thread.isDone()){
|
if(thread.isDone()){
|
||||||
System.out.println("Collect loading thread of type " + thread.getType());
|
|
||||||
threadsToRemove.add(thread);
|
threadsToRemove.add(thread);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,8 +94,15 @@ public class ThreadManager {
|
|||||||
|
|
||||||
//
|
//
|
||||||
//interrupt all threads
|
//interrupt all threads
|
||||||
for(Thread thread : activeThreads){
|
for(int i = 0; i < 3; i++){
|
||||||
thread.interrupt();
|
for(Thread thread : activeThreads){
|
||||||
|
thread.interrupt();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
TimeUnit.MILLISECONDS.sleep(3);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
CodeUtils.todo(e, "Handle failing to sleep while interrupting all other threads");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
threadLock.release();
|
threadLock.release();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,7 +75,6 @@ public class LoadingThread extends Thread {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(){
|
public void run(){
|
||||||
System.out.println("Start loading thread of type " + this.threadType);
|
|
||||||
switch(threadType){
|
switch(threadType){
|
||||||
|
|
||||||
case TITLE_MENU: {
|
case TITLE_MENU: {
|
||||||
|
|||||||
@ -7,6 +7,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.joml.Vector3d;
|
import org.joml.Vector3d;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.junit.jupiter.api.parallel.Execution;
|
||||||
|
import org.junit.jupiter.api.parallel.ExecutionMode;
|
||||||
|
|
||||||
import annotations.IntegrationTest;
|
import annotations.IntegrationTest;
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
@ -24,7 +27,9 @@ import testutils.TestEngineUtils;
|
|||||||
/**
|
/**
|
||||||
* Tests for client side equip state
|
* Tests for client side equip state
|
||||||
*/
|
*/
|
||||||
public class ClientEquipStateTests extends EntityTestTemplate {
|
@ExtendWith(EntityTestTemplate.class)
|
||||||
|
@Execution(ExecutionMode.SAME_THREAD)
|
||||||
|
public class ClientEquipStateTests {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -7,6 +7,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.joml.Vector3d;
|
import org.joml.Vector3d;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.junit.jupiter.api.parallel.Execution;
|
||||||
|
import org.junit.jupiter.api.parallel.ExecutionMode;
|
||||||
|
|
||||||
import annotations.IntegrationTest;
|
import annotations.IntegrationTest;
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
@ -22,7 +25,9 @@ import testutils.TestEngineUtils;
|
|||||||
/**
|
/**
|
||||||
* Server equip state tests
|
* Server equip state tests
|
||||||
*/
|
*/
|
||||||
public class ServerEquipStateTests extends EntityTestTemplate {
|
@ExtendWith(EntityTestTemplate.class)
|
||||||
|
@Execution(ExecutionMode.SAME_THREAD)
|
||||||
|
public class ServerEquipStateTests {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try equipping an item
|
* Try equipping an item
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package electrosphere.renderer.ui.elements;
|
package electrosphere.renderer.ui.elements;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
|
||||||
import annotations.IntegrationTest;
|
import annotations.IntegrationTest;
|
||||||
import electrosphere.menu.WindowUtils;
|
import electrosphere.menu.WindowUtils;
|
||||||
import electrosphere.menu.mainmenu.MenuGeneratorsUITesting;
|
import electrosphere.menu.mainmenu.MenuGeneratorsUITesting;
|
||||||
@ -9,6 +11,7 @@ import testutils.TestEngineUtils;
|
|||||||
/**
|
/**
|
||||||
* Tests for the window class
|
* Tests for the window class
|
||||||
*/
|
*/
|
||||||
|
@ExtendWith(RenderingTestTemplate.class)
|
||||||
public class WindowTest extends RenderingTestTemplate {
|
public class WindowTest extends RenderingTestTemplate {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import annotations.IntegrationSetup;
|
|||||||
import annotations.IntegrationTest;
|
import annotations.IntegrationTest;
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.engine.profiler.Profiler;
|
import electrosphere.engine.profiler.Profiler;
|
||||||
import electrosphere.logger.LoggerInterface;
|
|
||||||
import electrosphere.net.NetUtils;
|
import electrosphere.net.NetUtils;
|
||||||
|
|
||||||
public class StartupTest {
|
public class StartupTest {
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
package template;
|
package template;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Tag;
|
import org.junit.jupiter.api.Tag;
|
||||||
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||||
|
|
||||||
import annotations.IntegrationSetup;
|
|
||||||
import annotations.IntegrationTeardown;
|
|
||||||
import electrosphere.engine.Main;
|
|
||||||
import testutils.EngineInit;
|
import testutils.EngineInit;
|
||||||
import testutils.TestEngineUtils;
|
import testutils.TestEngineUtils;
|
||||||
|
|
||||||
@ -12,14 +10,10 @@ import testutils.TestEngineUtils;
|
|||||||
/**
|
/**
|
||||||
* Template for writing tests that do stuff with entities in a proper scene
|
* Template for writing tests that do stuff with entities in a proper scene
|
||||||
*/
|
*/
|
||||||
public abstract class EntityTestTemplate extends RenderingTestTemplate {
|
public class EntityTestTemplate extends RenderingTestTemplate {
|
||||||
|
|
||||||
/**
|
|
||||||
* Starts up the entity scene
|
|
||||||
*/
|
|
||||||
@IntegrationSetup
|
|
||||||
@Override
|
@Override
|
||||||
public void initEngine(){
|
public void beforeEach(ExtensionContext context) throws Exception {
|
||||||
//init engine
|
//init engine
|
||||||
TestEngineUtils.initGraphicalEngine();
|
TestEngineUtils.initGraphicalEngine();
|
||||||
|
|
||||||
@ -27,12 +21,4 @@ public abstract class EntityTestTemplate extends RenderingTestTemplate {
|
|||||||
EngineInit.setupConnectedTestScene();
|
EngineInit.setupConnectedTestScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Shuts down the engine
|
|
||||||
*/
|
|
||||||
@IntegrationTeardown
|
|
||||||
public void closeEngine(){
|
|
||||||
Main.shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,39 +3,21 @@ package template;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Tag;
|
import org.junit.jupiter.api.Tag;
|
||||||
|
import org.junit.jupiter.api.extension.AfterEachCallback;
|
||||||
|
import org.junit.jupiter.api.extension.BeforeEachCallback;
|
||||||
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||||
|
|
||||||
import annotations.IntegrationSetup;
|
|
||||||
import annotations.IntegrationTeardown;
|
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.engine.Main;
|
import electrosphere.engine.Main;
|
||||||
import testutils.TestEngineUtils;
|
import testutils.TestEngineUtils;
|
||||||
import testutils.TestRenderingUtils;
|
import testutils.TestRenderingUtils;
|
||||||
|
|
||||||
@Tag("Graphical")
|
@Tag("integration")
|
||||||
|
@Tag("graphical")
|
||||||
/**
|
/**
|
||||||
* A test class that involves testing renders
|
* A test class that involves testing renders
|
||||||
*/
|
*/
|
||||||
public abstract class RenderingTestTemplate {
|
public class RenderingTestTemplate implements BeforeEachCallback, AfterEachCallback {
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes the engine
|
|
||||||
*/
|
|
||||||
@IntegrationSetup
|
|
||||||
public void initEngine(){
|
|
||||||
Globals.WINDOW_DECORATED = false;
|
|
||||||
Globals.WINDOW_FULLSCREEN = true;
|
|
||||||
Globals.WINDOW_WIDTH = 1920;
|
|
||||||
Globals.WINDOW_HEIGHT = 1080;
|
|
||||||
TestEngineUtils.initGraphicalEngine();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shuts down the engine
|
|
||||||
*/
|
|
||||||
@IntegrationTeardown
|
|
||||||
public void closeEngine(){
|
|
||||||
Main.shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks the most recent render versus an existing image
|
* Checks the most recent render versus an existing image
|
||||||
@ -57,4 +39,18 @@ public abstract class RenderingTestTemplate {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterEach(ExtensionContext context) throws Exception {
|
||||||
|
Globals.WINDOW_DECORATED = false;
|
||||||
|
Globals.WINDOW_FULLSCREEN = true;
|
||||||
|
Globals.WINDOW_WIDTH = 1920;
|
||||||
|
Globals.WINDOW_HEIGHT = 1080;
|
||||||
|
TestEngineUtils.initGraphicalEngine();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeEach(ExtensionContext context) throws Exception {
|
||||||
|
Main.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user