config: use senf::config::copy_n instead of SENF_copy_n macro
[senf.git] / senf / PPI / Queueing.test.cc
index 5f18e15..839d150 100644 (file)
 #include "Module.hh"
 #include "Connectors.hh"
 #include "DebugModules.hh"
-#include "../Packets/Packets.hh"
+#include <senf/Packets/Packets.hh>
 #include "Setup.hh"
 
-#include "../Utils/auto_unit_test.hh"
+#include <senf/Utils/auto_unit_test.hh>
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
@@ -69,7 +69,7 @@ namespace {
     };
 }
 
-BOOST_AUTO_UNIT_TEST(thresholdQueueing)
+SENF_AUTO_UNIT_TEST(PPI_Queueing)
 {
     debug::ActiveSource source;
     QueueTester tester;
@@ -80,18 +80,36 @@ BOOST_AUTO_UNIT_TEST(thresholdQueueing)
     ppi::init();
 
     senf::Packet p (senf::DataPacket::create());
-    BOOST_CHECK( source );
-    source.submit(p);
-    BOOST_CHECK( source );
-    source.submit(p);
-    BOOST_CHECK( ! source );
-    BOOST_CHECK_EQUAL( tester.input.queueSize(), 2u );
-    tester.forward();
-    BOOST_CHECK_EQUAL( tester.input.queueSize(), 1u );
-    BOOST_CHECK( source );
-    tester.forward();
-    BOOST_CHECK_EQUAL( tester.input.queueSize(), 0u );
-    BOOST_CHECK( source );
+    {
+        BOOST_CHECK( source );
+        source.submit(p);
+        BOOST_CHECK( source );
+        source.submit(p);
+        BOOST_CHECK( ! source );
+        BOOST_CHECK_EQUAL( tester.input.queueSize(), 2u );
+        tester.forward();
+        BOOST_CHECK_EQUAL( tester.input.queueSize(), 1u );
+        BOOST_CHECK( source );
+        tester.forward();
+        BOOST_CHECK_EQUAL( tester.input.queueSize(), 0u );
+        BOOST_CHECK( source );
+        BOOST_CHECK_EQUAL( sink.size(), 2u);
+        sink.clear();
+    }
+    {
+        tester.input.qdisc(ppi::QueueingDiscipline::NONE);
+        BOOST_CHECK( source );
+        source.submit(p);
+        BOOST_CHECK( source );
+        source.submit(p);
+        BOOST_CHECK( source );
+        BOOST_CHECK_EQUAL( tester.input.queueSize(), 2u );
+        tester.forward();
+        tester.forward();
+        BOOST_CHECK( source );
+        BOOST_CHECK_EQUAL( tester.input.queueSize(), 0u );
+        BOOST_CHECK_EQUAL( sink.size(), 2u);
+    }
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////