From 71e27363acfb428a6f17962eba5942d511d64127 Mon Sep 17 00:00:00 2001
From: Martin Hierholzer <martin.hierholzer@desy.de>
Date: Tue, 21 Feb 2017 15:32:44 +0100
Subject: [PATCH] extended the readAny test

---
 tests/executables_src/testTestFacilities.cc | 81 ++++++++++++++++++++-
 1 file changed, 80 insertions(+), 1 deletion(-)

diff --git a/tests/executables_src/testTestFacilities.cc b/tests/executables_src/testTestFacilities.cc
index 5c19b645..a1234cad 100644
--- a/tests/executables_src/testTestFacilities.cc
+++ b/tests/executables_src/testTestFacilities.cc
@@ -372,6 +372,85 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( testReadAny, T, test_types ) {
   BOOST_CHECK(app.noLoopTestModule.someInput == 66);
   BOOST_CHECK(app.noLoopTestModule.someUIntInput == 4);
   
+  // send something to v1
+  app.noLoopTestModule.outputs.v1 = 33;
+  app.noLoopTestModule.outputs.v1.write();
+
+  // check that we still don't receive anything yet
+  usleep(10000);
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == false);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == false);
+  
+  // run the application and check that we got the expected result
+  app.stepApplication();
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someInput == 33);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput == 1);
+  
+  // send something to v1 again
+  app.noLoopTestModule.outputs.v1 = 34;
+  app.noLoopTestModule.outputs.v1.write();
+
+  // check that we still don't receive anything yet
+  usleep(10000);
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == false);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == false);
+  
+  // run the application and check that we got the expected result
+  app.stepApplication();
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someInput == 34);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput == 1);
+  
+  // send something to v3
+  app.noLoopTestModule.outputs.v3 = 40;
+  app.noLoopTestModule.outputs.v3.write();
+
+  // check that we still don't receive anything yet
+  usleep(10000);
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == false);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == false);
+  
+  // run the application and check that we got the expected result
+  app.stepApplication();
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someInput == 40);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput == 3);
+  
+  // send something to v2
+  app.noLoopTestModule.outputs.v2 = 50;
+  app.noLoopTestModule.outputs.v2.write();
+
+  // check that we still don't receive anything yet
+  usleep(10000);
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == false);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == false);
+  
+  // run the application and check that we got the expected result
+  app.stepApplication();
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someInput == 50);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput == 2);
+  
+  // send something to v1 a 3rd time
+  app.noLoopTestModule.outputs.v1 = 35;
+  app.noLoopTestModule.outputs.v1.write();
+
+  // check that we still don't receive anything yet
+  usleep(10000);
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == false);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == false);
+  
+  // run the application and check that we got the expected result
+  app.stepApplication();
+  BOOST_CHECK(app.noLoopTestModule.someInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput.readNonBlocking() == true);
+  BOOST_CHECK(app.noLoopTestModule.someInput == 35);
+  BOOST_CHECK(app.noLoopTestModule.someUIntInput == 1);
+  
 }
 
-// TODO: testReadAny   and   test with multiple application threads!
-- 
GitLab