#define PLUGDATA_TEST_TRANSLATION_UNIT 1 #include "Tests.h" #include "ObjectFuzzTest.h" #include "HelpfileFuzzTest.h" #include "HelpfileErrorTest.h" #include "SaveCloseRaceTest.h" #include "AbstractionReloadRaceTest.h" #include "DanglingBindingTest.h" #include "UIClickThroughTest.h" #include "EditActionStressTest.h" #include "TabSplitStressTest.h" #include "PatchTextFuzzTest.h" #include "DecompressTest.h" #include "MarkupDisplayTest.h" #include "StateRoundTripTest.h" #include "DialogCoverageTest.h" #include "ObjectInteractionTest.h" #include "InspectorTest.h" #include "TextEditorDialogTest.h" #include "ExportProgressTest.h" #include "SmallUITest.h" #include "OnboardingTest.h" #include "CommandInputTest.h" #include "EditWorkflowTest.h" #include "LuaObjectTest.h" #include "StoreDekenTest.h" #include "DraggableNumberTest.h" #include "CoverageSweepTest.h" void runTests(PluginEditor* editor) { // Need to execute tests on a separate thread, since our tests will block until the message thread has processed every test case std::thread testRunnerThread([editor] { SaveCloseRaceTest saveCloseRaceTest(editor); AbstractionReloadRaceTest abstractionReloadRaceTest(editor); DanglingBindingTest danglingBindingTest(editor); UIClickThroughTest uiClickThroughTest(editor); EditActionStressTest editActionStressTest(editor); TabSplitStressTest tabSplitStressTest(editor); PatchTextFuzzTest patchTextFuzzTest(editor); DecompressTest decompressTest(editor); MarkupDisplayTest markupDisplayTest(editor); StateRoundTripTest stateRoundTripTest(editor); DialogCoverageTest dialogCoverageTest(editor); ObjectInteractionTest objectInteractionTest(editor); InspectorTest inspectorTest(editor); TextEditorDialogTest textEditorDialogTest(editor); ExportProgressTest exportProgressTest(editor); SmallUITest smallUITest(editor); OnboardingTest onboardingTest(editor); CommandInputTest commandInputTest(editor); EditWorkflowTest editWorkflowTest(editor); LuaObjectTest luaObjectTest(editor); StoreDekenTest storeDekenTest(editor); DraggableNumberTest draggableNumberTest(editor); CoverageSweepTest coverageSweepTest(editor); ObjectFuzzTest objectFuzzer(editor); HelpFileFuzzTest helpfileFuzzer(editor); HelpFileErrorTest helpfileErrorTest(editor); UnitTestRunner runner; runner.runTests({ &saveCloseRaceTest, &abstractionReloadRaceTest, &danglingBindingTest, &decompressTest, &markupDisplayTest, &stateRoundTripTest, &dialogCoverageTest, &objectInteractionTest, &inspectorTest, &textEditorDialogTest, &exportProgressTest, &smallUITest, &onboardingTest, &commandInputTest, &editWorkflowTest, &luaObjectTest, &storeDekenTest, &draggableNumberTest, &uiClickThroughTest, &editActionStressTest, &tabSplitStressTest, &helpfileFuzzer, &objectFuzzer, &helpfileErrorTest }, 23); // The suite has finished (whether tests passed or failed). Quit the app // so the process exits instead of idling forever - the CI harness waits // for the process to terminate and parses stdout for pass/fail. MessageManager::callAsync([] { if (auto* app = JUCEApplicationBase::getInstance()) app->quit(); }); }); testRunnerThread.detach(); }