diff UnitTestsSources/MultiThreadingTests.cpp @ 1009:26642cecd36d lua-scripting

clearer job interface
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 09 Jul 2014 16:11:44 +0200
parents 84b6d7bca6db
children 6e7e5ed91c2d
line wrap: on
line diff
--- a/UnitTestsSources/MultiThreadingTests.cpp	Tue Jul 08 18:14:24 2014 +0200
+++ b/UnitTestsSources/MultiThreadingTests.cpp	Wed Jul 09 16:11:44 2014 +0200
@@ -303,15 +303,10 @@
       outputs.push_back(boost::lexical_cast<std::string>(b));
     }
 
-    Toolbox::USleep(1000000);
+    Toolbox::USleep(100000);
 
     return true;
   }
-
-  virtual bool SendOutputsToSink() const
-  {
-    return true;
-  }
 };
 
 
@@ -319,31 +314,18 @@
 {
   typedef IServerCommand::ListOfStrings  ListOfStrings;
 
-#if 1
   while (!(*done))
   {
     ListOfStrings l;
     s->GetListOfJobs(l);
     for (ListOfStrings::iterator i = l.begin(); i != l.end(); i++)
       printf(">> %s: %0.1f\n", i->c_str(), 100.0f * s->GetProgress(*i));
-    Toolbox::USleep(100000);
+    Toolbox::USleep(10000);
   }
-#else
-  ListOfStrings l;
-  s->GetListOfJobs(l);
-  for (ListOfStrings::iterator i = l.begin(); i != l.end(); i++)
-    printf(">> %s\n", i->c_str());
-  Toolbox::USleep(1500000);
-  s->Cancel(*j);
-  Toolbox::USleep(1000000);
-  s->GetListOfJobs(l);
-  for (ListOfStrings::iterator i = l.begin(); i != l.end(); i++)
-    printf(">> %s\n", i->c_str());
-#endif
 }
 
 
-TEST(MultiThreading, DISABLED_ServerScheduler)
+TEST(MultiThreading, ServerScheduler)
 {
   ServerScheduler scheduler(10);
 
@@ -355,9 +337,12 @@
   f2.AddInput(boost::lexical_cast<std::string>(42));
   //f3.AddInput(boost::lexical_cast<std::string>(42));
   //f4.AddInput(boost::lexical_cast<std::string>(42));
-  f2.ConnectNext(f3);
-  f3.ConnectNext(f4);
-  f4.ConnectNext(f5);
+  f2.ConnectOutput(f3);
+  f3.ConnectOutput(f4);
+  f4.ConnectOutput(f5);
+
+  f3.SetConnectedToSink(true);
+  f5.SetConnectedToSink(true);
 
   job.SetDescription("tutu");
 
@@ -370,6 +355,10 @@
   IServerCommand::ListOfStrings l;
   scheduler.SubmitAndWait(l, job);
 
+  ASSERT_EQ(2, l.size());
+  ASSERT_EQ(42 * 2 * 3, boost::lexical_cast<int>(l.front()));
+  ASSERT_EQ(42 * 2 * 3 * 4 * 5, boost::lexical_cast<int>(l.back()));
+
   for (IServerCommand::ListOfStrings::iterator i = l.begin(); i != l.end(); i++)
   {
     printf("** %s\n", i->c_str());