|
From: <ba...@us...> - 2009-01-16 22:58:44
|
Revision: 171
http://scstudio.svn.sourceforge.net/scstudio/?rev=171&view=rev
Author: babicaj
Date: 2009-01-16 22:29:45 +0000 (Fri, 16 Jan 2009)
Log Message:
-----------
SRChannelMapper bug fixed
Modified Paths:
--------------
trunk/src/data/checker.h
trunk/tests/fifo_checker_test.cpp
Modified: trunk/src/data/checker.h
===================================================================
--- trunk/src/data/checker.h 2009-01-16 21:39:08 UTC (rev 170)
+++ trunk/src/data/checker.h 2009-01-16 22:29:45 UTC (rev 171)
@@ -305,7 +305,7 @@
if((e1->is_send() && e2->is_send()) || (e1->is_receive() && e2->is_receive()))
{
return e1->get_sender_label()==e2->get_sender_label() &&
- e2->get_receiver_label()==e2->get_receiver_label();
+ e1->get_receiver_label()==e2->get_receiver_label();
}
return false;
}
Modified: trunk/tests/fifo_checker_test.cpp
===================================================================
--- trunk/tests/fifo_checker_test.cpp 2009-01-16 21:39:08 UTC (rev 170)
+++ trunk/tests/fifo_checker_test.cpp 2009-01-16 22:29:45 UTC (rev 171)
@@ -38,6 +38,7 @@
bool BMscO(); //BMscK
bool BMscP(); //BMscL
bool BMscR(); //BMscM
+bool BMscQ();
#define RETURN_IF_FAILED(res) if(!(res)) return 1;
@@ -62,6 +63,7 @@
RETURN_IF_FAILED(BMscO());
RETURN_IF_FAILED(BMscP());
RETURN_IF_FAILED(BMscR());
+ RETURN_IF_FAILED(BMscQ());
return 0;
}
@@ -740,4 +742,73 @@
return check(myBmsc,false,false);
}
+bool BMscQ() {
+ std::cout << "Checking:" << std::endl;
+ std::cout << " | | | |" << std::endl;
+ std::cout << " o-----a---->o | |" << std::endl;
+ std::cout << " | | | |" << std::endl;
+ std::cout << " | o----b----->o |" << std::endl;
+ std::cout << " | | | |" << std::endl;
+ std::cout << " | o<--b ack---o |" << std::endl;
+ std::cout << " | | | |" << std::endl;
+ std::cout << " |<--a ack---o | |" << std::endl;
+ std::cout << " | | | |" << std::endl;
+ std::cout << " | o----c----------------->o" << std::endl;
+ std::cout << " | | | |" << std::endl;
+ std::cout << " | o<-----------------d----o" << std::endl;
+ std::cout << " | | | |" << std::endl;
+
+ BMscPtr myBmsc(new BMsc);
+
+ InstancePtr i1(new Instance("p1"));
+ myBmsc->add_instance(i1);
+ InstancePtr i2(new Instance("p2"));
+ myBmsc->add_instance(i2);
+ InstancePtr i3(new Instance("p3"));
+ myBmsc->add_instance(i3);
+ InstancePtr i4(new Instance("p4"));
+ myBmsc->add_instance(i4);
+
+ EventAreaPtr a1(new StrictOrderArea());
+ i1->add_area(a1);
+ EventAreaPtr a2(new StrictOrderArea());
+ i2->add_area(a2);
+ EventAreaPtr a3(new StrictOrderArea());
+ i3->add_area(a3);
+ EventAreaPtr a4(new StrictOrderArea());
+ i4->add_area(a4);
+
+ EventPtr e1 = a1->add_event();
+ EventPtr e2 = a2->add_event();
+ CompleteMessagePtr m1 = new CompleteMessage("a");
+ m1->glue_events(e1,e2);
+
+ e1 = a2->add_event();
+ e2 = a3->add_event();
+ m1 = new CompleteMessage("b");
+ m1->glue_events(e1,e2);
+
+ e1 = a3->add_event();
+ e2 = a2->add_event();
+ m1 = new CompleteMessage("b ack");
+ m1->glue_events(e1,e2);
+
+ e1 = a2->add_event();
+ e2 = a1->add_event();
+ m1 = new CompleteMessage("a ack");
+ m1->glue_events(e1,e2);
+
+ e1 = a2->add_event();
+ e2 = a4->add_event();
+ m1 = new CompleteMessage("c");
+ m1->glue_events(e1,e2);
+
+ e1 = a4->add_event();
+ e2 = a2->add_event();
+ m1 = new CompleteMessage("d");
+ m1->glue_events(e1,e2);
+
+ return check(myBmsc,true,true);
+}
+
// $Id$
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|