From fb867181b3d63b20ae02275eb721fccf3d511d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Sun, 30 Oct 2022 16:34:23 -0400 Subject: [PATCH] [tests] Fix tests failing due to graph object being too large --- examples/Dataflow/MiniDAW.cpp | 6 +++--- examples/Dataflow/MixSines.cpp | 3 ++- examples/Dataflow/MixSinesAddress.cpp | 3 ++- src/ossia/network/value/value.cpp | 1 + src/ossia_setup.cmake | 9 +++++++++ tests/Dataflow/DataflowTest.cpp | 16 ++++++++++------ tests/Editor/ScenarioAlgoTest.cpp | 10 +++++++--- 7 files changed, 34 insertions(+), 14 deletions(-) diff --git a/examples/Dataflow/MiniDAW.cpp b/examples/Dataflow/MiniDAW.cpp index e79889fafe1..7ebdba708bd 100644 --- a/examples/Dataflow/MiniDAW.cpp +++ b/examples/Dataflow/MiniDAW.cpp @@ -257,7 +257,7 @@ int main(int argc, char** argv) using namespace std::literals; // Setup our datastructures - ossia::tc_graph graph; + auto graph = std::make_unique(); ossia::audio_device audio{ "minidaw", // name, for APIs like JACK 256, // buffer size @@ -274,10 +274,10 @@ int main(int argc, char** argv) e.samplesToModelRatio = ossia::flicks_per_second / audio.get_sample_rate(); e.register_device(&audio.device); - auto root_interval = create_score(graph, audio); + auto root_interval = create_score(*graph, audio); root_interval->start(); - audio.engine->set_tick(tick{e, graph, audio.protocol, *root_interval}); + audio.engine->set_tick(tick{e, *graph, audio.protocol, *root_interval}); std::this_thread::sleep_for(20s); diff --git a/examples/Dataflow/MixSines.cpp b/examples/Dataflow/MixSines.cpp index 8e9e64d7a6a..d2219be2a6b 100644 --- a/examples/Dataflow/MixSines.cpp +++ b/examples/Dataflow/MixSines.cpp @@ -47,7 +47,8 @@ int main(int argc, char** argv) using namespace ossia; using namespace std::literals; - tc_graph g; + auto gg = std::make_unique(); // graph implementation with static scheduling + auto& g = *gg; execution_state e; audio_device audio; diff --git a/examples/Dataflow/MixSinesAddress.cpp b/examples/Dataflow/MixSinesAddress.cpp index 103407feef9..82267cb2d71 100644 --- a/examples/Dataflow/MixSinesAddress.cpp +++ b/examples/Dataflow/MixSinesAddress.cpp @@ -21,7 +21,8 @@ int main(int argc, char** argv) using namespace ossia; using namespace std::literals; oscquery_device osc; // a device to expose parameters over the network - tc_graph g; // graph implementation with static scheduling + auto gg = std::make_unique(); // graph implementation with static scheduling + auto& g = *gg; execution_state e; audio_device audio; // a device that maps to the sound card inputs & outputs diff --git a/src/ossia/network/value/value.cpp b/src/ossia/network/value/value.cpp index 521232e083b..cfe0e4c525f 100644 --- a/src/ossia/network/value/value.cpp +++ b/src/ossia/network/value/value.cpp @@ -16,6 +16,7 @@ #include #include +#include /* template class std::vector; diff --git a/src/ossia_setup.cmake b/src/ossia_setup.cmake index df529eb9d96..43ec883889e 100644 --- a/src/ossia_setup.cmake +++ b/src/ossia_setup.cmake @@ -26,6 +26,15 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") endif() endif() +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0) + target_compile_options(ossia + PUBLIC + -fconcepts + ) + endif() +endif() + if(WIN32) if(MSVC) target_compile_definitions(ossia PUBLIC diff --git a/tests/Dataflow/DataflowTest.cpp b/tests/Dataflow/DataflowTest.cpp index d7a41e6a763..e085ccc6f6e 100644 --- a/tests/Dataflow/DataflowTest.cpp +++ b/tests/Dataflow/DataflowTest.cpp @@ -144,8 +144,8 @@ struct execution_mock struct base_graph { - //ossia::graph g; - ossia::tc_graph g; + std::unique_ptr gg = std::make_unique(); + ossia::tc_graph& g = *gg; ossia::execution_state e; base_graph(ossia::TestDevice& test) { e.register_device(&test.device); } @@ -428,7 +428,8 @@ struct bc_ab_graph : base_graph TEST_CASE("test_bfs", "test_bfs") { using namespace ossia; - ossia::bfs_graph g; + auto gg = std::make_unique(); + auto& g = *gg; auto n1 = boost::add_vertex({}, g.impl()); auto n2 = boost::add_vertex({}, g.impl()); auto n3 = boost::add_vertex({}, g.impl()); @@ -444,7 +445,8 @@ TEST_CASE("test_bfs_addr", "test_bfs_addr") TestDevice test; - ossia::bfs_graph g; + auto gg = std::make_unique(); + auto& g = *gg; auto n1 = std::make_shared( ossia::inlets{new value_inlet(*test.a)}, ossia::outlets{new value_outlet(*test.b)}); @@ -488,7 +490,8 @@ TEST_CASE("test_tcl_addr", "test_tcl_addr") TEST_CASE("test_mock", "test_mock") { using namespace ossia; - graph g; + auto gg = std::make_unique(); + auto& g = *gg; auto n1 = std::make_shared(inlets{new value_inlet}, outlets{new value_outlet}); @@ -553,7 +556,8 @@ TEST_CASE("test_mock", "test_mock") TEST_CASE("test_disable_strict_nodes", "test_disable_strict_nodes") { using namespace ossia; - ossia::graph g; + auto gg = std::make_unique(); + auto& g = *gg; auto disable_nodes = [&](std::vector> nodes) { node_flat_set enabled, disabled; for(auto node : nodes) diff --git a/tests/Editor/ScenarioAlgoTest.cpp b/tests/Editor/ScenarioAlgoTest.cpp index cc7813290c9..42bba3cd731 100644 --- a/tests/Editor/ScenarioAlgoTest.cpp +++ b/tests/Editor/ScenarioAlgoTest.cpp @@ -623,7 +623,8 @@ TEST_CASE("test_simulated_state", "test_simulated_state") REQUIRE(utils.float_addr->value() == ossia::value(float(0.))); - ossia::graph g; + auto gg = std::make_unique(); + auto& g = *gg; ossia::execution_state e; g.add_node(msg_node); g.state(e); @@ -913,7 +914,9 @@ TEST_CASE("test_percentage", "test_percentage") using namespace ossia; root_scenario s; TestDevice utils; - ossia::graph g; + + auto gg = std::make_unique(); + auto& g = *gg; ossia::scenario& scenario = *s.scenario; std::shared_ptr e0 = start_event(scenario); @@ -966,7 +969,8 @@ TEST_CASE("test_percentage_long", "test_percentage_long") using namespace ossia; root_scenario s; TestDevice utils; - ossia::graph g; + auto gg = std::make_unique(); + auto& g = *gg; ossia::scenario& scenario = *s.scenario; std::shared_ptr e0 = start_event(scenario);