From 453fb81615d1d306f77ee36160bf4cc9a9c8de94 Mon Sep 17 00:00:00 2001 From: Martin Hierholzer <martin.hierholzer@desy.de> Date: Fri, 17 Feb 2017 15:27:08 +0100 Subject: [PATCH] added test for late initialised accessors --- .../testAppModuleConnections.cc | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/tests/executables_src/testAppModuleConnections.cc b/tests/executables_src/testAppModuleConnections.cc index b60858f1..04621cad 100644 --- a/tests/executables_src/testAppModuleConnections.cc +++ b/tests/executables_src/testAppModuleConnections.cc @@ -50,6 +50,14 @@ struct TestModule : public ctk::ApplicationModule { ctk::ArrayOutput<T> feedingArray{this, "feedingArray", "m", 10, "Descrption"}; + ctk::ScalarPollInput<T> lateConstrScalarPollInput; + ctk::ScalarPushInput<T> lateConstrScalarPushInput; + ctk::ScalarOutput<T> lateConstrScalarOutput; + + ctk::ArrayPollInput<T> lateConstrArrayPollInput; + ctk::ArrayPushInput<T> lateConstrArrayPushInput; + ctk::ArrayOutput<T> lateConstrArrayOutput; + void mainLoop() {} }; @@ -242,3 +250,71 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( testTwoArrayAccessors, T, test_types ) { for(unsigned int i=0; i<10; ++i) BOOST_CHECK(app.testModule.consumingPushArray[i] == 42-(T)i); } + +/*********************************************************************************************************************/ +/* test case for late constructing accessors */ + +BOOST_AUTO_TEST_CASE_TEMPLATE( testLateConstruction, T, test_types ) { + std::cout << "*** testLateConstruction<" << typeid(T).name() << ">" << std::endl; + + TestApplication<T> app; + + // create the scalars + app.testModule.lateConstrScalarPollInput.replace( ctk::ScalarPollInput<T>(&app.testModule, "LateName1", "", "") ); + app.testModule.lateConstrScalarPushInput.replace( ctk::ScalarPushInput<T>(&app.testModule, "LateName2", "", "") ); + app.testModule.lateConstrScalarOutput.replace( ctk::ScalarOutput<T>(&app.testModule, "LateName3", "", "") ); + + // connect the scalars + app.testModule.lateConstrScalarOutput >> app.testModule.lateConstrScalarPollInput; + app.testModule.feedingPush >> app.testModule.lateConstrScalarPushInput; + + // create the arrays + app.testModule.lateConstrArrayPollInput.replace( ctk::ArrayPollInput<T>(&app.testModule, "LateName4", "", 10, "") ); + app.testModule.lateConstrArrayPushInput.replace( ctk::ArrayPushInput<T>(&app.testModule, "LateName5", "", 10, "") ); + app.testModule.lateConstrArrayOutput.replace( ctk::ArrayOutput<T>(&app.testModule, "LateName6", "", 10, "") ); + + // connect the arrays + app.testModule.lateConstrArrayOutput >> app.testModule.lateConstrArrayPollInput; + app.testModule.feedingArray >> app.testModule.lateConstrArrayPushInput; + + // run the app + app.initialise(); + app.run(); + + // test the scalars + app.testModule.feedingPush = 42; + app.testModule.feedingPush.write(); + app.testModule.lateConstrScalarPushInput.read(); + BOOST_CHECK(app.testModule.lateConstrScalarPushInput == 42); + + app.testModule.feedingPush = 43; + app.testModule.feedingPush.write(); + app.testModule.lateConstrScalarPushInput.read(); + BOOST_CHECK(app.testModule.lateConstrScalarPushInput == 43); + + app.testModule.lateConstrScalarOutput = 120; + app.testModule.lateConstrScalarOutput.write(); + app.testModule.lateConstrScalarPollInput.read(); + BOOST_CHECK(app.testModule.lateConstrScalarPollInput == 120); + app.testModule.lateConstrScalarPollInput.read(); + BOOST_CHECK(app.testModule.lateConstrScalarPollInput == 120); + + // test the arrays + app.testModule.feedingArray = {1,2,3,4,5,6,7,8,9,10}; + app.testModule.feedingArray.write(); + app.testModule.lateConstrArrayPushInput.read(); + for(T i=0; i<10; ++i) BOOST_CHECK(app.testModule.lateConstrArrayPushInput[i] == i+1); + + app.testModule.feedingArray = {10,20,30,40,50,60,70,80,90,100}; + app.testModule.feedingArray.write(); + app.testModule.lateConstrArrayPushInput.read(); + for(T i=0; i<10; ++i) BOOST_CHECK(app.testModule.lateConstrArrayPushInput[i] == (i+1)*10); + + app.testModule.lateConstrArrayOutput = {0,1,2,3,4,5,6,7,8,9}; + app.testModule.lateConstrArrayOutput.write(); + app.testModule.lateConstrArrayPollInput.read(); + for(T i=0; i<10; ++i) BOOST_CHECK(app.testModule.lateConstrArrayPollInput[i] == i); + app.testModule.lateConstrArrayPollInput.read(); + for(T i=0; i<10; ++i) BOOST_CHECK(app.testModule.lateConstrArrayPollInput[i] == i); + +} -- GitLab