|
From: <ma...@us...> - 2009-10-15 14:14:44
|
Revision: 426
http://scstudio.svn.sourceforge.net/scstudio/?rev=426&view=rev
Author: madzin
Date: 2009-10-15 14:14:36 +0000 (Thu, 15 Oct 2009)
Log Message:
-----------
Fix time07, time08
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
Added Paths:
-----------
trunk/tests/z120_test/z120_time07.mpr.result
trunk/tests/z120_test/z120_time08.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-10-13 17:12:25 UTC (rev 425)
+++ trunk/src/data/Z120/Context.cpp 2009-10-15 14:14:36 UTC (rev 426)
@@ -1227,6 +1227,13 @@
context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node\n");
return ;
}
+
+ if(context->time_first == context->time_second && context->time_first != unknown && node2 == node)
+ {
+ context->z->print_report(RS_ERROR, L"Warning 30: Time interval was defined to one point");
+ return ;
+ }
+
/* check for z120_time08.mpr */
//if(node2 == node) { std::cout << "connection points " << (context->time_first==bottom) << " " << (context->time_second==bottom) << std::endl;}
/* */
Added: trunk/tests/z120_test/z120_time07.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time07.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time07.mpr.result 2009-10-15 14:14:36 UTC (rev 426)
@@ -0,0 +1,36 @@
+Warning 30: Time interval was defined to one point
+OK: z120_time07 is correct, should be correct
+
+mscdocument z120_time07;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2);
+ top bottom L1 (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time08.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time08.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time08.mpr.result 2009-10-15 14:14:36 UTC (rev 426)
@@ -0,0 +1,35 @@
+OK: z120_time08 is correct, should be correct
+
+mscdocument z120_time08;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3];
+ top bottom L1 (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-10-17 12:56:57
|
Revision: 432
http://scstudio.svn.sourceforge.net/scstudio/?rev=432&view=rev
Author: gotthardp
Date: 2009-10-17 12:56:40 +0000 (Sat, 17 Oct 2009)
Log Message:
-----------
Added coverage tests and fixed test execution date.
Modified Paths:
--------------
trunk/CMakeLists.txt
trunk/CTestConfig.cmake
Modified: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt 2009-10-16 20:20:17 UTC (rev 431)
+++ trunk/CMakeLists.txt 2009-10-17 12:56:40 UTC (rev 432)
@@ -12,8 +12,14 @@
SET(MEMORYCHECK_COMMAND_OPTIONS "--quiet --trace-children=yes --leak-check=full")
SET(MEMORYCHECK_SUPPRESSIONS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/valgrind-python.supp"
CACHE FILEPATH "File that contains suppressions for the memory checker")
-INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake)
+INCLUDE(Dart)
+OPTION(ENABLE_COVERAGE "Enable coverage testing (debug only)" OFF)
+IF(ENABLE_COVERAGE)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
+ENDIF()
+
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/share/scripts)
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR})
Modified: trunk/CTestConfig.cmake
===================================================================
--- trunk/CTestConfig.cmake 2009-10-16 20:20:17 UTC (rev 431)
+++ trunk/CTestConfig.cmake 2009-10-17 12:56:40 UTC (rev 432)
@@ -1,5 +1,6 @@
SET(CTEST_PROJECT_NAME "scstudio")
-SET(CTEST_NIGHTLY_START_TIME "02:00:00 CET")
+# note: nightly tests are expected to start after this date
+SET(CTEST_NIGHTLY_START_TIME "01:00:00 GMT")
IF(NOT DEFINED CTEST_DROP_METHOD)
SET(CTEST_DROP_METHOD "http")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-10-17 14:59:49
|
Revision: 433
http://scstudio.svn.sourceforge.net/scstudio/?rev=433&view=rev
Author: gotthardp
Date: 2009-10-17 14:59:43 +0000 (Sat, 17 Oct 2009)
Log Message:
-----------
CoregionEventPSet is now stored in std::vector to fix false errors in Z.120 tests.
Use is_supported() in checker_test to increase test coverage.
Modified Paths:
--------------
trunk/src/check/pseudocode/utils.cpp
trunk/src/check/pseudocode/visual_closure_initiator.cpp
trunk/src/data/Z120/z120_save.cpp
trunk/src/data/dfs_area_traverser.cpp
trunk/src/data/dfs_events_traverser.cpp
trunk/src/data/msc.h
trunk/src/view/visio/addon/visualize.cpp
trunk/tests/checker_test.cpp
Modified: trunk/src/check/pseudocode/utils.cpp
===================================================================
--- trunk/src/check/pseudocode/utils.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/check/pseudocode/utils.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -39,8 +39,8 @@
get_first_area_events(coregion->get_next().get(),e);
else
{
- const CoregionEventPSet& minimals = coregion->get_minimal_events();
- CoregionEventPSet::const_iterator min;
+ const CoregionEventPVector& minimals = coregion->get_minimal_events();
+ CoregionEventPVector::const_iterator min;
for(min=minimals.begin(); min!=minimals.end(); min++)
m_succs.insert(*min);
}
Modified: trunk/src/check/pseudocode/visual_closure_initiator.cpp
===================================================================
--- trunk/src/check/pseudocode/visual_closure_initiator.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/check/pseudocode/visual_closure_initiator.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -48,8 +48,8 @@
else
{
CoregionArea* coregion_area = dynamic_cast<CoregionArea*>(pred_area);
- CoregionEventPSet::const_iterator max;
- const CoregionEventPSet& max_events = coregion_area->get_maximal_events();
+ CoregionEventPVector::const_iterator max;
+ const CoregionEventPVector& max_events = coregion_area->get_maximal_events();
for(max=max_events.begin();max!=max_events.end();max++)
{
make_closure(closure_matrix,succ_index,get_topology_index(*max));
Modified: trunk/src/data/Z120/z120_save.cpp
===================================================================
--- trunk/src/data/Z120/z120_save.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/Z120/z120_save.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -401,7 +401,7 @@
// events to be processed; this is to avoid recursion
std::list<CoregionEventPtr> event_stack;
- for(CoregionEventPSet::const_iterator mpos = coregion_area->get_minimal_events().begin();
+ for(CoregionEventPVector::const_iterator mpos = coregion_area->get_minimal_events().begin();
mpos != coregion_area->get_minimal_events().end(); mpos++)
{
// initialize the stack with events with no predecessors
Modified: trunk/src/data/dfs_area_traverser.cpp
===================================================================
--- trunk/src/data/dfs_area_traverser.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/dfs_area_traverser.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -36,8 +36,8 @@
else
{
CoregionArea* coregion = dynamic_cast<CoregionArea*>(area);
- const CoregionEventPSet& minimals = coregion->get_minimal_events();
- CoregionEventPSet::const_iterator min;
+ const CoregionEventPVector& minimals = coregion->get_minimal_events();
+ CoregionEventPVector::const_iterator min;
for(min=minimals.begin(); min!=minimals.end(); min++)
traverse_coregion_event(*min);
}
Modified: trunk/src/data/dfs_events_traverser.cpp
===================================================================
--- trunk/src/data/dfs_events_traverser.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/dfs_events_traverser.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -59,8 +59,8 @@
traverse_area(coregion->get_next().get());
else
{
- const CoregionEventPSet& minimals = coregion->get_minimal_events();
- CoregionEventPSet::const_iterator min;
+ const CoregionEventPVector& minimals = coregion->get_minimal_events();
+ CoregionEventPVector::const_iterator min;
for(min=minimals.begin(); min!=minimals.end(); min++)
traverse_coregion_event(*min);
}
Modified: trunk/src/data/msc.h
===================================================================
--- trunk/src/data/msc.h 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/msc.h 2009-10-17 14:59:43 UTC (rev 433)
@@ -108,7 +108,7 @@
typedef boost::intrusive_ptr<CoregionEvent> CoregionEventPtr;
typedef std::list<CoregionEventPtr> CoregionEventPtrList;
typedef std::set<CoregionEventPtr> CoregionEventPtrSet;
-typedef std::set<CoregionEvent*> CoregionEventPSet;
+typedef std::vector<CoregionEvent*> CoregionEventPVector;
typedef std::list<CoregionEvent*> CoregionEventPList;
typedef std::queue<CoregionEvent*> CoregionEventPQueue;
@@ -2234,15 +2234,12 @@
*/
InstanceAxisForm m_form;
- /**
- * Events which aren't successors of any other events.
- */
- CoregionEventPSet m_minimal_events;
+ //! Events which aren't successors of any other events.
+ // note: vector is used to reduce overhead and preserve the insertion order
+ CoregionEventPVector m_minimal_events;
- /**
- * Events which aren't successors of any other events.
- */
- CoregionEventPSet m_maximal_events;
+ //! Events which aren't successors of any other events.
+ CoregionEventPVector m_maximal_events;
/**
* Contains all events of this area
@@ -2270,7 +2267,7 @@
/**
* Getter for m_minimal_events.
*/
- const CoregionEventPSet& get_minimal_events() const
+ const CoregionEventPVector& get_minimal_events() const
{
return m_minimal_events;
}
@@ -2278,7 +2275,7 @@
/**
* Getter for m_maximal_events.
*/
- const CoregionEventPSet& get_maximal_events() const
+ const CoregionEventPVector& get_maximal_events() const
{
return m_maximal_events;
}
@@ -2290,7 +2287,7 @@
*/
void add_minimal_event(CoregionEvent* e)
{
- m_minimal_events.insert(e);
+ m_minimal_events.push_back(e);
}
/**
@@ -2298,7 +2295,8 @@
*/
void remove_minimal_event(CoregionEvent* e)
{
- m_minimal_events.erase(e);
+ std::remove_if(m_minimal_events.begin(), m_minimal_events.end(),
+ std::bind2nd(std::equal_to<CoregionEvent*>(), e));
}
/**
@@ -2308,7 +2306,7 @@
*/
void add_maximal_event(CoregionEvent* e)
{
- m_maximal_events.insert(e);
+ m_maximal_events.push_back(e);
}
/**
@@ -2316,7 +2314,8 @@
*/
void remove_maximal_event(CoregionEvent* e)
{
- m_maximal_events.erase(e);
+ std::remove_if(m_maximal_events.begin(), m_maximal_events.end(),
+ std::bind2nd(std::equal_to<CoregionEvent*>(), e));
}
bool is_empty()
Modified: trunk/src/view/visio/addon/visualize.cpp
===================================================================
--- trunk/src/view/visio/addon/visualize.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/view/visio/addon/visualize.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -411,7 +411,7 @@
// events to be processed; this is to avoid recursion
std::list<CoregionEventPtr> event_stack;
- for(CoregionEventPSet::const_iterator mpos = coregion_area->get_minimal_events().begin();
+ for(CoregionEventPVector::const_iterator mpos = coregion_area->get_minimal_events().begin();
mpos != coregion_area->get_minimal_events().end(); mpos++)
{
// initialize the stack with events with no predecessors
Modified: trunk/tests/checker_test.cpp
===================================================================
--- trunk/tests/checker_test.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/tests/checker_test.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -58,14 +58,16 @@
BMscPtr bmsc = boost::dynamic_pointer_cast<BMsc>(msc);
BMscCheckerPtr bmsc_checker = boost::dynamic_pointer_cast<BMscChecker>(checker);
- if(bmsc_checker != NULL && bmsc != NULL)
+ if(bmsc_checker != NULL && bmsc != NULL
+ && checker->is_supported(srm))
{
return bmsc_checker->check(bmsc, srm);
}
HMscPtr hmsc = boost::dynamic_pointer_cast<HMsc>(msc);
HMscCheckerPtr hmsc_checker = boost::dynamic_pointer_cast<HMscChecker>(checker);
- if(hmsc_checker != NULL && hmsc != NULL)
+ if(hmsc_checker != NULL && hmsc != NULL
+ && checker->is_supported(srm))
{
return hmsc_checker->check(hmsc, srm);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-10-27 00:44:51
|
Revision: 444
http://scstudio.svn.sourceforge.net/scstudio/?rev=444&view=rev
Author: madzin
Date: 2009-10-27 00:44:29 +0000 (Tue, 27 Oct 2009)
Log Message:
-----------
New parser error messages
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/src/data/Z120/Context_Impl.h
trunk/src/data/Z120/Z120.g
trunk/src/data/msc_types.h
trunk/tests/z120_test/CMakeLists.txt
trunk/tests/z120_test/z120_test01.mpr.result
trunk/tests/z120_test/z120_test02.mpr.result
trunk/tests/z120_test/z120_test04.mpr.result
trunk/tests/z120_test/z120_test09.mpr.result
trunk/tests/z120_test/z120_test18.mpr.result
trunk/tests/z120_test/z120_test21.mpr.result
trunk/tests/z120_test/z120_test24.mpr.result
trunk/tests/z120_test/z120_test25.mpr.result
trunk/tests/z120_test/z120_test27.mpr.result
trunk/tests/z120_test/z120_test28.mpr.result
trunk/tests/z120_test/z120_test29.mpr.result
trunk/tests/z120_test/z120_test30.mpr.result
trunk/tests/z120_test/z120_test31.mpr.result
trunk/tests/z120_test/z120_test32.mpr.result
trunk/tests/z120_test/z120_test33.mpr.result
trunk/tests/z120_test/z120_test34.mpr.result
trunk/tests/z120_test/z120_test35.mpr.result
trunk/tests/z120_test/z120_test37.mpr.result
trunk/tests/z120_test/z120_test38.mpr.result
trunk/tests/z120_test/z120_test39.mpr.result
trunk/tests/z120_test/z120_test40.mpr.result
trunk/tests/z120_test/z120_test41.mpr.result
trunk/tests/z120_test/z120_test45.mpr.result
trunk/tests/z120_test/z120_test49.mpr.result
trunk/tests/z120_test/z120_test50.mpr
trunk/tests/z120_test/z120_test50.mpr.result
trunk/tests/z120_test/z120_test51.mpr.result
trunk/tests/z120_test/z120_test54.mpr.result
trunk/tests/z120_test/z120_test55.mpr.result
trunk/tests/z120_test/z120_test58.mpr.result
trunk/tests/z120_test/z120_test59.mpr.result
trunk/tests/z120_test/z120_test61.mpr.result
trunk/tests/z120_test/z120_test62.mpr.result
trunk/tests/z120_test/z120_test63.mpr.result
trunk/tests/z120_test/z120_test64.mpr.result
trunk/tests/z120_test/z120_test65.mpr.result
trunk/tests/z120_test/z120_time11.mpr.result
trunk/tests/z120_test/z120_time12.mpr.result
Added Paths:
-----------
trunk/tests/z120_test/z120_test66.mpr
trunk/tests/z120_test/z120_test67.mpr
trunk/tests/z120_test/z120_test67.mpr.result
trunk/tests/z120_test/z120_test68.mpr
trunk/tests/z120_test/z120_test68.mpr.result
trunk/tests/z120_test/z120_test69.mpr
trunk/tests/z120_test/z120_test69.mpr.result
trunk/tests/z120_test/z120_test70.mpr
trunk/tests/z120_test/z120_test71.mpr
trunk/tests/z120_test/z120_test71.mpr.result
trunk/tests/z120_test/z120_test72.mpr
trunk/tests/z120_test/z120_test72.mpr.result
trunk/tests/z120_test/z120_test73.mpr
trunk/tests/z120_test/z120_test73.mpr.result
trunk/tests/z120_test/z120_test74.mpr
trunk/tests/z120_test/z120_test74.mpr.result
trunk/tests/z120_test/z120_test75.mpr
trunk/tests/z120_test/z120_test75.mpr.result
trunk/tests/z120_test/z120_test76.mpr
trunk/tests/z120_test/z120_test76.mpr.result
trunk/tests/z120_test/z120_test77.mpr
trunk/tests/z120_test/z120_test78.mpr
trunk/tests/z120_test/z120_test79.mpr
trunk/tests/z120_test/z120_test80.mpr
trunk/tests/z120_test/z120_test81.mpr
trunk/tests/z120_test/z120_test82.mpr
trunk/tests/z120_test/z120_test83.mpr
trunk/tests/z120_test/z120_test83.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/src/data/Z120/Context.cpp 2009-10-27 00:44:29 UTC (rev 444)
@@ -22,7 +22,7 @@
*/
/*
- * Maximal number of warning/error message is 29
+ * Maximal number of warning/error message is 30
*/
#ifndef __ParserStruct__
@@ -73,6 +73,9 @@
context->instance_parameter_decl = false;
context->message_parameter_decl = false;
context->timer_parameter_decl = false;
+ context->error_inst_names.clear();
+ context->error_nodes_names.clear();
+ context->error_event_names.clear();
context->start_node = NULL;
context->end_node = std::make_pair("", context->end_node.second); //replaice context->end_node.second with NULL
@@ -110,36 +113,23 @@
{
if(context->nonpointed.size() > 1)
{
- context->z->print_report(RS_WARNING, L"Warning 02: There are more unreferenced MSC\n");
+ std::string names = "";
+ for(std::set<std::string>::iterator it = context->nonpointed.begin(); it != context->nonpointed.end(); it++)
+ {
+ if(it != context->nonpointed.begin())
+ {
+ names += ", ";
+ }
+ names += *it;
+ }
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 02: There are more unreferenced MSC: " << TOWSTRING(names));
}
if(context->nonpointed.size() < 1 && context->mscs.size() > 0)
{
- context->z->print_report(RS_ERROR, L"Error 03: There is no MSC without reference\n");
+ context->z->print_report(RS_ERROR, L"Error 03: There is infinite recursion among MSCs");
}
- if(context->open_instance > 0)
- {
- if(context->open_instance == 1)
- {
- context->z->print_report(RS_WARNING, stringize() << "Warning 20: Msc has not finished " << context->open_instance << " instance\n");
- }
- else
- {
- context->z->print_report(RS_WARNING, stringize() << "Warning 20: Msc has not finished " << context->open_instance << " instances\n");
- }
- }
-
- if(context->open_instance < 0)
- {
- context->z->print_report(RS_WARNING, L"Warning 21: Some instance has been finished more times\n");
- }
-
- if(context->future_top_time_relations.size() > 0 || context->future_bottom_time_relations.size() > 0)
- {
- context->z->print_report(RS_WARNING, L"Warning 24: Some time information points to non-existed reference node\n");
- }
-
s_Msc** result = NULL;
if(context->mscs.size() > 0){
@@ -175,7 +165,8 @@
}
result[position] = NULL;
- }
+ }
+
return result;
}
@@ -206,11 +197,28 @@
*/
void check_collections_fun(struct Context* context)
{
- if(!context->coregion_area_opened.empty())
- context->z->print_report(RS_WARNING, stringize() << "Warning 04: Instance " << TOWSTRING(context->element_name) << " does not have finished some coregion\n");
+ if(!context->coregion_area_opened.empty())
+ {
+ std::string names = "";
+ for(std::set<std::string>::iterator it = context->coregion_area_opened.begin(); it != context->coregion_area_opened.end(); it++)
+ {
+ if(it != context->coregion_area_opened.begin())
+ {
+ names += ", ";
+ }
+ names += *it;
+ }
+ context->z->print_report(RS_WARNING, stringize() << "Warning 04: Instances which does not have finished coretion: " << TOWSTRING(names));
+ context->coregion_area_opened.clear();
+ }
if(!context->messages.empty()){
- context->z->print_report(RS_WARNING, L"Warning 05: There is complete message with only one event\n");
+ std::map<std::string, CompleteMessagePtr>::iterator it;
+
+ for(it = context->messages.begin(); it != context->messages.end(); ++it)
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 05: There is complete message (" << TOWSTRING(it->first) << ") with only one event");
+ }
IncompleteMessagePtr message;
std::multimap<std::string, CompleteMessagePtr>::iterator msg_it;
@@ -237,30 +245,45 @@
context->z->print_report(RS_WARNING, L"Warning 07: There is reference to nonexisted event\n");
}
- if(!context->future_connections.empty()){
- context->z->print_report(RS_WARNING, L"Warning 08: There is reference to nonexisted node\n");
+ if(!context->future_connections.empty()){
+ std::map<std::string, std::set<std::string> >::iterator it;
+ std::string names;
+
+ for(it = context->future_connections.begin(); it != context->future_connections.end(); ++it)
+ {
+ if(it != context->future_connections.begin())
+ {
+ names += ", ";
+ }
+
+ names += it->first;
+ }
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 08: MSC (" << TOWSTRING(context->msc_name) << ") has reference to nonexisted node: " << TOWSTRING(names));
+
+
+ context->future_connections.clear();
}
if(context->open_instance > 0)
{
if(context->open_instance == 1)
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 20: Msc (" << TOWSTRING(context->msc_name) << ") has not finished " << context->open_instance << " instance\n");
+ context->z->print_report(RS_WARNING, stringize() << "Warning 20: MSC (" << TOWSTRING(context->msc_name) << ") has not finished " << context->open_instance << " instance");
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 20: Msc " << TOWSTRING(context->msc_name) << " has not finished " << context->open_instance << " instances\n");
+ context->z->print_report(RS_WARNING, stringize() << "Warning 20: MSC " << TOWSTRING(context->msc_name) << " has not finished " << context->open_instance << " instances");
}
}
if(context->open_instance < 0)
{
- context->z->print_report(RS_WARNING, L"Warning 21:TOWSTRING(context->msc_name) Some instance has been finished more times\n");
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 21: Instance in MSC (" << TOWSTRING(context->msc_name) << ") has been finished more times");
}
if(context->future_top_time_relations.size() > 0)
{
- context->z->print_report(RS_WARNING, L"Warning 24: Some time information points to non-existed reference node\n");
+ context->z->print_report(RS_WARNING, L"Warning 24: Time information to non-existed reference node: ");
std::map<std::string, std::set<TimeRelationRefNodePtr> >::iterator it;
std::set<TimeRelationRefNodePtr>::iterator set_it;
@@ -279,7 +302,7 @@
if(context->future_bottom_time_relations.size() > 0)
{
- context->z->print_report(RS_WARNING, L"Warning 24: Some time information points to non-existed reference node\n");
+ context->z->print_report(RS_WARNING, L"Warning 24: Time information to non-existed reference node: ");
std::map<std::string, std::set<TimeRelationRefNodePtr> >::iterator it;
std::set<TimeRelationRefNodePtr>::iterator set_it;
@@ -296,29 +319,43 @@
context->future_bottom_time_relations.clear();
}
+ context->error_inst_names.clear();
+ context->error_nodes_names.clear();
+ context->error_event_names.clear();
+
}
void check_references_fun(struct Context* context)
{
if(!context->future_reference.empty()){
- context->z->print_report(RS_WARNING, L"Warning 09: There is reference to nonexisted MSC\n");
std::map<std::string, std::set<ReferenceNodePtr> >::iterator map_it;
std::set<ReferenceNodePtr>::iterator ref_it;
+ std::string names = "";
for(map_it=context->future_reference.begin(); map_it!=context->future_reference.end(); ++map_it){
BMscPtr bmsc = new BMsc(TOWSTRING(map_it->first));
+ if(map_it != context->future_reference.begin())
+ {
+ names += ", ";
+ }
+ names += map_it->first;
for(ref_it=map_it->second.begin(); ref_it!=map_it->second.end(); ++ref_it){
(*ref_it)->set_msc(bmsc);
}
}
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 09: Reference to nonexisted MSC: " << TOWSTRING(names));
}
}
void msc_was_read_fun(struct Context* context)
{
if(context->mscs.find(context->msc_name) != context->mscs.end()){
- context->z->print_report(RS_WARNING, stringize() << "Warning 18: Two mscs have the same name (" << TOWSTRING(context->msc_name) << ")\n");
+ if(context->error_mscs_names.find(context->msc_name) == context->error_mscs_names.end())
+ {
+ context->z->print_report(RS_WARNING, stringize() << "Warning 18: Two or more MSCs have the same name: " << TOWSTRING(context->msc_name) );
+ context->error_mscs_names.insert(context->msc_name);
+ }
}
context->mscs.insert(std::make_pair(context->msc_name, get_msc_fun(context)));
@@ -412,7 +449,7 @@
context->myBmsc->add_instance(instance);
context->open_instance++;
context->z->print_report(RS_WARNING,
- stringize() << "Warning 23: Instance (" << TOWSTRING(context->element_name) << ") has not been started (e.g. " << TOWSTRING(context->element_name) << ": instance;)\n");
+ stringize() << "Warning 23: Instance (" << TOWSTRING(context->element_name) << ") has not been started (e.g. " << TOWSTRING(context->element_name) << ": instance;)");
}
else
{
@@ -486,8 +523,13 @@
void new_instance_fun(struct Context* context)
{
InstancePtr instance(new Instance(TOWSTRING(context->element_name)));
- if(context->instances.find(context->element_name) != context->instances.end()){
- context->z->print_report(RS_WARNING, stringize() << L"Warning 16: Instance with the same name (" << TOWSTRING(context->element_name) << ") has been created\n");
+ if(context->instances.find(context->element_name) != context->instances.end())
+ {
+ if(context->error_inst_names.find(context->element_name) == context->error_inst_names.end())
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 16: Two or more instances with the same name: " << TOWSTRING(context->element_name));
+ context->error_inst_names.insert(context->element_name);
+ }
}
else{
context->instances.insert(std::make_pair(context->element_name, instance));
@@ -516,7 +558,8 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 10: Instance " << TOWSTRING(context->element_name) << " has already had open some coregion\n");
+ context->z->print_report(RS_WARNING, stringize() << "Warning 10: Instance (" << TOWSTRING(context->element_name) << ") has overlapped coregions");
+
}
}
@@ -534,7 +577,7 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 11: Instance " << TOWSTRING(context->element_name) << " does not have open any coregion\n"); //check
+ context->z->print_report(RS_WARNING, stringize() << "Warning 11: Instance (" << TOWSTRING(context->element_name) << ") does not have open any coregion\n"); //check
}
}
@@ -581,7 +624,7 @@
context->myBmsc->add_instance(instance);
context->open_instance++;
context->z->print_report(RS_WARNING,
- stringize() << "Warning 23: Instance (" << TOWSTRING(context->element_name) << ") has not been started (e.g. " << TOWSTRING(context->element_name) << ": instance;)\n");
+ stringize() << "Warning 23: Instance (" << TOWSTRING(context->element_name) << ") has not been started (e.g. " << TOWSTRING(context->element_name) << ": instance;)");
}
else
{
@@ -720,7 +763,11 @@
}
else{
context->not_create_event = 1;
- context->z->print_report(RS_WARNING, stringize() << L"Warning 17: Event with the same name (" << TOWSTRING(name) << ") has been created\n");
+ if(context->error_inst_names.find(context->element_name) == context->error_inst_names.end())
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 17: Two or more events with the same name: " << TOWSTRING(name));
+ context->error_event_names.insert(name);
+ }
}
}
@@ -732,7 +779,7 @@
void missing_message_label_fun(struct Context* context)
{
context->no_message_label = 1;
- context->z->print_report(RS_WARNING, stringize() << L"Warning 19: There is message without label on the " << TOWSTRING(context->element_name) << " instance\n");
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 19: There is message without label on the instance (" << TOWSTRING(context->element_name) << ")");
}
void end_instance_fun(struct Context* context){
@@ -975,7 +1022,12 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 15: The node " << TOWSTRING(context->element_name) << " has been created\n");
+ if(context->error_nodes_names.find(context->element_name) == context->error_nodes_names.end())
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Two or more nodes with the same name: " << TOWSTRING(context->element_name));
+ context->error_nodes_names.insert(context->element_name);
+ }
+
context->not_connect = 1;
}
}
@@ -997,7 +1049,12 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 15: The node " << TOWSTRING(context->element_name) << " has been created\n");
+ if(context->error_nodes_names.find(context->element_name) == context->error_nodes_names.end())
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Two or more nodes with the same name: " << TOWSTRING(context->element_name));
+ context->error_nodes_names.insert(context->element_name);
+ }
+
context->not_connect = 1;
}
}
@@ -1019,7 +1076,12 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 15: The node " << TOWSTRING(context->element_name) << " has been created\n");
+ if(context->error_nodes_names.find(context->element_name) == context->error_nodes_names.end())
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Two or more nodes with the same name: " << TOWSTRING(context->element_name));
+ context->error_nodes_names.insert(context->element_name);
+ }
+
context->not_connect = 1;
}
}
@@ -1215,7 +1277,7 @@
if(node == NULL)
{
- context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node\n");
+ context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node");
return ;
}
@@ -1224,7 +1286,7 @@
ReferenceNodePtr node2 = boost::dynamic_pointer_cast<ReferenceNode>(ref_it->second);
if(node == NULL)
{
- context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node\n");
+ context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node");
return ;
}
Modified: trunk/src/data/Z120/Context_Impl.h
===================================================================
--- trunk/src/data/Z120/Context_Impl.h 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/src/data/Z120/Context_Impl.h 2009-10-27 00:44:29 UTC (rev 444)
@@ -64,6 +64,14 @@
bool origin;
/*
+ * Error handling
+ */
+ std::set<std::string> error_inst_names; //names of instances which were declared more times (two or more instances with the same name)
+ std::set<std::string> error_mscs_names; //names of mscs which were declared more times
+ std::set<std::string> error_event_names; //names of events which were declared more times
+ std::set<std::string> error_nodes_names; //names of nodes which were declared more times
+
+ /*
* BMsc
*/
BMscPtr myBmsc;
@@ -83,6 +91,7 @@
int no_message_label; //flag for message which does not have label
int open_instance; //counter of open instances
+
//variables for syntactic grammar solutions
bool data_parameter_decl;
bool instance_parameter_decl;
Modified: trunk/src/data/Z120/Z120.g
===================================================================
--- trunk/src/data/Z120/Z120.g 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/src/data/Z120/Z120.g 2009-10-27 00:44:29 UTC (rev 444)
@@ -254,11 +254,13 @@
// ----- Basic MSC
+
+//add nonstrict endmsc "(endmac end)?" for better error message handling
message_sequence_chart:
{
init(context);
}
- (virtuality)? 'msc' msc_head ( ('expr' | (hmsc_statement_without_initial)* initial_node)=> hmsc | msc ) 'endmsc' end
+ (virtuality)? 'msc' msc_head ( ('expr' | (hmsc_statement_without_initial)* initial_node)=> hmsc | msc ) ('endmsc' end)?
{
check_collections_fun(context);
msc_was_read_fun(context);
@@ -1431,7 +1433,7 @@
}
':' 'final' (connection_list
{
- bug_report_fun(context, "Warinig 14: HMSC has defined a successor for end node\n");
+ bug_report_fun(context, "Warinig 14: HMSC has defined a successor for end node");
})? end
{
new_end_node_fun(context);
Modified: trunk/src/data/msc_types.h
===================================================================
--- trunk/src/data/msc_types.h 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/src/data/msc_types.h 2009-10-27 00:44:29 UTC (rev 444)
@@ -22,6 +22,7 @@
#include "data/fcmp.h"
#include "data/export.h"
+#include <algorithm>
#include <list>
#include <map>
#include <string>
Modified: trunk/tests/z120_test/CMakeLists.txt
===================================================================
--- trunk/tests/z120_test/CMakeLists.txt 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/CMakeLists.txt 2009-10-27 00:44:29 UTC (rev 444)
@@ -86,6 +86,24 @@
ADD_Z120_TEST(z120_test63.mpr 1)
ADD_Z120_TEST(z120_test64.mpr 1)
ADD_Z120_TEST(z120_test65.mpr 1)
+ADD_Z120_TEST(z120_test66.mpr 1)
+ADD_Z120_TEST(z120_test67.mpr 1)
+ADD_Z120_TEST(z120_test68.mpr 1)
+ADD_Z120_TEST(z120_test69.mpr 1)
+ADD_Z120_TEST(z120_test70.mpr 1)
+ADD_Z120_TEST(z120_test71.mpr 1)
+ADD_Z120_TEST(z120_test72.mpr 1)
+ADD_Z120_TEST(z120_test73.mpr 1)
+ADD_Z120_TEST(z120_test74.mpr 1)
+ADD_Z120_TEST(z120_test75.mpr 1)
+ADD_Z120_TEST(z120_test76.mpr 1)
+ADD_Z120_TEST(z120_test77.mpr 1)
+ADD_Z120_TEST(z120_test78.mpr 1)
+ADD_Z120_TEST(z120_test79.mpr 1)
+ADD_Z120_TEST(z120_test80.mpr 1)
+ADD_Z120_TEST(z120_test81.mpr 1)
+ADD_Z120_TEST(z120_test82.mpr 1)
+ADD_Z120_TEST(z120_test83.mpr 1)
ADD_Z120_TEST(z120_time01.mpr 1)
ADD_Z120_TEST(z120_time02.mpr 1)
Modified: trunk/tests/z120_test/z120_test01.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test01.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test01.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,7 +1,4 @@
-Warning 20: Msc (z120_test01) has not finished 1 instance
-
-Warning 20: Msc has not finished 1 instance
-
+Warning 20: MSC (z120_test01) has not finished 1 instance
OK: z120_test01 is correct, should be correct
mscdocument z120_test01;
Modified: trunk/tests/z120_test/z120_test02.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test02.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test02.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 09: There is reference to nonexisted MSC
-
+Warning 09: Reference to nonexisted MSC: ACTION1, ACTION2, ACTION3A, ACTION3B
OK: z120_test02 is correct, should be correct
mscdocument z120_test02;
Modified: trunk/tests/z120_test/z120_test04.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test04.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test04.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 09: There is reference to nonexisted MSC
-
+Warning 09: Reference to nonexisted MSC: NAME, NAME1
OK: z120_test04 is correct, should be correct
mscdocument z120_test04;
Modified: trunk/tests/z120_test/z120_test09.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test09.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test09.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 16: Instance with the same name (NAME) has been created
-
+Warning 16: Two or more instances with the same name: NAME
OK: z120_test09 is correct, should be correct
mscdocument z120_test09;
Modified: trunk/tests/z120_test/z120_test18.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test18.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test18.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 02: There are more unreferenced MSC
-
+Warning 02: There are more unreferenced MSC: Strnka1, bmsc3
OK: z120_test18 is correct, should be correct
mscdocument z120_test18;
Modified: trunk/tests/z120_test/z120_test21.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test21.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test21.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 02: There are more unreferenced MSC
-
+Warning 02: There are more unreferenced MSC: Strnka1, bmsc3
OK: z120_test21 is correct, should be correct
mscdocument z120_test21;
Modified: trunk/tests/z120_test/z120_test24.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test24.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test24.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 16: Instance with the same name (NAME) has been created
-
+Warning 16: Two or more instances with the same name: NAME
OK: z120_test24 is correct, should be correct
mscdocument z120_test24;
Modified: trunk/tests/z120_test/z120_test25.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test25.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test25.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,7 +1,5 @@
-Warning 16: Instance with the same name (NAME) has been created
-
-Warning 18: Two mscs have the same name (Stranka_1)
-
+Warning 16: Two or more instances with the same name: NAME
+Warning 18: Two or more MSCs have the same name: Stranka_1
OK: z120_test25 is correct, should be correct
mscdocument z120_test25;
Modified: trunk/tests/z120_test/z120_test27.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test27.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test27.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 16: Instance with the same name (NAME) has been created
-
+Warning 16: Two or more instances with the same name: NAME
OK: z120_test27 is correct, should be correct
mscdocument z120_test27;
Modified: trunk/tests/z120_test/z120_test28.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test28.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test28.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,7 +1,5 @@
-Warning 15: The node L1 has been created
-
-Warning 09: There is reference to nonexisted MSC
-
+Warning 15: Two or more nodes with the same name: L1
+Warning 09: Reference to nonexisted MSC: NAME, NAME1
OK: z120_test28 is correct, should be correct
mscdocument z120_test28;
Modified: trunk/tests/z120_test/z120_test29.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test29.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test29.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,7 +1,5 @@
-Warning 15: The node L1 has been created
-
-Warning 09: There is reference to nonexisted MSC
-
+Warning 15: Two or more nodes with the same name: L1
+Warning 09: Reference to nonexisted MSC: NAME, NAME1
OK: z120_test29 is correct, should be correct
mscdocument z120_test29;
Modified: trunk/tests/z120_test/z120_test30.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test30.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test30.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,7 +1,5 @@
-Warning 15: The node L1 has been created
-
-Warning 09: There is reference to nonexisted MSC
-
+Warning 15: Two or more nodes with the same name: L1
+Warning 09: Reference to nonexisted MSC: NAME, NAME1
OK: z120_test30 is correct, should be correct
mscdocument z120_test30;
Modified: trunk/tests/z120_test/z120_test31.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test31.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test31.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,7 +1,5 @@
-Warning 09: There is reference to nonexisted MSC
-
-Error 03: There is no MSC without reference
-
+Warning 09: Reference to nonexisted MSC: bmsc1
+Error 03: There is infinite recursion among MSCs
OK: z120_test31 is correct, should be correct
mscdocument z120_test31;
Modified: trunk/tests/z120_test/z120_test32.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test32.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test32.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 17: Event with the same name (e1) has been created
-
+Warning 17: Two or more events with the same name: e1
OK: z120_test32 is correct, should be correct
mscdocument z120_test32;
Modified: trunk/tests/z120_test/z120_test33.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test33.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test33.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 17: Event with the same name (e0) has been created
-
+Warning 17: Two or more events with the same name: e0
OK: z120_test33 is correct, should be correct
mscdocument z120_test33;
Modified: trunk/tests/z120_test/z120_test34.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test34.mpr.result 2009-10-26 16:06:25 UTC (rev 443)
+++ trunk/tests/z120_test/z120_test34.mpr.result 2009-10-27 00:44:29 UTC (rev 444)
@@ -1,5 +1,4 @@
-Warning 17: Event with the same name (e1) has been created
-
+Warning 17: Two or more events with the same name: e1
OK: z120_test34 is correct...
[truncated message content] |
|
From: <got...@us...> - 2009-10-27 15:29:48
|
Revision: 447
http://scstudio.svn.sourceforge.net/scstudio/?rev=447&view=rev
Author: gotthardp
Date: 2009-10-27 15:29:36 +0000 (Tue, 27 Oct 2009)
Log Message:
-----------
Minor fixes of Z.120 tests.
Modified Paths:
--------------
trunk/tests/checker_test.cpp
trunk/valgrind-python.supp
Property Changed:
----------------
trunk/tests/z120_test/z120_test66.mpr
trunk/tests/z120_test/z120_test67.mpr
trunk/tests/z120_test/z120_test67.mpr.result
trunk/tests/z120_test/z120_test68.mpr
trunk/tests/z120_test/z120_test68.mpr.result
trunk/tests/z120_test/z120_test69.mpr
trunk/tests/z120_test/z120_test69.mpr.result
trunk/tests/z120_test/z120_test70.mpr
trunk/tests/z120_test/z120_test71.mpr
trunk/tests/z120_test/z120_test71.mpr.result
trunk/tests/z120_test/z120_test72.mpr
trunk/tests/z120_test/z120_test72.mpr.result
trunk/tests/z120_test/z120_test73.mpr
trunk/tests/z120_test/z120_test73.mpr.result
trunk/tests/z120_test/z120_test74.mpr
trunk/tests/z120_test/z120_test74.mpr.result
trunk/tests/z120_test/z120_test75.mpr
trunk/tests/z120_test/z120_test75.mpr.result
trunk/tests/z120_test/z120_test76.mpr
trunk/tests/z120_test/z120_test76.mpr.result
trunk/tests/z120_test/z120_test77.mpr
trunk/tests/z120_test/z120_test78.mpr
trunk/tests/z120_test/z120_test79.mpr
trunk/tests/z120_test/z120_test80.mpr
trunk/tests/z120_test/z120_test81.mpr
trunk/tests/z120_test/z120_test82.mpr
trunk/tests/z120_test/z120_test83.mpr
trunk/tests/z120_test/z120_test83.mpr.result
trunk/tests/z120_test/z120_time07.mpr
trunk/tests/z120_test/z120_time07.mpr.result
trunk/tests/z120_test/z120_time08.mpr
trunk/tests/z120_test/z120_time08.mpr.result
trunk/tests/z120_test/z120_time09.mpr
trunk/tests/z120_test/z120_time09.mpr.result
trunk/tests/z120_test/z120_time10.mpr
trunk/tests/z120_test/z120_time10.mpr.result
trunk/tests/z120_test/z120_time11.mpr
trunk/tests/z120_test/z120_time11.mpr.result
trunk/tests/z120_test/z120_time12.mpr
trunk/tests/z120_test/z120_time12.mpr.result
trunk/tests/z120_test/z120_time13.mpr
trunk/tests/z120_test/z120_time13.mpr.result
trunk/tests/z120_test/z120_time14.mpr
trunk/tests/z120_test/z120_time14.mpr.result
trunk/tests/z120_test/z120_time15.mpr
trunk/tests/z120_test/z120_time15.mpr.result
Modified: trunk/tests/checker_test.cpp
===================================================================
--- trunk/tests/checker_test.cpp 2009-10-27 14:19:32 UTC (rev 446)
+++ trunk/tests/checker_test.cpp 2009-10-27 15:29:36 UTC (rev 447)
@@ -41,10 +41,10 @@
if((*fpos)->get_property_name() == TOWSTRING(property))
{
checker = boost::shared_ptr<Checker>(*fpos);
- break;
+ // note: no break here as we have to delete the remaining pointers
}
-
- delete *fpos;
+ else
+ delete *fpos;
}
delete[] checkers;
Property changes on: trunk/tests/z120_test/z120_test66.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test67.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test67.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test68.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test68.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test69.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test69.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test70.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test71.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test71.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test72.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test72.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test73.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test73.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test74.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test74.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test75.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test75.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test76.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test76.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test77.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test78.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test79.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test80.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test81.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test82.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test83.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test83.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time07.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time07.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time08.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time08.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time09.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time09.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time10.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time10.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time11.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time11.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time12.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time12.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time13.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time13.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time14.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time14.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time15.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time15.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/valgrind-python.supp
===================================================================
--- trunk/valgrind-python.supp 2009-10-27 14:19:32 UTC (rev 446)
+++ trunk/valgrind-python.supp 2009-10-27 15:29:36 UTC (rev 447)
@@ -56,6 +56,13 @@
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
+ fun:malloc
+ fun:_PyObject_GC_NewVar
+}
+
+{
+ Handle PyMalloc confusing valgrind (possibly leaked)
+ Memcheck:Leak
fun:realloc
obj:*libpython*.so.*
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-10-28 19:27:04
|
Revision: 448
http://scstudio.svn.sourceforge.net/scstudio/?rev=448&view=rev
Author: madzin
Date: 2009-10-28 19:26:56 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
New test results and new tests for parser
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/src/data/Z120/Context.h
trunk/src/data/Z120/Context_Impl.h
trunk/src/data/Z120/Z120.g
trunk/tests/z120_test/CMakeLists.txt
trunk/tests/z120_test/z120_test64.mpr
trunk/tests/z120_test/z120_test64.mpr.result
trunk/tests/z120_test/z120_test77.mpr
trunk/tests/z120_test/z120_test79.mpr
trunk/tests/z120_test/z120_test80.mpr
trunk/tests/z120_test/z120_test81.mpr
trunk/tests/z120_test/z120_test82.mpr
trunk/tests/z120_test/z120_test83.mpr.result
trunk/tests/z120_test/z120_time13.mpr.result
trunk/tests/z120_test/z120_time15.mpr.result
Added Paths:
-----------
trunk/tests/z120_test/z120_test66.mpr.result
trunk/tests/z120_test/z120_test70.mpr.result
trunk/tests/z120_test/z120_test77.mpr.result
trunk/tests/z120_test/z120_test78.mpr.result
trunk/tests/z120_test/z120_test79.mpr.result
trunk/tests/z120_test/z120_test80.mpr.result
trunk/tests/z120_test/z120_test81.mpr.result
trunk/tests/z120_test/z120_test82.mpr.result
trunk/tests/z120_test/z120_test84.mpr
trunk/tests/z120_test/z120_test84.mpr.result
trunk/tests/z120_test/z120_time16.mpr
trunk/tests/z120_test/z120_time16.mpr.result
trunk/tests/z120_test/z120_time17.mpr
trunk/tests/z120_test/z120_time17.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/src/data/Z120/Context.cpp 2009-10-28 19:26:56 UTC (rev 448)
@@ -76,6 +76,7 @@
context->error_inst_names.clear();
context->error_nodes_names.clear();
context->error_event_names.clear();
+ context->end_msc = false;
context->start_node = NULL;
context->end_node = std::make_pair("", context->end_node.second); //replaice context->end_node.second with NULL
@@ -281,16 +282,18 @@
context->z->print_report(RS_WARNING, stringize() << L"Warning 21: Instance in MSC (" << TOWSTRING(context->msc_name) << ") has been finished more times");
}
+ std::set<std::string> nodes_names;
+
if(context->future_top_time_relations.size() > 0)
{
- context->z->print_report(RS_WARNING, L"Warning 24: Time information to non-existed reference node: ");
-
std::map<std::string, std::set<TimeRelationRefNodePtr> >::iterator it;
std::set<TimeRelationRefNodePtr>::iterator set_it;
ReferenceNode* ref_node;
for(it = context->future_top_time_relations.begin(); it != context->future_top_time_relations.end(); it++)
{
+ nodes_names.insert(it->first);
+
for(set_it = it->second.begin(); set_it != it->second.end(); set_it++)
{
ref_node = (*set_it)->get_ref_node_a();
@@ -302,14 +305,14 @@
if(context->future_bottom_time_relations.size() > 0)
{
- context->z->print_report(RS_WARNING, L"Warning 24: Time information to non-existed reference node: ");
-
std::map<std::string, std::set<TimeRelationRefNodePtr> >::iterator it;
std::set<TimeRelationRefNodePtr>::iterator set_it;
ReferenceNode* ref_node;
for(it = context->future_bottom_time_relations.begin(); it != context->future_bottom_time_relations.end(); ++it)
{
+ nodes_names.insert(it->first);
+
for(set_it = it->second.begin(); set_it != it->second.end(); set_it++)
{
ref_node = (*set_it)->get_ref_node_a();
@@ -319,6 +322,25 @@
context->future_bottom_time_relations.clear();
}
+ if(!nodes_names.empty())
+ {
+ std::set<std::string>::iterator it;
+ std::string names;
+
+ for(it = nodes_names.begin(); it != nodes_names.end(); it++)
+ {
+ if(it != nodes_names.begin())
+ {
+ names += ", ";
+ }
+
+ names += (*it);
+ }
+
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 24: Time information to non-existed reference node: " << TOWSTRING(names));
+
+ }
+
context->error_inst_names.clear();
context->error_nodes_names.clear();
context->error_event_names.clear();
@@ -350,6 +372,11 @@
void msc_was_read_fun(struct Context* context)
{
+ if(!context->end_msc)
+ {
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 12: MSC (" << TOWSTRING(context->msc_name) << ") is not finished correctly (missing: endmsc;)" );
+ }
+
if(context->mscs.find(context->msc_name) != context->mscs.end()){
if(context->error_mscs_names.find(context->msc_name) == context->error_mscs_names.end())
{
@@ -373,10 +400,12 @@
std::set<ReferenceNodePtr>::iterator references = future_ref_it->second.begin();
for(; references != future_ref_it->second.end(); ++references)
{
- (*references)->set_msc(msc);
+ (*references)->set_msc(msc);
}
context->future_reference.erase(future_ref_it);
+
}
+
}
/*
@@ -396,8 +425,19 @@
context->origin = true;
}
+/*
+ * End of MSC was occurred
+ */
+void set_end_msc_fun(struct Context* context)
+{
+ context->end_msc = true;
+}
/*
+ * FUNCTIONS FOR BMSC
+ */
+
+/*
* Create new BMsc structure
*/
void new_bmsc_fun(struct Context* context)
@@ -763,7 +803,7 @@
}
else{
context->not_create_event = 1;
- if(context->error_inst_names.find(context->element_name) == context->error_inst_names.end())
+ if(context->error_event_names.find(name) == context->error_event_names.end())
{
context->z->print_report(RS_WARNING, stringize() << L"Warning 17: Two or more events with the same name: " << TOWSTRING(name));
context->error_event_names.insert(name);
@@ -1091,6 +1131,7 @@
if(context->not_connect == 1)
{
context->connect_name.clear();
+ context->not_connect = 0;
return ;
}
Modified: trunk/src/data/Z120/Context.h
===================================================================
--- trunk/src/data/Z120/Context.h 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/src/data/Z120/Context.h 2009-10-28 19:26:56 UTC (rev 448)
@@ -62,6 +62,8 @@
void set_origin_fun(struct Context* context);
+void set_end_msc_fun(struct Context* context);
+
//BMsc
void new_bmsc_fun(struct Context* context);
Modified: trunk/src/data/Z120/Context_Impl.h
===================================================================
--- trunk/src/data/Z120/Context_Impl.h 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/src/data/Z120/Context_Impl.h 2009-10-28 19:26:56 UTC (rev 448)
@@ -70,6 +70,8 @@
std::set<std::string> error_mscs_names; //names of mscs which were declared more times
std::set<std::string> error_event_names; //names of events which were declared more times
std::set<std::string> error_nodes_names; //names of nodes which were declared more times
+
+ bool end_msc;
/*
* BMsc
Modified: trunk/src/data/Z120/Z120.g
===================================================================
--- trunk/src/data/Z120/Z120.g 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/src/data/Z120/Z120.g 2009-10-28 19:26:56 UTC (rev 448)
@@ -260,7 +260,8 @@
{
init(context);
}
- (virtuality)? 'msc' msc_head ( ('expr' | (hmsc_statement_without_initial)* initial_node)=> hmsc | msc ) ('endmsc' end)?
+ (virtuality)? 'msc' msc_head ( ('expr' | (hmsc_statement_without_initial)* initial_node)=> hmsc | msc )
+ ('endmsc' end { set_end_msc_fun(context);})?
{
check_collections_fun(context);
msc_was_read_fun(context);
Modified: trunk/tests/z120_test/CMakeLists.txt
===================================================================
--- trunk/tests/z120_test/CMakeLists.txt 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/CMakeLists.txt 2009-10-28 19:26:56 UTC (rev 448)
@@ -104,6 +104,7 @@
ADD_Z120_TEST(z120_test81.mpr 1)
ADD_Z120_TEST(z120_test82.mpr 1)
ADD_Z120_TEST(z120_test83.mpr 1)
+ADD_Z120_TEST(z120_test84.mpr 1)
ADD_Z120_TEST(z120_time01.mpr 1)
ADD_Z120_TEST(z120_time02.mpr 1)
@@ -120,6 +121,9 @@
ADD_Z120_TEST(z120_time13.mpr 1)
ADD_Z120_TEST(z120_time14.mpr 1)
ADD_Z120_TEST(z120_time15.mpr 1)
+ADD_Z120_TEST(z120_time16.mpr 1)
+ADD_Z120_TEST(z120_time17.mpr 1)
+ADD_Z120_TEST(z120_time18.mpr 1)
# $Id$
Modified: trunk/tests/z120_test/z120_test64.mpr
===================================================================
--- trunk/tests/z120_test/z120_test64.mpr 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test64.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,5 +1,8 @@
/*************************************************
Example of bMSC with coregion (used '_' sign)
+
+line 21: fom -> from
+line 25: befre -> before
*************************************************/
mscdocument Vkres1;
Modified: trunk/tests/z120_test/z120_test64.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test64.mpr.result 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test64.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,12 +1,12 @@
-z120_test64.mpr[18,9] Missing 'from'.
-z120_test64.mpr[18,9] Unwanted input: expected ';'.
-z120_test64.mpr[22,23] Missing ';'.
-z120_test64.mpr[22,29] Cannot match to any predicted input.
-z120_test64.mpr[24,6] Cannot match to any predicted input.
-Warning 04: Instance Server does not have finished coregion
-Warning 05: There is complete message with only one event
-Warning 20: Msc (Strnka1) has not finished 1 instance
-
+z120_test64.mpr[21,9] Missing 'from'.
+z120_test64.mpr[21,9] Unwanted input: expected ';'.
+z120_test64.mpr[25,23] Missing ';'.
+z120_test64.mpr[25,29] Cannot match to any predicted input.
+z120_test64.mpr[27,6] Cannot match to any predicted input.
+Warning 04: Instances which does not have finished coretion: Server
+Warning 05: There is complete message (request_b,4) with only one event
+Warning 05: There is complete message (result,5) with only one event
+Warning 20: MSC (Strnka1) has not finished 1 instance
OK: z120_test64 is correct, should be correct
mscdocument z120_test64;
Added: trunk/tests/z120_test/z120_test66.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test66.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test66.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,28 @@
+Warning 12: MSC (Strnka1) is not finished correctly (missing: endmsc;)
+OK: z120_test66 is correct, should be correct
+
+mscdocument z120_test66;
+msc Strnka1;
+inst client;
+inst server;
+client: instance;
+concurrent;
+out no,0 to server;
+in know,1 from server;
+endconcurrent;
+out yes,2 to lost;
+concurrent;
+in tric,3 from server;
+endconcurrent;
+in tric,4 from found;
+endinstance;
+server: instance;
+in no,0 from client;
+concurrent;
+out know,1 to client;
+endconcurrent;
+concurrent;
+out tric,3 to client;
+endconcurrent;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test70.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test70.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test70.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,28 @@
+z120_test70.mpr[22,0] Cannot match to any predicted input.
+OK: z120_test70 is correct, should be correct
+
+mscdocument z120_test70;
+msc Strnka1;
+inst PC;
+inst Server;
+PC: instance;
+out SYN,0 to Server;
+in SYNACK,1 from Server;
+out ACK,2 to Server;
+out request_a,3 to Server;
+out request_b,4 to Server;
+in result,5 from Server;
+endinstance;
+Server: instance;
+in SYN,0 from PC;
+out SYNACK,1 to PC;
+in ACK,2 from PC;
+concurrent;
+in request_a,3 from PC before e0, e1;
+label e0;
+out result,5 to PC;
+label e1;
+in request_b,4 from PC;
+endconcurrent;
+endinstance;
+endmsc;
Modified: trunk/tests/z120_test/z120_test77.mpr
===================================================================
--- trunk/tests/z120_test/z120_test77.mpr 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test77.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,5 +1,5 @@
/******************************************************
-Example of bMSC where two events have the same name (incomplete input message)
+Example of bMSC where three events have the same name
******************************************************/
msc Stranka1;
Added: trunk/tests/z120_test/z120_test77.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test77.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test77.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,19 @@
+Warning 17: Two or more events with the same name: e0
+OK: z120_test77 is correct, should be correct
+
+mscdocument z120_test77;
+msc Stranka1;
+inst NAME1;
+inst NAME2;
+NAME1: instance;
+concurrent;
+out b,0 to NAME2 before e0;
+label e0;
+in a,1 from NAME2;
+endconcurrent;
+endinstance;
+NAME2: instance;
+out a,1 to NAME1;
+in b,0 from NAME1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_test78.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test78.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test78.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,10 @@
+Warning 15: Two or more nodes with the same name: L0
+Warning 08: MSC (Stranka_1) has reference to nonexisted node: L1
+OK: z120_test78 is correct, should be correct
+
+mscdocument z120_test78;
+msc Stranka_1;
+initial connect L0;
+L0: connect L1;
+L1: final;
+endmsc;
Modified: trunk/tests/z120_test/z120_test79.mpr
===================================================================
--- trunk/tests/z120_test/z120_test79.mpr 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test79.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,3 +1,7 @@
+/*********************************
+HMSC with three connection nodes with the same name
+*********************************/
+
mscdocument Vykres1;
msc Denied;
inst NAME2;
Added: trunk/tests/z120_test/z120_test79.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test79.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test79.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,31 @@
+Warning 15: Two or more nodes with the same name: L0
+Warning 08: MSC (Stranka_1) has reference to nonexisted node: L1
+OK: z120_test79 is correct, should be correct
+
+mscdocument z120_test79;
+msc Stranka_1;
+initial connect L0;
+L0: connect L1;
+L1: reference Denied connect L2;
+L2: final;
+endmsc;
+msc Accept;
+inst NAME;
+inst NAME1;
+NAME: instance;
+in NAME,0 from NAME1;
+endinstance;
+NAME1: instance;
+out NAME,0 to NAME;
+endinstance;
+endmsc;
+msc Denied;
+inst NAME2;
+inst NAME;
+NAME2: instance;
+out NAME,0 to NAME;
+endinstance;
+NAME: instance;
+in NAME,0 from NAME2;
+endinstance;
+endmsc;
Modified: trunk/tests/z120_test/z120_test80.mpr
===================================================================
--- trunk/tests/z120_test/z120_test80.mpr 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test80.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,30 +1,29 @@
+/**************************************************
+HMSC with:
+ three connection nodes with the same name.
+ three condition nodes with the same name.
+ three reference nodes with the same name.
+ condition node, reference node and connection node with the same name.
+**************************************************/
+
mscdocument Vykres1;
-msc Denied;
-inst NAME2;
-inst NAME;
-NAME2: instance;
-out NAME,0 to NAME;
-endinstance;
-NAME: instance;
-in NAME,0 from NAME2;
-endinstance;
-endmsc;
msc Stranka_1;
-initial connect L0, L1;
+initial connect L0, L1, L2, L3, L4;
L0: connect L2;
L0: connect L4;
L0: connect L3;
+
+L1: condition true connect L2;
+L1: condition false connect L3;
+L1: condition boolean connect L4;
+
L2: reference Denied connect L4;
+L2: reference True connect L4;
+L2: reference False connect L4;
+
+L3: condition mark connect L4;
L3: reference Accept connect L4;
+L3: connect L4;
+
L4: final;
endmsc;
-msc Accept;
-inst NAME;
-inst NAME1;
-NAME: instance;
-in NAME,0 from NAME1;
-endinstance;
-NAME1: instance;
-out NAME,0 to NAME;
-endinstance;
-endmsc;
Added: trunk/tests/z120_test/z120_test80.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test80.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test80.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,18 @@
+Warning 15: Two or more nodes with the same name: L0
+Warning 15: Two or more nodes with the same name: L1
+Warning 15: Two or more nodes with the same name: L2
+Warning 15: Two or more nodes with the same name: L3
+Warning 09: Reference to nonexisted MSC: Denied
+OK: z120_test80 is correct, should be correct
+
+mscdocument z120_test80;
+msc Stranka_1;
+initial connect L0, L1, L2, L3, L4;
+L0: connect L2;
+L1: condition true connect L2;
+L2: reference Denied connect L4;
+L3: condition mark connect L4;
+L4: final;
+endmsc;
+msc Denied;
+endmsc;
Modified: trunk/tests/z120_test/z120_test81.mpr
===================================================================
--- trunk/tests/z120_test/z120_test81.mpr 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test81.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,14 +1,8 @@
+/***************************************************
+HMSC with three condition nodes with the same name
+****************************************************/
+
mscdocument Vykres1;
-msc Denied;
-inst NAME2;
-inst NAME;
-NAME2: instance;
-out NAME,0 to NAME;
-endinstance;
-NAME: instance;
-in NAME,0 from NAME2;
-endinstance;
-endmsc;
msc Stranka_1;
initial connect L0, L1;
L0: condition true connect L2;
@@ -18,13 +12,3 @@
L3: reference Accept connect L4;
L4: final;
endmsc;
-msc Accept;
-inst NAME;
-inst NAME1;
-NAME: instance;
-in NAME,0 from NAME1;
-endinstance;
-NAME1: instance;
-out NAME,0 to NAME;
-endinstance;
-endmsc;
Added: trunk/tests/z120_test/z120_test81.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test81.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test81.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,14 @@
+Warning 15: Two or more nodes with the same name: L0
+Warning 08: MSC (Stranka_1) has reference to nonexisted node: L1
+Warning 09: Reference to nonexisted MSC: Accept, Denied
+OK: z120_test81 is correct, should be correct
+
+mscdocument z120_test81;
+msc Stranka_1;
+initial connect L0;
+L0: condition true connect L1;
+L1: reference Denied connect L2;
+L2: final;
+endmsc;
+msc Denied;
+endmsc;
Modified: trunk/tests/z120_test/z120_test82.mpr
===================================================================
--- trunk/tests/z120_test/z120_test82.mpr 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test82.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,14 +1,8 @@
+/*******************************************
+HMSC with three reference nodes with the same name.
+*******************************************/
+
mscdocument Vykres1;
-msc Denied;
-inst NAME2;
-inst NAME;
-NAME2: instance;
-out NAME,0 to NAME;
-endinstance;
-NAME: instance;
-in NAME,0 from NAME2;
-endinstance;
-endmsc;
msc Stranka_1;
initial connect L0, L1;
L0: connect L2;
@@ -19,13 +13,3 @@
L3: reference Accept connect L4;
L4: final;
endmsc;
-msc Accept;
-inst NAME;
-inst NAME1;
-NAME: instance;
-in NAME,0 from NAME1;
-endinstance;
-NAME1: instance;
-out NAME,0 to NAME;
-endinstance;
-endmsc;
Added: trunk/tests/z120_test/z120_test82.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test82.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test82.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,17 @@
+Warning 15: Two or more nodes with the same name: L2
+Warning 09: Reference to nonexisted MSC: Accept, Denied
+OK: z120_test82 is correct, should be correct
+
+mscdocument z120_test82;
+msc Stranka_1;
+initial connect L0, L1;
+L0: connect L2;
+L1: connect L3;
+L2: reference Denied connect L4;
+L3: reference Accept connect L4;
+L4: final;
+endmsc;
+msc Denied;
+endmsc;
+msc Accept;
+endmsc;
Modified: trunk/tests/z120_test/z120_test83.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test83.mpr.result 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_test83.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,5 +1,5 @@
z120_test83.mpr[10,4] Cannot match to any predicted input.
-Warning 08: Msc (Stranka1) has reference to nonexisted node: L1, L5
+Warning 08: MSC (Stranka1) has reference to nonexisted node: L1, L5
Warning 09: Reference to nonexisted MSC: NAME1
OK: z120_test83 is correct, should be correct
Added: trunk/tests/z120_test/z120_test84.mpr
===================================================================
--- trunk/tests/z120_test/z120_test84.mpr (rev 0)
+++ trunk/tests/z120_test/z120_test84.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,29 @@
+/******************************************************
+Example of bMSC where two events have the same name (incomplete input message)
+
+parser takes message label e0; in a,0 from NAME2; and wait for second part of the message
+ignores label e0; in a,0 from NAME2; due to the same name of the event
+ignores label e0; in a,0 from found before e1; due to the same name of the event
+
+ignores label e0; out a,0 to NAME1; due to the same name of the event
+at the end parser recognize that the message label e0; in a,0 from NAME2; has only one part
+prints warning and modifies the message to label e0; in a,0 from found;
+******************************************************/
+
+msc Stranka1;
+inst NAME1;
+inst NAME2;
+NAME1: instance;
+concurrent;
+label e1; out b,1 to NAME2 before e0;
+label e0; in a,0 from NAME2;
+label e0; in a,0 from found;
+label e0; in a,0 from found before e1;
+endconcurrent;
+endinstance;
+NAME2: instance;
+label e0; out a,0 to NAME1;
+in b,1 from NAME1;
+endinstance;
+endmsc;
+
Added: trunk/tests/z120_test/z120_test84.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test84.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test84.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,19 @@
+Warning 17: Two or more events with the same name: e0
+Warning 05: There is complete message (a,0) with only one event
+OK: z120_test84 is correct, should be correct
+
+mscdocument z120_test84;
+msc Stranka1;
+inst NAME1;
+inst NAME2;
+NAME1: instance;
+concurrent;
+out b,0 to NAME2 before e0;
+label e0;
+in a,1 from found;
+endconcurrent;
+endinstance;
+NAME2: instance;
+in b,0 from NAME1;
+endinstance;
+endmsc;
Modified: trunk/tests/z120_test/z120_time13.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time13.mpr.result 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_time13.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,5 +1,4 @@
-Warning 24: Some time information points to non-existed reference node
-
+Warning 24: Time information to non-existed reference node: L2
OK: z120_time13 is correct, should be correct
mscdocument z120_time13;
Modified: trunk/tests/z120_test/z120_time15.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time15.mpr.result 2009-10-27 15:29:36 UTC (rev 447)
+++ trunk/tests/z120_test/z120_time15.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -1,5 +1,4 @@
-Warning 24: Some time information points to non-existed reference node
-
+Warning 24: Time information to non-existed reference node: L2
OK: z120_time15 is correct, should be correct
mscdocument z120_time15;
Added: trunk/tests/z120_test/z120_time16.mpr
===================================================================
--- trunk/tests/z120_test/z120_time16.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time16.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,21 @@
+/* Incorrect time constraint (top bottom) between reference node and final node (forbidden).
+ */
+mscdocument Vykres1;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A top bottom L2 [0,inf);
+ connect L2;
+L1: reference B top bottom L2 [0,4);
+ connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time16.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time16.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time16.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,20 @@
+Warning 24: Time information to non-existed reference node: L2
+OK: z120_time16 is correct, should be correct
+
+mscdocument z120_time16;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A connect L2;
+L1: reference B connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time17.mpr
===================================================================
--- trunk/tests/z120_test/z120_time17.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time17.mpr 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,21 @@
+/* Incorrect time constraint (bottom top) between reference node and final node (forbidden)
+ */
+mscdocument Vykres1;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A bottom top L2 [0,inf);
+ connect L2;
+L1: reference B bottom top L2 [0,4);
+ connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time17.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time17.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time17.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
@@ -0,0 +1,20 @@
+Warning 24: Time information to non-existed reference node: L2
+OK: z120_time17 is correct, should be correct
+
+mscdocument z120_time17;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A connect L2;
+L1: reference B connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-11-03 00:56:38
|
Revision: 449
http://scstudio.svn.sourceforge.net/scstudio/?rev=449&view=rev
Author: madzin
Date: 2009-11-03 00:56:27 +0000 (Tue, 03 Nov 2009)
Log Message:
-----------
Fix of error messages.
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/tests/z120_test/CMakeLists.txt
trunk/tests/z120_test/z120_test01.mpr.result
trunk/tests/z120_test/z120_test02.mpr.result
trunk/tests/z120_test/z120_test04.mpr.result
trunk/tests/z120_test/z120_test09.mpr.result
trunk/tests/z120_test/z120_test18.mpr.result
trunk/tests/z120_test/z120_test21.mpr.result
trunk/tests/z120_test/z120_test24.mpr.result
trunk/tests/z120_test/z120_test25.mpr.result
trunk/tests/z120_test/z120_test27.mpr.result
trunk/tests/z120_test/z120_test28.mpr.result
trunk/tests/z120_test/z120_test29.mpr.result
trunk/tests/z120_test/z120_test30.mpr.result
trunk/tests/z120_test/z120_test31.mpr.result
trunk/tests/z120_test/z120_test32.mpr.result
trunk/tests/z120_test/z120_test33.mpr.result
trunk/tests/z120_test/z120_test34.mpr.result
trunk/tests/z120_test/z120_test35.mpr.result
trunk/tests/z120_test/z120_test37.mpr.result
trunk/tests/z120_test/z120_test38.mpr.result
trunk/tests/z120_test/z120_test40.mpr.result
trunk/tests/z120_test/z120_test41.mpr.result
trunk/tests/z120_test/z120_test45.mpr.result
trunk/tests/z120_test/z120_test49.mpr.result
trunk/tests/z120_test/z120_test50.mpr.result
trunk/tests/z120_test/z120_test51.mpr.result
trunk/tests/z120_test/z120_test58.mpr.result
trunk/tests/z120_test/z120_test59.mpr.result
trunk/tests/z120_test/z120_test61.mpr.result
trunk/tests/z120_test/z120_test62.mpr.result
trunk/tests/z120_test/z120_test63.mpr.result
trunk/tests/z120_test/z120_test64.mpr.result
trunk/tests/z120_test/z120_test65.mpr.result
trunk/tests/z120_test/z120_test66.mpr.result
trunk/tests/z120_test/z120_test67.mpr.result
trunk/tests/z120_test/z120_test68.mpr.result
trunk/tests/z120_test/z120_test69.mpr.result
trunk/tests/z120_test/z120_test72.mpr.result
trunk/tests/z120_test/z120_test74.mpr.result
trunk/tests/z120_test/z120_test75.mpr.result
trunk/tests/z120_test/z120_test76.mpr.result
trunk/tests/z120_test/z120_test77.mpr.result
trunk/tests/z120_test/z120_test78.mpr.result
trunk/tests/z120_test/z120_test79.mpr.result
trunk/tests/z120_test/z120_test80.mpr.result
trunk/tests/z120_test/z120_test81.mpr.result
trunk/tests/z120_test/z120_test82.mpr.result
trunk/tests/z120_test/z120_test83.mpr.result
trunk/tests/z120_test/z120_test84.mpr.result
trunk/tests/z120_test/z120_time11.mpr.result
trunk/tests/z120_test/z120_time12.mpr.result
trunk/tests/z120_test/z120_time13.mpr.result
trunk/tests/z120_test/z120_time15.mpr.result
trunk/tests/z120_test/z120_time16.mpr.result
trunk/tests/z120_test/z120_time17.mpr.result
Added Paths:
-----------
trunk/tests/z120_test/z120_test85.mpr
trunk/tests/z120_test/z120_test85.mpr.result
trunk/tests/z120_test/z120_test86.mpr
trunk/tests/z120_test/z120_time18.mpr
trunk/tests/z120_test/z120_time18.mpr.result
trunk/tests/z120_test/z120_time19.mpr
trunk/tests/z120_test/z120_time19.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/src/data/Z120/Context.cpp 2009-11-03 00:56:27 UTC (rev 449)
@@ -123,12 +123,12 @@
}
names += *it;
}
- context->z->print_report(RS_WARNING, stringize() << L"Warning 02: There are more unreferenced MSC: " << TOWSTRING(names));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 02: Unreferenced MSC: " << TOWSTRING(names));
}
if(context->nonpointed.size() < 1 && context->mscs.size() > 0)
{
- context->z->print_report(RS_ERROR, L"Error 03: There is infinite recursion among MSCs");
+ context->z->print_report(RS_ERROR, L"Error 03: Infinite recursion among MSCs");
}
s_Msc** result = NULL;
@@ -209,7 +209,7 @@
}
names += *it;
}
- context->z->print_report(RS_WARNING, stringize() << "Warning 04: Instances which does not have finished coretion: " << TOWSTRING(names));
+ context->z->print_report(RS_WARNING, stringize() << "Warning 04: Instances with unfinished coregion: " << TOWSTRING(names));
context->coregion_area_opened.clear();
}
@@ -218,7 +218,7 @@
for(it = context->messages.begin(); it != context->messages.end(); ++it)
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 05: There is complete message (" << TOWSTRING(it->first) << ") with only one event");
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 05: Complete message (" << TOWSTRING(it->first) << ") with only one event");
}
IncompleteMessagePtr message;
@@ -239,11 +239,11 @@
}
if(!context->future_events.empty()){
- context->z->print_report(RS_WARNING, L"Warning 06: There is dependency on nonexisted event\n");
+ context->z->print_report(RS_WARNING, L"Warning 06: Dependency on nonexisting event\n");
}
if(!context->order_events.empty()){
- context->z->print_report(RS_WARNING, L"Warning 07: There is reference to nonexisted event\n");
+ context->z->print_report(RS_WARNING, L"Warning 07: Reference to nonexisting event\n");
}
if(!context->future_connections.empty()){
@@ -259,7 +259,7 @@
names += it->first;
}
- context->z->print_report(RS_WARNING, stringize() << L"Warning 08: MSC (" << TOWSTRING(context->msc_name) << ") has reference to nonexisted node: " << TOWSTRING(names));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 08: MSC (" << TOWSTRING(context->msc_name) << ") has reference to nonexisting node: " << TOWSTRING(names));
context->future_connections.clear();
@@ -269,17 +269,17 @@
{
if(context->open_instance == 1)
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 20: MSC (" << TOWSTRING(context->msc_name) << ") has not finished " << context->open_instance << " instance");
+ context->z->print_report(RS_WARNING, stringize() << "Warning 20: MSC (" << TOWSTRING(context->msc_name) << ") has unterminated " << context->open_instance << " instance");
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 20: MSC " << TOWSTRING(context->msc_name) << " has not finished " << context->open_instance << " instances");
+ context->z->print_report(RS_WARNING, stringize() << "Warning 20: MSC (" << TOWSTRING(context->msc_name) << ") has unterminated " << context->open_instance << " instance");
}
}
if(context->open_instance < 0)
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 21: Instance in MSC (" << TOWSTRING(context->msc_name) << ") has been finished more times");
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 21: Instance in MSC (" << TOWSTRING(context->msc_name) << ") was terminated multiple times");
}
std::set<std::string> nodes_names;
@@ -337,7 +337,7 @@
names += (*it);
}
- context->z->print_report(RS_WARNING, stringize() << L"Warning 24: Time information to non-existed reference node: " << TOWSTRING(names));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 24: Time information to nonexisting reference node: " << TOWSTRING(names));
}
@@ -366,7 +366,7 @@
(*ref_it)->set_msc(bmsc);
}
}
- context->z->print_report(RS_WARNING, stringize() << L"Warning 09: Reference to nonexisted MSC: " << TOWSTRING(names));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 09: Reference to nonexisting MSC: " << TOWSTRING(names));
}
}
@@ -374,13 +374,13 @@
{
if(!context->end_msc)
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 12: MSC (" << TOWSTRING(context->msc_name) << ") is not finished correctly (missing: endmsc;)" );
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 12: Incorrectly terminated MSC (" << TOWSTRING(context->msc_name) << "); missing 'endmsc;'" );
}
if(context->mscs.find(context->msc_name) != context->mscs.end()){
if(context->error_mscs_names.find(context->msc_name) == context->error_mscs_names.end())
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 18: Two or more MSCs have the same name: " << TOWSTRING(context->msc_name) );
+ context->z->print_report(RS_WARNING, stringize() << "Warning 18: Multiple MSCs have the same name: " << TOWSTRING(context->msc_name) );
context->error_mscs_names.insert(context->msc_name);
}
}
@@ -567,7 +567,7 @@
{
if(context->error_inst_names.find(context->element_name) == context->error_inst_names.end())
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 16: Two or more instances with the same name: " << TOWSTRING(context->element_name));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 16: Multiple instances with the same name: " << TOWSTRING(context->element_name));
context->error_inst_names.insert(context->element_name);
}
}
@@ -598,8 +598,7 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 10: Instance (" << TOWSTRING(context->element_name) << ") has overlapped coregions");
-
+ context->z->print_report(RS_WARNING, stringize() << "Warning 10: Instance (" << TOWSTRING(context->element_name) << ") has overlapping coregions");
}
}
@@ -617,7 +616,7 @@
}
else
{
- context->z->print_report(RS_WARNING, stringize() << "Warning 11: Instance (" << TOWSTRING(context->element_name) << ") does not have open any coregion\n"); //check
+ context->z->print_report(RS_WARNING, stringize() << "Warning 11: Instance (" << TOWSTRING(context->element_name) << ") does not have any open coregion\n");
}
}
@@ -805,7 +804,7 @@
context->not_create_event = 1;
if(context->error_event_names.find(name) == context->error_event_names.end())
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 17: Two or more events with the same name: " << TOWSTRING(name));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 17: Multiple events with the same name: " << TOWSTRING(name));
context->error_event_names.insert(name);
}
}
@@ -819,7 +818,7 @@
void missing_message_label_fun(struct Context* context)
{
context->no_message_label = 1;
- context->z->print_report(RS_WARNING, stringize() << L"Warning 19: There is message without label on the instance (" << TOWSTRING(context->element_name) << ")");
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 19: Message without label on the instance (" << TOWSTRING(context->element_name) << ")");
}
void end_instance_fun(struct Context* context){
@@ -897,25 +896,25 @@
void set_data_parameter_decl(struct Context* context)
{
if(!context->data_parameter_decl) context->data_parameter_decl = true;
- else context->z->print_report(RS_WARNING, L"Warning 26: data parameters were declared multiple times");
+ else context->z->print_report(RS_WARNING, L"Warning 26: Data parameters were declared multiple times");
}
void set_instance_parameter_decl(struct Context* context)
{
if(!context->instance_parameter_decl) context->instance_parameter_decl = true;
- else context->z->print_report(RS_WARNING, L"Warning 27: instance parameters were declared multiple times");
+ else context->z->print_report(RS_WARNING, L"Warning 27: Instance parameters were declared multiple times");
}
void set_message_parameter_decl(struct Context* context)
{
if(!context->message_parameter_decl) context->message_parameter_decl = true;
- else context->z->print_report(RS_WARNING, L"Warning 28: message parameters were declared multiple times");
+ else context->z->print_report(RS_WARNING, L"Warning 28: Message parameters were declared multiple times");
}
void set_timer_parameter_decl(struct Context* context)
{
if(!context->timer_parameter_decl) context->timer_parameter_decl = true;
- else context->z->print_report(RS_WARNING, L"Warning 29: timer parameters were declared multiple times");
+ else context->z->print_report(RS_WARNING, L"Warning 29: Timer parameters were declared multiple times");
}
@@ -1064,7 +1063,7 @@
{
if(context->error_nodes_names.find(context->element_name) == context->error_nodes_names.end())
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Two or more nodes with the same name: " << TOWSTRING(context->element_name));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Multiple nodes with the same name: " << TOWSTRING(context->element_name));
context->error_nodes_names.insert(context->element_name);
}
@@ -1091,7 +1090,7 @@
{
if(context->error_nodes_names.find(context->element_name) == context->error_nodes_names.end())
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Two or more nodes with the same name: " << TOWSTRING(context->element_name));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Multiple nodes with the same name: " << TOWSTRING(context->element_name));
context->error_nodes_names.insert(context->element_name);
}
@@ -1118,7 +1117,7 @@
{
if(context->error_nodes_names.find(context->element_name) == context->error_nodes_names.end())
{
- context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Two or more nodes with the same name: " << TOWSTRING(context->element_name));
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 15: Multiple nodes with the same name: " << TOWSTRING(context->element_name));
context->error_nodes_names.insert(context->element_name);
}
Modified: trunk/tests/z120_test/CMakeLists.txt
===================================================================
--- trunk/tests/z120_test/CMakeLists.txt 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/CMakeLists.txt 2009-11-03 00:56:27 UTC (rev 449)
@@ -105,6 +105,8 @@
ADD_Z120_TEST(z120_test82.mpr 1)
ADD_Z120_TEST(z120_test83.mpr 1)
ADD_Z120_TEST(z120_test84.mpr 1)
+ADD_Z120_TEST(z120_test85.mpr 1)
+ADD_Z120_TEST(z120_test86.mpr 1)
ADD_Z120_TEST(z120_time01.mpr 1)
ADD_Z120_TEST(z120_time02.mpr 1)
@@ -124,6 +126,7 @@
ADD_Z120_TEST(z120_time16.mpr 1)
ADD_Z120_TEST(z120_time17.mpr 1)
ADD_Z120_TEST(z120_time18.mpr 1)
+ADD_Z120_TEST(z120_time19.mpr 1)
# $Id$
Modified: trunk/tests/z120_test/z120_test01.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test01.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test01.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 20: MSC (z120_test01) has not finished 1 instance
+Warning 20: MSC (z120_test01) has unterminated 1 instance
OK: z120_test01 is correct, should be correct
mscdocument z120_test01;
Modified: trunk/tests/z120_test/z120_test02.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test02.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test02.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 09: Reference to nonexisted MSC: ACTION1, ACTION2, ACTION3A, ACTION3B
+Warning 09: Reference to nonexisting MSC: ACTION1, ACTION2, ACTION3A, ACTION3B
OK: z120_test02 is correct, should be correct
mscdocument z120_test02;
Modified: trunk/tests/z120_test/z120_test04.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test04.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test04.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 09: Reference to nonexisted MSC: NAME, NAME1
+Warning 09: Reference to nonexisting MSC: NAME, NAME1
OK: z120_test04 is correct, should be correct
mscdocument z120_test04;
Modified: trunk/tests/z120_test/z120_test09.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test09.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test09.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 16: Two or more instances with the same name: NAME
+Warning 16: Multiple instances with the same name: NAME
OK: z120_test09 is correct, should be correct
mscdocument z120_test09;
Modified: trunk/tests/z120_test/z120_test18.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test18.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test18.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 02: There are more unreferenced MSC: Strnka1, bmsc3
+Warning 02: Unreferenced MSC: Strnka1, bmsc3
OK: z120_test18 is correct, should be correct
mscdocument z120_test18;
Modified: trunk/tests/z120_test/z120_test21.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test21.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test21.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 02: There are more unreferenced MSC: Strnka1, bmsc3
+Warning 02: Unreferenced MSC: Strnka1, bmsc3
OK: z120_test21 is correct, should be correct
mscdocument z120_test21;
Modified: trunk/tests/z120_test/z120_test24.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test24.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test24.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 16: Two or more instances with the same name: NAME
+Warning 16: Multiple instances with the same name: NAME
OK: z120_test24 is correct, should be correct
mscdocument z120_test24;
Modified: trunk/tests/z120_test/z120_test25.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test25.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test25.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 16: Two or more instances with the same name: NAME
-Warning 18: Two or more MSCs have the same name: Stranka_1
+Warning 16: Multiple instances with the same name: NAME
+Warning 18: Multiple MSCs have the same name: Stranka_1
OK: z120_test25 is correct, should be correct
mscdocument z120_test25;
Modified: trunk/tests/z120_test/z120_test27.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test27.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test27.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 16: Two or more instances with the same name: NAME
+Warning 16: Multiple instances with the same name: NAME
OK: z120_test27 is correct, should be correct
mscdocument z120_test27;
Modified: trunk/tests/z120_test/z120_test28.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test28.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test28.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 15: Two or more nodes with the same name: L1
-Warning 09: Reference to nonexisted MSC: NAME, NAME1
+Warning 15: Multiple nodes with the same name: L1
+Warning 09: Reference to nonexisting MSC: NAME, NAME1
OK: z120_test28 is correct, should be correct
mscdocument z120_test28;
Modified: trunk/tests/z120_test/z120_test29.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test29.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test29.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 15: Two or more nodes with the same name: L1
-Warning 09: Reference to nonexisted MSC: NAME, NAME1
+Warning 15: Multiple nodes with the same name: L1
+Warning 09: Reference to nonexisting MSC: NAME, NAME1
OK: z120_test29 is correct, should be correct
mscdocument z120_test29;
Modified: trunk/tests/z120_test/z120_test30.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test30.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test30.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 15: Two or more nodes with the same name: L1
-Warning 09: Reference to nonexisted MSC: NAME, NAME1
+Warning 15: Multiple nodes with the same name: L1
+Warning 09: Reference to nonexisting MSC: NAME, NAME1
OK: z120_test30 is correct, should be correct
mscdocument z120_test30;
Modified: trunk/tests/z120_test/z120_test31.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test31.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test31.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 09: Reference to nonexisted MSC: bmsc1
-Error 03: There is infinite recursion among MSCs
+Warning 09: Reference to nonexisting MSC: bmsc1
+Error 03: Infinite recursion among MSCs
OK: z120_test31 is correct, should be correct
mscdocument z120_test31;
Modified: trunk/tests/z120_test/z120_test32.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test32.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test32.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 17: Two or more events with the same name: e1
+Warning 17: Multiple events with the same name: e1
OK: z120_test32 is correct, should be correct
mscdocument z120_test32;
Modified: trunk/tests/z120_test/z120_test33.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test33.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test33.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 17: Two or more events with the same name: e0
+Warning 17: Multiple events with the same name: e0
OK: z120_test33 is correct, should be correct
mscdocument z120_test33;
Modified: trunk/tests/z120_test/z120_test34.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test34.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test34.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 17: Two or more events with the same name: e1
+Warning 17: Multiple events with the same name: e1
OK: z120_test34 is correct, should be correct
mscdocument z120_test34;
Modified: trunk/tests/z120_test/z120_test35.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test35.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test35.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 17: Two or more events with the same name: e0
+Warning 17: Multiple events with the same name: e0
OK: z120_test35 is correct, should be correct
mscdocument z120_test35;
Modified: trunk/tests/z120_test/z120_test37.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test37.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test37.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 19: There is message without label on the instance (ONE)
-Warning 19: There is message without label on the instance (TWO)
+Warning 19: Message without label on the instance (ONE)
+Warning 19: Message without label on the instance (TWO)
OK: z120_test37 is correct, should be correct
mscdocument z120_test37;
Modified: trunk/tests/z120_test/z120_test38.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test38.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test38.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 18: Two or more MSCs have the same name: Two
-Warning 02: There are more unreferenced MSC: Stranka_1, Trick, Two
+Warning 18: Multiple MSCs have the same name: Two
+Warning 02: Unreferenced MSC: Stranka_1, Trick, Two
OK: z120_test38 is correct, should be correct
mscdocument z120_test38;
Modified: trunk/tests/z120_test/z120_test40.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test40.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test40.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 18: Two or more MSCs have the same name: Stranka_1
-Warning 09: Reference to nonexisted MSC: Trick
+Warning 18: Multiple MSCs have the same name: Stranka_1
+Warning 09: Reference to nonexisting MSC: Trick
OK: z120_test40 is correct, should be correct
mscdocument z120_test40;
Modified: trunk/tests/z120_test/z120_test41.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test41.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test41.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 19: There is message without label on the instance (ONE)
-Warning 19: There is message without label on the instance (TWO)
+Warning 19: Message without label on the instance (ONE)
+Warning 19: Message without label on the instance (TWO)
OK: z120_test41 is correct, should be correct
mscdocument z120_test41;
Modified: trunk/tests/z120_test/z120_test45.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test45.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test45.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 05: There is complete message (jedna,2) with only one event
+Warning 05: Complete message (jedna,2) with only one event
OK: z120_test45 is correct, should be correct
mscdocument z120_test45;
Modified: trunk/tests/z120_test/z120_test49.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test49.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test49.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
-Warning 08: MSC (Stranka1) has reference to nonexisted node: L3
-Warning 09: Reference to nonexisted MSC: NAME, NAME1
+Warning 08: MSC (Stranka1) has reference to nonexisting node: L3
+Warning 09: Reference to nonexisting MSC: NAME, NAME1
OK: z120_test49 is correct, should be correct
mscdocument z120_test49;
Modified: trunk/tests/z120_test/z120_test50.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test50.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test50.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,6 +1,6 @@
z120_test50.mpr[10,4] Cannot match to any predicted input.
-Warning 08: MSC (Stranka1) has reference to nonexisted node: L1
-Warning 09: Reference to nonexisted MSC: NAME1
+Warning 08: MSC (Stranka1) has reference to nonexisting node: L1
+Warning 09: Reference to nonexisting MSC: NAME1
OK: z120_test50 is correct, should be correct
mscdocument z120_test50;
Modified: trunk/tests/z120_test/z120_test51.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test51.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test51.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,4 +1,4 @@
-Warning 05: There is complete message (jedna,2) with only one event
+Warning 05: Complete message (jedna,2) with only one event
OK: z120_test51 is correct, should be correct
mscdocument z120_test51;
Modified: trunk/tests/z120_test/z120_test58.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test58.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test58.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,6 +1,6 @@
z120_test58.mpr[16,9] Missing ';'.
z120_test58.mpr[16,9] Unwanted input: expected ';'.
-Warning 11: Instance (server) does not have open any coregion
+Warning 11: Instance (server) does not have any open coregion
OK: z120_test58 is correct, should be correct
Modified: trunk/tests/z120_test/z120_test59.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test59.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test59.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,5 +1,5 @@
z120_test59.mpr[28,0] Unwanted input: expected ';'.
-Warning 11: Instance (server) does not have open any coregion
+Warning 11: Instance (server) does not have any open coregion
OK: z120_test59 is correct, should be correct
Modified: trunk/tests/z120_test/z120_test61.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test61.mpr.result 2009-10-28 19:26:56 UTC (rev 448)
+++ trunk/tests/z120_test/z120_test61.mpr.result 2009-11-03 00:56:27 UTC (rev 449)
@@ -1,7 +1,7 @@
z120_test61.mpr[10,0] Missing ';'.
z120_test61.mpr[12,0] Missing ';'.
-Warning 05: There is complete message (tric,3) with only one event
-Warning 05: There is complete message (tric3) with only one event
+Warning 05: Complete message (tric,3) with only one event
+Warning 05: Complete message (tric3) with only one event
OK: z120_test61 is correct, should be correct
mscdocument z120_test61;
Modified: trunk/tests/z120_test/z120_test62.mpr.result
===================================================================
-...
[truncated message content] |
|
From: <koc...@us...> - 2009-11-04 15:11:17
|
Revision: 450
http://scstudio.svn.sourceforge.net/scstudio/?rev=450&view=rev
Author: kocianon
Date: 2009-11-04 15:11:10 +0000 (Wed, 04 Nov 2009)
Log Message:
-----------
bmsc hmsc constraints checker
Modified Paths:
--------------
trunk/src/check/liveness/deadlock_checker.h
trunk/src/check/pseudocode/utils.h
trunk/src/check/time/constrain_check.cpp
trunk/src/check/time/constrain_check.h
trunk/src/check/time/module.cpp
trunk/src/check/time/tightening.cpp
trunk/src/check/time/tightening.h
trunk/src/check/time/time_pseudocode.cpp
trunk/src/check/time/time_pseudocode.h
trunk/src/data/dfs_refnode_hmsc_traverser.cpp
trunk/src/data/dfsb_hmsc_traverser.cpp
trunk/src/data/msc.cpp
trunk/src/data/msc.h
trunk/tests/CMakeLists.txt
trunk/tests/constrain_check_test.cpp
Modified: trunk/src/check/liveness/deadlock_checker.h
===================================================================
--- trunk/src/check/liveness/deadlock_checker.h 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/liveness/deadlock_checker.h 2009-11-04 15:11:10 UTC (rev 450)
@@ -119,7 +119,7 @@
static DeadlockCheckerPtr m_instance;
HMscPtr create_counter_example(const MscElementPListList& path);
-
+
public:
DeadlockChecker(){};
Modified: trunk/src/check/pseudocode/utils.h
===================================================================
--- trunk/src/check/pseudocode/utils.h 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/pseudocode/utils.h 2009-11-04 15:11:10 UTC (rev 450)
@@ -27,15 +27,17 @@
#include "data/dfsb_hmsc_traverser.h"
#include "check/pseudocode/export.h"
#include "data/node_finder.h"
+#include "check/pseudocode/visual_closure_initiator.h"
typedef std::map<std::wstring,size_t> StringSizeTMap;
+typedef Event* EventP;
typedef std::set<Event*> EventPSet;
+
/**
* \brief Returns event's next first successors
- * if event is a send one, returns also its match event
+ * if event is a send one, returns also its match event
*/
-
class SCPSEUDOCODE_EXPORT EventFirstSuccessors
{
private:
@@ -59,40 +61,40 @@
class SCPSEUDOCODE_EXPORT InstanceIdMarker:public WhiteRefNodeFoundListener
{
private:
-
+
std::string m_instance_id_attribute;
-
+
StringSizeTMap m_identifiers;
-
+
std::list<Instance*> m_modified_instances;
-
+
void set_instance_id(Instance* i);
-
+
public:
-
+
InstanceIdMarker(const std::string& instance_id_attribute="instance_id");
-
+
virtual void on_white_node_found(ReferenceNode* node);
-
+
size_t get_instance_id(Instance* i);
-
+
void cleanup_attributes();
-
+
size_t get_count();
-
+
};
class TopologyOrderListener:public EventFinishedListener
{
EventPList* m_topology;
-
+
public:
-
+
TopologyOrderListener(EventPList* topology)
{
m_topology = topology;
}
-
+
void on_event_finished(Event* e)
{
m_topology->push_front(e);
@@ -102,13 +104,47 @@
class EventRecognizer
{
public:
-
+
static bool is_matched_receive(Event* e)
{
return e->is_matched() && e->is_receive();
}
};
+/**
+ * \brief Handles visual closure on bmsc
+ * Init DFSEventsTraverser, TopologicalOrderListener
+ * and VisualClosureInitiator. Makes easier to run is_leq method
+ * on two events.
+ */
+class EventTopologyHandler
+{
+private:
+ BMscPtr m_bmsc;
+ VisualClosureInitiator m_closure_initiator;
+ TopologicalOrderListener m_topology_listener;
+ DFSEventsTraverser m_traverser;
+public:
+ EventTopologyHandler(BMscPtr bmsc):m_bmsc(bmsc)
+ {
+ m_traverser.add_event_finished_listener(&m_topology_listener);
+ m_traverser.traverse(m_bmsc);
+ EventPVector topology(m_topology_listener.get_topology().size());
+ topology.assign(m_topology_listener.get_topology().begin(),m_topology_listener.get_topology().end());
+ m_closure_initiator.initialize(topology);
+ }
+
+ /**
+ * \return true if a is less then b (a<b) or equal (a=b)
+ */
+ bool is_leq(Event* a,Event *b)
+ {
+ BoolVector vector = m_closure_initiator.get_visual_closure(a);
+
+ return m_closure_initiator.get_visual_closure(a)[m_closure_initiator.get_topology_index(b)];
+ }
+};
+
template<class MscElementContainer,class AttributeType>
void remove_attributes(MscElementContainer& container, const std::string& name)
{
@@ -121,13 +157,13 @@
}
/**
- * /brief Eliminates from hmsc nodes which are not reachable from
+ * \brief Eliminates from hmsc nodes which are not reachable from
* end nodes of hmsc.
*/
void eliminate_noending_nodes(HMscPtr& hmsc);
/**
- * /brief Marks white nodes by boolean true
+ * \brief Marks white nodes by boolean true
*/
class SCPSEUDOCODE_EXPORT WhiteNodeMarker: public WhiteNodeFoundListener
{
@@ -151,7 +187,7 @@
};
/**
- * /brief Eliminates nodes which are not reachable from end node.
+ * \brief Eliminates nodes which are not reachable from end node.
*
* Currently supports only BMsc graph, please extend implementation if
* neccessary.
@@ -172,17 +208,16 @@
};
-/*
- * \brief Check whether the HMscNode is ending node
+/**
+ * \brief Check whether the HMscNode is ending node
* (one of the straight successors is End node)
* due to connection node theather
*
*/
-
class IsEndingNode
{
private:
-
+
public:
IsEndingNode()
{
@@ -193,7 +228,7 @@
//isnt it EndNode itself?
if((end=dynamic_cast<EndNode*>(node)))
return end;
-
+
HMscNodePListPtr succs = NodeFinder::successors(node,"IsEndingNode");
HMscNodePList::iterator it;
for(it=succs->begin();it!=succs->end();it++)
@@ -204,6 +239,108 @@
}
};
+/**
+ * \brief Vector of all reachable events in bmsc
+ * Using DFSEventsTraverser goes through the BMsc and
+ * pick up all events
+ * (WhiteNodeFoundListener)
+ */
+class AllReachableEventPVector:public std::vector<EventP>, public WhiteEventFoundListener
+{
+private:
+ DFSEventsTraverser m_traverser;
+public:
+ AllReachableEventPVector(BMscPtr bmsc)
+ {
+ m_traverser.add_white_event_found_listener(this);
+ m_traverser.traverse(bmsc);
+ m_traverser.cleanup_traversing_attributes();
+ m_traverser.remove_white_event_found_listeners();
+ }
+
+ AllReachableEventPVector()
+ {}
+
+ void set_new_bmsc(BMscPtr bmsc)
+ {
+ clear();
+ m_traverser.add_white_event_found_listener(this);
+ m_traverser.traverse(bmsc);
+ m_traverser.cleanup_traversing_attributes();
+ m_traverser.remove_white_event_found_listeners();
+ }
+
+ void on_white_event_found(Event* e)
+ {
+ this->push_back(e);
+ }
+};
+
+/**
+ * \brief List of minimal events
+ * Go through the vector of all events using AllReachableEventPVector
+ * and using EventTopologyHandler choose minimal events
+ */
+class MinimalEventPList: public std::list<EventP>
+{
+private:
+ AllReachableEventPVector m_events;
+ EventTopologyHandler m_event_top;
+
+public:
+ MinimalEventPList(BMscPtr bmsc):m_events(bmsc),m_event_top(bmsc)
+ {
+ EventPVector::iterator it;
+ EventPVector::iterator it_b;
+ for (it=m_events.begin();it!=m_events.end();it++)
+ {
+ bool is_minimal = true;
+ for (it_b=m_events.begin();it_b!=m_events.end();it_b++)
+ {
+ if (it_b != it && m_event_top.is_leq(*it_b,*it))
+ {
+ is_minimal=false;
+ break;
+ }
+ }
+ if (is_minimal)
+ push_back(*it);
+ }
+ }
+};
+
+/**
+ * \brief list of maximal events
+ * Go through the vector of all events using AllReachableEventPVector
+ * and using EventTopologyHandler choose maximal events
+ */
+class MaximalEventPList: public std::list<EventP>
+{
+private:
+ AllReachableEventPVector m_events;
+ EventTopologyHandler m_event_top;
+
+public:
+ MaximalEventPList(BMscPtr bmsc):m_events(bmsc),m_event_top(bmsc)
+ {
+ EventPVector::iterator it;
+ EventPVector::iterator it_b;
+ for (it=m_events.begin();it!=m_events.end();it++)
+ {
+ bool is_maximal = true;
+ for (it_b=m_events.begin();it_b!=m_events.end();it_b++)
+ {
+ if (it_b != it && m_event_top.is_leq(*it,*it_b))
+ {
+ is_maximal=false;
+ break;
+ }
+ }
+ if (is_maximal)
+ push_back(*it);
+ }
+ }
+};
#endif /* _UTILS_H */
// $Id$
Modified: trunk/src/check/time/constrain_check.cpp
===================================================================
--- trunk/src/check/time/constrain_check.cpp 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/time/constrain_check.cpp 2009-11-04 15:11:10 UTC (rev 450)
@@ -1,14 +1,20 @@
#include "constrain_check.h"
-#include "data/dfs_bmsc_graph_traverser.h"
+#include "data/dfs_refnode_hmsc_traverser.h"
#include "check/pseudocode/utils.h"
HMscTimeConstrainCheckerPtr HMscTimeConstrainChecker::m_instance;
HMscTimeConstrainChecker::HMscTimeConstrainChecker(
- const std::string& name):
- m_local_active_constraints(name)
+ const std::string& local
+ ,const std::string& first_find
+ ):
+ m_local_active_constraints(local),m_first_find_with(first_find)
{}
+/** updating global set of active constraints (m_active_constraints)
+ * constraints with the equal begin and end reference node are ignored
+ * @Warning WHITENODE function
+ */
void HMscTimeConstrainChecker::check_active_set(
ReferenceNode* n,
@@ -21,63 +27,64 @@
{
TimeRelationRefNodePtr constraint = *it;
+ // ignore constraints with the equal begin and end reference node
+ if(constraint->get_ref_node_a()==constraint->get_ref_node_b())
+ continue;
TimeRelationRefNodePtrSet::iterator found_constraint;
found_constraint=m_active_constraints.find(constraint);
if(found_constraint==m_active_constraints.end())
{
- if(constraint->get_ref_node_b()==n && constraint->get_ref_node_a()!=n)
- {
- throw constraint.get();
- }
-
+ set_first_find_with(constraint.get(),n);
m_active_constraints.insert(constraint);
}
else
{
- if(constraint->get_ref_node_b()==n)
- m_active_constraints.erase(found_constraint);
+// if(get_first_find_with(constraint.get()).get()==n)
+// {
+// if(constraint->get_ref_node_a()==constraint->get_ref_node_b())
+// continue; //time relation on one refnode
+// else
+// throw constraint.get(); // begin of refnode was refound?
+// // end of timerelation was found, remove it from the global set
+// }
+// else
+ m_active_constraints.erase(found_constraint);
}
}
-
}
-void HMscTimeConstrainChecker::on_white_node_found(HMscNode* n)
+void HMscTimeConstrainChecker::on_white_node_found(ReferenceNode* n)
{
-
+
add_local_active_constraints(n);
//TOP
- if(ReferenceNode* ref=dynamic_cast<ReferenceNode*>(n))
- {
TimeRelationRefNodePtrSet constraint_set;
- constraint_set = ref->get_time_relations_top();
+ constraint_set = n->get_time_relations_top();
+ check_active_set(n,constraint_set);
- check_active_set(ref,constraint_set);
-
//BOTTOM
- constraint_set = ref->get_time_relations_bottom();
+ constraint_set = n->get_time_relations_bottom();
// add_active_constraints_bottom(n);
- check_active_set(ref,constraint_set);
- }
+ check_active_set(n,constraint_set);
if(m_active_constraints.size()!=0 && IsEndingNode::check(n))
throw m_active_constraints;
}
-void HMscTimeConstrainChecker::on_gray_node_found(HMscNode* n)
+void HMscTimeConstrainChecker::on_gray_node_found(ReferenceNode* n)
{
TimeRelationRefNodePtrSet constraints_set;
constraints_set = get_local_active_constraints(n);
if(constraints_set!=m_active_constraints)
throw constraints_set;
-
}
-void HMscTimeConstrainChecker::on_black_node_found(HMscNode* n)
+void HMscTimeConstrainChecker::on_black_node_found(ReferenceNode* n)
{
TimeRelationRefNodePtrSet constraints_set;
@@ -87,16 +94,16 @@
}
-void HMscTimeConstrainChecker::on_node_finished(HMscNode* n)
+void HMscTimeConstrainChecker::on_node_finished(ReferenceNode* n)
{
- TimeRelationRefNodePtrSet constraints_set;
+ // fix global set
m_active_constraints = get_local_active_constraints(n);
}
HMscPtr HMscTimeConstrainChecker::check(HMscPtr hmsc, ChannelMapperPtr chm)
{
HMscPtr p;
- DFSBMscGraphTraverser traverser;
+ DFSRefNodeHMscTraverser traverser;
traverser.add_white_node_found_listener(this);
traverser.add_gray_node_found_listener(this);
traverser.add_black_node_found_listener(this);
@@ -107,13 +114,13 @@
}
catch (TimeRelationRefNode* relation)
{
- p = process_path(traverser.get_reached_elements());
+ //p = process_path(traverser.get_reached_elements());
//mark_time_relation(relation);
traverser.cleanup_traversing_attributes();
}
catch (TimeRelationRefNodePtrSet relations)
{
- p = process_path(traverser.get_reached_elements());
+ //p = process_path(traverser.get_reached_elements());
//mark_time_relations(relations);
traverser.cleanup_traversing_attributes();
}
@@ -121,10 +128,10 @@
return p;
}
-Checker::PreconditionList HMscTimeConstrainChecker::get_preconditions(MscPtr msc) const
-{
- Checker::PreconditionList result;
- // no preconditions
+Checker::PreconditionList HMscTimeConstrainChecker::get_preconditions(MscPtr msc) const
+{
+ Checker::PreconditionList result;
+ // no preconditions
return result;
}
Modified: trunk/src/check/time/constrain_check.h
===================================================================
--- trunk/src/check/time/constrain_check.h 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/time/constrain_check.h 2009-11-04 15:11:10 UTC (rev 450)
@@ -13,7 +13,7 @@
*
*
*
- *
+ *
*/
#include <string>
@@ -25,16 +25,19 @@
#include "data/checker.h"
#include "data/msc.h"
#include "check/pseudocode/msc_duplicators.h"
-#include "data/dfs_bmsc_graph_traverser.h"
+#include "data/dfs_refnode_hmsc_traverser.h"
+#include "check/pseudocode/utils.h"
+#include "check/time/time_pseudocode.h"
class HMscTimeConstrainChecker;
+class BMscTimeConstrainChecker;
typedef boost::shared_ptr<HMscTimeConstrainChecker> HMscTimeConstrainCheckerPtr;
/*
class ConstrainException:public std::exception
{
-
+
public:
virtual const char* what() const throw()
{
@@ -46,28 +49,29 @@
class SCTIME_EXPORT HMscTimeConstrainChecker:
public Checker
, public HMscChecker
- , public WhiteNodeFoundListener
- , public GrayNodeFoundListener
- , public BlackNodeFoundListener
- , public NodeFinishedListener
+ , public WhiteRefNodeFoundListener
+ , public GrayRefNodeFoundListener
+ , public BlackRefNodeFoundListener
+ , public RefNodeFinishedListener
{
private:
- std::string m_local_active_constraints;
- std::stack<MscElement*> to_be_clean;
- // active constraints on the path
- std::set<TimeRelationRefNodePtr> m_active_constraints;
+ std::string m_local_active_constraints; ///< attr of local set of constraints
+ std::string m_first_find_with; /// attr of TimeRelation, RefNode first find with
+ std::stack<MscElement*> to_be_clean; ///< stack of items with atribute
+ std::set<TimeRelationRefNodePtr> m_active_constraints; ///< global set of active constrains
HMscPathDuplicator m_duplicator;
-//////////// attribute handler
- // ADD
- void add_local_active_constraints(HMscNode* n)
+
+/////// BEGIN attribute handler
+ /// add global set of open time constraints to the ReferenceNode
+ void add_local_active_constraints(ReferenceNode* n)
{
n->set_attribute<TimeRelationRefNodePtrSet>(m_local_active_constraints,m_active_constraints);
to_be_clean.push(n);
}
- //GET
- TimeRelationRefNodePtrSet get_local_active_constraints(HMscNode* n)
+ /// get set of local active constraints from ReferenceNode
+ TimeRelationRefNodePtrSet get_local_active_constraints(ReferenceNode* n)
{
TimeRelationRefNodePtrSet empty;
if(!(n->is_attribute_set(m_local_active_constraints)))
@@ -76,11 +80,28 @@
return n->get_attribute<TimeRelationRefNodePtrSet>(m_local_active_constraints,empty);
}
+ ///
+ void set_first_find_with(TimeRelationRefNode* n, ReferenceNodePtr ref)
+ {
+ n->set_attribute<ReferenceNodePtr>(m_first_find_with,ref);
+ to_be_clean.push(n);
+ }
+
+ ///
+ ReferenceNodePtr get_first_find_with(TimeRelationRefNode* n)
+ {
+ ReferenceNodePtr ref;
+ if(!(n->is_attribute_set(m_first_find_with)))
+ return ref.get();
+ else
+ return n->get_attribute<ReferenceNodePtr>(m_first_find_with,ref);
+ }
//////// END attribute handler
+ ///
void check_active_set(ReferenceNode* n, TimeRelationRefNodePtrSet set);
protected:
-
+
/**
* Common instance.
*/
@@ -88,10 +109,41 @@
HMscPtr create_counter_example(const MscElementPListList& path);
+ //! Marking functions to highlight (set_marked(true)) in visio
+ void mark_time_relations(const TimeRelationRefNodePtrSet& relations)
+ {
+ TimeRelationRefNodePtrSet::const_iterator it;
+ for(it=relations.begin();it!=relations.end();it++)
+ mark_time_relation(it->get());
+ }
+
+ void mark_time_relation(TimeRelationRefNode* relation)
+ {
+ MscElement * copy;
+ copy = m_duplicator.get_copy(relation);
+ copy->set_marked(true);
+ }
+ /// making path from traverser (set_marked(true))
+ HMscPtr process_path(const MscElementPListList& path)
+ {
+ HMscPtr p;
+ p = m_duplicator.duplicate_path(path);
+
+ MscElementPListList::const_iterator h;
+ for(h=path.begin();h!=path.end();h++)
+ {
+ MscElement* last = (*h).back();
+ m_duplicator.get_copy(last)->set_marked(true);
+ }
+
+ return p;
+ }
+
public:
HMscTimeConstrainChecker(
- const std::string& name="attribute name"
+ const std::string& local="constraints checker, local constrains"
+ ,const std::string& first_find="constraints checker, first find with"
);
~HMscTimeConstrainChecker()
@@ -99,92 +151,135 @@
cleanup_attributes();
}
- /**
- * Human readable name of the property being checked.
- */
- // note: DLL in Windows cannot return pointers to static data
+ /// Human readable name of the property being checked.
virtual std::wstring get_property_name() const
- {
+ {
return L"Time Constraints";
}
- /**
- * Ralative path to a HTML file displayed as help.
- */
+ /// Ralative path to a HTML file displayed as help.
virtual std::wstring get_help_filename() const
{ return L""; }
virtual Checker::PreconditionList get_preconditions(MscPtr msc) const;
- /**
- * Checks whether hmsc satisfy deadlock free property.
- */
+ /// Checks whether hmsc satisfy deadlock free property.
HMscPtr check(HMscPtr hmsc, ChannelMapperPtr chm);
- void on_white_node_found(HMscNode*);
+ void on_white_node_found(ReferenceNode*);
- void on_gray_node_found(HMscNode*);
+ void on_gray_node_found(ReferenceNode*);
- void on_black_node_found(HMscNode*);
+ void on_black_node_found(ReferenceNode*);
- void on_node_finished(HMscNode*);
+ void on_node_finished(ReferenceNode*);
- HMscPtr process_path(const MscElementPListList& path)
+ //! Cleans up no more needed attributes.
+ void cleanup_attributes()
{
- HMscPtr p;
- p = m_duplicator.duplicate_path(path);
+ while(!to_be_clean.empty())
+ {
+ MscElement* n = to_be_clean.top();
+ n->remove_attribute<TimeRelationRefNodePtrSet>(m_local_active_constraints);
+ n->remove_attribute<ReferenceNodePtr>(m_first_find_with);
- MscElementPListList::const_iterator h;
- for(h=path.begin();h!=path.end();h++)
- {
- MscElement* last = (*h).back();
- m_duplicator.get_copy(last)->set_marked(true);
+ to_be_clean.pop();
}
+ }
- return p;
+ /// Supports all mappers
+ bool is_supported(ChannelMapperPtr chm)
+ {
+ return true;
}
- void mark_time_relations(const TimeRelationRefNodePtrSet& relations)
+ static HMscTimeConstrainCheckerPtr instance()
{
- TimeRelationRefNodePtrSet::const_iterator it;
- for(it=relations.begin();it!=relations.end();it++)
- mark_time_relation(it->get());
+ if(!m_instance.get())
+ m_instance = HMscTimeConstrainCheckerPtr(new HMscTimeConstrainChecker());
+ return m_instance;
}
- void mark_time_relation(TimeRelationRefNode* relation)
+};
+
+
+class BMscTimeConstrainChecker:public Checker,public BMscChecker
+{
+private:
+public:
+// Checker interface
+
+ /// Human readable name of the property being checked.
+ virtual std::wstring get_property_name() const
{
- MscElement * copy;
- copy = m_duplicator.get_copy(relation);
- copy->set_marked(true);
+ return L"BMsc Time Constraints Checker";
}
+ /// Ralative path to a HTML file displayed as help.
+ virtual std::wstring get_help_filename() const
+ {
+ return L"";
+ }
+
+ /// Returns a list of preconditions for the check.
+ PreconditionList get_preconditions(MscPtr msc) const
+ {
+ return PreconditionList();
+ };
+
/**
- * Cleans up no more needed attributes.
+ * Removes no more needed attributes.
+ *
+ * Descendat of this class should remove attributes of MscElements that are no
+ * more needed. This method should be called after finish of algorithm.
*/
+ virtual void cleanup_attributes()
+ {
- void cleanup_attributes()
- {
- while(!to_be_clean.empty())
- {
- MscElement* n = to_be_clean.top();
- n->remove_attribute<TimeRelationRefNodePtrSet>(m_local_active_constraints);
- to_be_clean.pop();
- }
}
/**
- * Supports all mappers
+ * Checks whether Checker supports given ChannelMapper.
+ *
+ * Deafult behaviour is false for all mappers, but it is neccessary to check
+ * out this behaviour in individual checkers.
*/
- bool is_supported(ChannelMapperPtr chm)
+ virtual bool is_supported(ChannelMapperPtr chm)
{
return true;
}
- static HMscTimeConstrainCheckerPtr instance()
+ BMscPtr check(BMscPtr bmsc, ChannelMapperPtr mapper)
{
- if(!m_instance.get())
- m_instance = HMscTimeConstrainCheckerPtr(new HMscTimeConstrainChecker());
- return m_instance;
+ EventTopologyHandler events_top(bmsc);
+ BMscAllTimeRelationPtrSet time_relations(bmsc);
+ std::stack<TimeRelationEventPtr> broken_rel;
+ std::set<TimeRelationEventPtr>::iterator rel;
+ for(rel=time_relations.begin();rel!=time_relations.end();rel++)
+ {
+ Event* a = (*rel)->get_event_a();
+ Event* b = (*rel)->get_event_b();
+ if(!events_top.is_leq(a,b)&&!events_top.is_leq(b,a))
+ broken_rel.push(*rel);
+ }
+
+ if(broken_rel.empty())
+ return NULL;
+ else
+ {
+ BMscPtr bmsc_copy;
+ BMscDuplicator duplicator;
+ bmsc_copy = duplicator.duplicate_bmsc(bmsc);
+ while(!broken_rel.empty())
+ {
+ duplicator.get_copy((broken_rel.top()).get())->set_marked(true);
+ broken_rel.pop();
+ }
+ return bmsc_copy;
+ }
}
-};
+ ~BMscTimeConstrainChecker()
+ {
+ }
+};
\ No newline at end of file
Modified: trunk/src/check/time/module.cpp
===================================================================
--- trunk/src/check/time/module.cpp 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/time/module.cpp 2009-11-04 15:11:10 UTC (rev 450)
@@ -25,7 +25,8 @@
{
Checker **result = new Checker* [2];
result[0] = new HMscTimeConstrainChecker();
- result[1] = NULL;
+ result[1] = new BMscTimeConstrainChecker();
+ result[2] = NULL;
return result;
}
Modified: trunk/src/check/time/tightening.cpp
===================================================================
--- trunk/src/check/time/tightening.cpp 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/time/tightening.cpp 2009-11-04 15:11:10 UTC (rev 450)
@@ -30,7 +30,7 @@
IntervalList::iterator it;
for(it=list.begin();it!=list.end();it++)
{
- IntervalMatrixFunc::fill_matrix(matrix,*it,(unsigned)new_i,(unsigned)new_j);
+ matrix.fill((unsigned)new_i,(unsigned)new_j,*it);
if(con_checker->check_consistency(matrix))
m_to_go_matrix(new_i,new_j).insert(*it);
@@ -55,7 +55,7 @@
{
matrix(new_i,new_j) = MscTimeIntervalD(-D::infinity(),D::infinity());
matrix(new_j,new_i) = MscTimeIntervalD(-D::infinity(),D::infinity());
- go_back(matrix,i,j);
+ go_back(matrix,i,j);
}
}
}
@@ -93,14 +93,14 @@
{
j--;
}
- go_back(matrix,i,j);
+ go_back(matrix,i,j);
}
}
void MscSolveTCSP::init(unsigned size)
{
- m_result_matrix.resize(size,size);
- m_to_go_matrix.resize(size,size);
+ m_result_matrix.resize(size);
+ m_to_go_matrix.resize(size);
for(unsigned i=0;i<size;i++)
{
@@ -116,7 +116,7 @@
{
init(m.size1());
m_solve_matrix=m;
- IntervalMatrix matrix(m_solve_matrix.size1(),m_solve_matrix.size2());
+ IntervalMatrix matrix(m_solve_matrix.size1());
for(unsigned i=0;i<m_solve_matrix.size1();i++)
{
for(unsigned j=0;j<m_solve_matrix.size2();j++){
@@ -126,7 +126,7 @@
matrix(i,j)=MscTimeIntervalD(-D::infinity(),D::infinity());
}
- }
+ }
DEBUG(m_solve_matrix);
forward(matrix,0,-1);
Modified: trunk/src/check/time/tightening.h
===================================================================
--- trunk/src/check/time/tightening.h 2009-11-03 00:56:27 UTC (rev 449)
+++ trunk/src/check/time/tightening.h 2009-11-04 15:11:10 UTC (rev 450)
@@ -48,8 +48,39 @@
};
+
*/
+class SCTIME_EXPORT BMscTighter:public Transformer, public BMscTransformer
+{
+
+public:
+ //! Human readable name of the transformation.
+ virtual std::string get_name()
+ {
+ return std::string("BMsc Tigher");
+ }
+
+ //! List of properties that must be satisfied before executing the transformation.
+ typedef std::vector<PrerequisiteCheck> PreconditionList;
+
+ //! Returns a list of preconditions for this transformation.
+ PreconditionList get_preconditions(MscPtr msc) const
+ {
+ return PreconditionList();
+ }
+
+ BMscPtr transform(BMscPtr bmsc)
+ {
+ BMscPtr new_bmsc;
+ return new_bmsc;
+ }
+
+ ~BMscTighter() {}
+};
+
+
+
class SCTIME_EXPORT MscSolveTCSP
{
private:
@@ -66,8 +97,8 @@
public:
MscSolveTCSP():
- tightener(new FloydWarshall()),
- con_checker(new FloydWarshall())
+ tightener(new FloydWarshall()),
+ con_checker(new FloydWarshall())
{
}
@@ -81,150 +112,106 @@
typedef boost::intrusive_ptr<BMscIntervalMatrixConverter*> BMscIntervalMatrixConverterPtr;
/**
- * \brief tightens bMSC
+ * \brief tightens BMsc
*/
+
class TightenBMsc
{
private:
BMscPtr m_bmsc;
- BMscIntervalMatrixConverter m_converter;
- IntervalSetMatrix m_matrix;
+ BMscIntervalSetMatrix m_matrix;
+ EventTopologyHandler m_event_top;
+ AllReachableEventPVector m_events;
- EventPList m_mins;
- EventPList m_maxs;
+ MinimalEventPList m_mins;
+ MaximalEventPList m_maxs;
- int get_number(Event* e)
- {
- return m_converter.get_number(e);
- }
-
bool is_leq(Event* e,Event* f)
{
- return m_converter.is_leq(e,f);
+ return m_event_top.is_leq(e,f);
}
- EventPVector get_events()
+ MscTimeIntervalSetD get_max_interval(BMscIntervalSetMatrix bmsc_matrix)
{
- return m_converter.get_events();
- }
+ MscTimeIntervalSetD max_intrset;
+ MscTimeIntervalSetD evts_intrset;
+ max_intrset.insert(MscTimeIntervalD(0,0));
-public:
+ EventPairsList pairs;
+ EventPList::iterator it_min;
+ EventPList::iterator it_max;
- TightenBMsc(BMscPtr bmsc):m_bmsc(bmsc),m_converter(bmsc)
- {
- m_matrix = m_converter.get_matrix();
- m_mins = find_minimal_events();
- m_maxs = find_maximal_events();
- }
- /**
- * \brief
- */
- EventPList find_minimal_events()
- {
- EventPList minimals;
- EventPVector events = get_events();
- EventPVector::iterator it;
- EventPVector::iterator it_b;
-
- for (it=events.begin();it!=events.end();it++)
+ // for every pair (minimal,maximal) events find max_intrset
+ for (it_min=m_mins.begin();it_min!=m_mins.end();it_min++)
{
- bool is_minimal = true;
- for (it_b=events.begin();it_b!=events.end();it_b++)
+ for (it_max=m_maxs.begin();it_max!=m_maxs.end();it_max++)
{
- if (it_b != it && is_leq(*it_b,*it))
- {
- is_minimal =false;
- break;
- }
-
+ evts_intrset=bmsc_matrix(*it_min,*it_max);
+ max_intrset = MscTimeIntervalSetD::components_max(max_intrset,evts_intrset);
}
- if (is_minimal)
- {
- minimals.push_back(*it);
- }
}
- return minimals;
+ return max_intrset;
}
- /**
- * \brief
- */
- EventPList find_maximal_events()
- {
- EventPList maximals;
- EventPVector events = get_events();
- EventPVector::iterator it;
- EventPVector::iterator it_b;
- for (it=events.begin();it!=events.end();it++)
- {
- bool is_maximal = true;
- for (it_b=events.begin();it_b!=events.end();it_b++)
- {
- if (it_b != it && is_leq(*it,*it_b))
- {
- is_maximal =false;
- break;
- }
+public:
- }
- if (is_maximal)
- {
- maximals.push_back(*it);
- }
- }
- return maximals;
+ TightenBMsc(BMscPtr bmsc):m_bmsc(bmsc),m_matrix(bmsc),m_event_top(bmsc)
+ ,m_events(bmsc),m_mins(bmsc),m_maxs(bmsc)
+ {
}
- /**
- * \brief tightens interval and matrix according to each other
- * \return pair - changed interval and matrix
- */
- ConstMatrixPair max_tightener(
- IntervalSetMatrix t_matrix,
- MscTimeIntervalSetD interval
- )
+ static ConstMatrixPair tight(
+ BMscPtr bmsc
+ ,MscTimeIntervalSetD interval)
{
+ TightenBMsc tightening(bmsc);
+ ConstMatrixPair pair = tightening.tighten_msc(interval);
+ //tightening.modificate(pair.second);
+ return pair;
+ }
- MscTimeIntervalSetD max_intrset;
- MscTimeIntervalSetD evts_intrset;
- max_intrset.insert(MscTimeIntervalD(0,0));
+ //! tight BMsc due to interval
+ ConstMatrixPair tighten_msc(MscTimeIntervalSetD interval)
+ {
- EventPairsList pairs;
+ MscSolveTCSP solve;
+ BMscIntervalSetMatrix old_matrix(m_matrix);
+ BMscIntervalSetMatrix current_matrix(m_matrix);
- EventPList::iterator it_min;
- EventPList::iterator it_max;
-
- // for every pair (minimal,maximal) events
- ...
[truncated message content] |
|
From: <koc...@us...> - 2009-11-04 15:31:03
|
Revision: 451
http://scstudio.svn.sourceforge.net/scstudio/?rev=451&view=rev
Author: kocianon
Date: 2009-11-04 15:30:52 +0000 (Wed, 04 Nov 2009)
Log Message:
-----------
compiler fix
Modified Paths:
--------------
trunk/src/check/time/tightening.cpp
trunk/src/check/time/tightening.h
trunk/tests/CMakeLists.txt
Modified: trunk/src/check/time/tightening.cpp
===================================================================
--- trunk/src/check/time/tightening.cpp 2009-11-04 15:11:10 UTC (rev 450)
+++ trunk/src/check/time/tightening.cpp 2009-11-04 15:30:52 UTC (rev 451)
@@ -1,4 +1,4 @@
-#include "tightening.h"
+#include "check/time/tightening.h"
void MscSolveTCSP::forward(IntervalMatrix matrix,int i, int j)
{
Modified: trunk/src/check/time/tightening.h
===================================================================
--- trunk/src/check/time/tightening.h 2009-11-04 15:11:10 UTC (rev 450)
+++ trunk/src/check/time/tightening.h 2009-11-04 15:30:52 UTC (rev 451)
@@ -50,8 +50,8 @@
};
*/
-
-class SCTIME_EXPORT BMscTighter:public Transformer, public BMscTransformer
+/*
+class BMscTighter//:public Transformer, public BMscTransformer
{
public:
@@ -79,8 +79,8 @@
~BMscTighter() {}
};
+*/
-
class SCTIME_EXPORT MscSolveTCSP
{
private:
Modified: trunk/tests/CMakeLists.txt
===================================================================
--- trunk/tests/CMakeLists.txt 2009-11-04 15:11:10 UTC (rev 450)
+++ trunk/tests/CMakeLists.txt 2009-11-04 15:30:52 UTC (rev 451)
@@ -186,15 +186,15 @@
# scpseudocode
# )
-ADD_EXECUTABLE(constrain_check_test
- constrain_check_test.cpp
-)
+#ADD_EXECUTABLE(constrain_check_test
+# constrain_check_test.cpp
+#)
-TARGET_LINK_LIBRARIES(constrain_check_test
- scmsc
- sctime
- scpseudocode
-)
+#TARGET_LINK_LIBRARIES(constrain_check_test
+# scmsc
+# sctime
+# scpseudocode
+#)
#
#ADD_EXECUTABLE(max_tightener_test
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-11-09 00:36:12
|
Revision: 454
http://scstudio.svn.sourceforge.net/scstudio/?rev=454&view=rev
Author: madzin
Date: 2009-11-09 00:36:04 +0000 (Mon, 09 Nov 2009)
Log Message:
-----------
Fix of one error message
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/tests/z120_test/z120_test42.mpr.result
trunk/tests/z120_test/z120_test56.mpr.result
Added Paths:
-----------
trunk/tests/z120_test/z120_test86.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-11-04 21:33:49 UTC (rev 453)
+++ trunk/src/data/Z120/Context.cpp 2009-11-09 00:36:04 UTC (rev 454)
@@ -749,8 +749,9 @@
std::map<std::string, EventPtr>::iterator named_event_it;
CoregionEventPtr event = boost::dynamic_pointer_cast<CoregionEvent>(context->current_event);
if(event == NULL){
- context->z->print_report(RS_ERROR, L"Internal Error 13: Typecast failed\n");
- exit(13);
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 13: Event of " << context->current_event->get_message()->get_label() << " message is not in coregion");
+
+ return;
}
for(it = context->order_events.begin(); it != context->order_events.end(); ++it){
if((named_event_it = context->named_events.find(*it)) != context->named_events.end()){
Modified: trunk/tests/z120_test/z120_test42.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test42.mpr.result 2009-11-04 21:33:49 UTC (rev 453)
+++ trunk/tests/z120_test/z120_test42.mpr.result 2009-11-09 00:36:04 UTC (rev 454)
@@ -1,7 +1,12 @@
z120_test42.mpr[11,0] Cannot match to any predicted input.
+z120_test42.mpr[11,0] Cannot match to any predicted input.
+z120_test42.mpr[11,13] Cannot match to any predicted input.
+Warning 05: Complete message (no,0) with only one event
+Warning 05: Complete message (ok,1) with only one event
z120_test42.mpr[30,0] Cannot match to any predicted input.
-Warning 09: There is reference to nonexisted MSC
-
+z120_test42.mpr[30,0] Cannot match to any predicted input.
+Warning 05: Complete message (yes,0) with only one event
+Warning 02: Unreferenced MSC: Strnka1, bmsc3
OK: z120_test42 is correct, should be correct
mscdocument z120_test42;
@@ -10,6 +15,19 @@
L0: reference bmsc1 connect L1;
L1: final;
endmsc;
+msc bmsc3;
+inst B;
+B: instance;
+out no,0 to lost;
+in ok,1 from found;
+endinstance;
+endmsc;
+msc bmsc1;
+inst B;
+B: instance;
+in yes,0 from found;
+endinstance;
+endmsc;
msc bmsc2;
inst A;
inst B;
@@ -20,5 +38,3 @@
out no,0 to A;
endinstance;
endmsc;
-msc bmsc1;
-endmsc;
Modified: trunk/tests/z120_test/z120_test56.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test56.mpr.result 2009-11-04 21:33:49 UTC (rev 453)
+++ trunk/tests/z120_test/z120_test56.mpr.result 2009-11-09 00:36:04 UTC (rev 454)
@@ -1,7 +1,8 @@
z120_test56.mpr[11,0] Cannot match to any predicted input.
-Warning 05: There is complete message with only one event
-Warning 09: There is reference to nonexisted MSC
-
+z120_test56.mpr[11,0] Cannot match to any predicted input.
+z120_test56.mpr[11,13] Cannot match to any predicted input.
+Warning 05: Complete message (no,0) with only one event
+Warning 05: Complete message (ok,1) with only one event
OK: z120_test56 is correct, should be correct
mscdocument z120_test56;
Added: trunk/tests/z120_test/z120_test86.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test86.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_test86.mpr.result 2009-11-09 00:36:04 UTC (rev 454)
@@ -0,0 +1,26 @@
+Warning 13: Event of a message is not in coregion
+Warning 06: Dependency on nonexisting event
+
+Warning 07: Reference to nonexisting event
+
+OK: z120_test86 is correct, should be correct
+
+mscdocument z120_test86;
+msc Stranka1;
+inst NAME1;
+inst NAME2;
+NAME1: instance;
+concurrent;
+label e0;
+;
+in a,0 from NAME2;
+in a,1 from found before e1;
+label e1;
+out b,2 to NAME2 before e0;
+endconcurrent;
+endinstance;
+NAME2: instance;
+out a,0 to NAME1;
+in b,2 from NAME1;
+endinstance;
+endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-11-13 20:40:42
|
Revision: 456
http://scstudio.svn.sourceforge.net/scstudio/?rev=456&view=rev
Author: gotthardp
Date: 2009-11-13 20:40:28 +0000 (Fri, 13 Nov 2009)
Log Message:
-----------
Fixed problems detected on the Win32 platform.
Modified Paths:
--------------
trunk/src/check/pseudocode/msc_duplicators.h
trunk/src/data/dfs_hmsc_flat_traverser.cpp
trunk/src/data/dfs_hmsc_flat_traverser.h
Property Changed:
----------------
trunk/src/data/dfs_hmsc_flat_traverser.cpp
trunk/src/data/dfs_hmsc_flat_traverser.h
trunk/tests/z120_test/z120_test66.mpr.result
trunk/tests/z120_test/z120_test70.mpr.result
trunk/tests/z120_test/z120_test77.mpr.result
trunk/tests/z120_test/z120_test78.mpr.result
trunk/tests/z120_test/z120_test79.mpr.result
trunk/tests/z120_test/z120_test80.mpr.result
trunk/tests/z120_test/z120_test81.mpr.result
trunk/tests/z120_test/z120_test82.mpr.result
trunk/tests/z120_test/z120_test84.mpr
trunk/tests/z120_test/z120_test84.mpr.result
trunk/tests/z120_test/z120_test85.mpr
trunk/tests/z120_test/z120_test85.mpr.result
trunk/tests/z120_test/z120_test86.mpr
trunk/tests/z120_test/z120_test86.mpr.result
trunk/tests/z120_test/z120_time16.mpr
trunk/tests/z120_test/z120_time16.mpr.result
trunk/tests/z120_test/z120_time17.mpr
trunk/tests/z120_test/z120_time17.mpr.result
trunk/tests/z120_test/z120_time18.mpr
trunk/tests/z120_test/z120_time18.mpr.result
trunk/tests/z120_test/z120_time19.mpr
trunk/tests/z120_test/z120_time19.mpr.result
Modified: trunk/src/check/pseudocode/msc_duplicators.h
===================================================================
--- trunk/src/check/pseudocode/msc_duplicators.h 2009-11-13 17:17:17 UTC (rev 455)
+++ trunk/src/check/pseudocode/msc_duplicators.h 2009-11-13 20:40:28 UTC (rev 456)
@@ -182,7 +182,7 @@
HMscFlatDuplicator()
{}
- HMscFlatDuplicator(InnerHMscFoundListener* l=NULL):m_hmsc_listener(l)
+ HMscFlatDuplicator(InnerHMscFoundListener* l):m_hmsc_listener(l)
{}
HMscPtr duplicate(HMscPtr hmsc);
@@ -211,8 +211,11 @@
public:
- HMscDuplicator():m_duplicator(this)
- {}
+ HMscDuplicator()
+ {
+ // note: in Visual Studio, 'this' cannot be used in the base member initializer list
+ m_duplicator = this;
+ }
HMscPtr duplicate(HMscPtr hmsc);
Modified: trunk/src/data/dfs_hmsc_flat_traverser.cpp
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.cpp 2009-11-13 17:17:17 UTC (rev 455)
+++ trunk/src/data/dfs_hmsc_flat_traverser.cpp 2009-11-13 20:40:28 UTC (rev 456)
@@ -1,3 +1,21 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2009 Ondrej Kocian <koc...@ma...>
+ *
+ * $Id$
+ */
+
#include "data/dfs_hmsc_flat_traverser.h"
bool DFSHMscFlatTraverser::traverse_reference_node(ReferenceNode* ref)
@@ -39,4 +57,6 @@
{
DFSBMscGraphTraverser::cleanup_traversing_attributes();
m_finder.cleanup_traversing_attributes();
-}
\ No newline at end of file
+}
+
+// $Id$
Property changes on: trunk/src/data/dfs_hmsc_flat_traverser.cpp
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/src/data/dfs_hmsc_flat_traverser.h
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-13 17:17:17 UTC (rev 455)
+++ trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-13 20:40:28 UTC (rev 456)
@@ -13,7 +13,7 @@
*
* Copyright (c) 2009 Ondrej Kocian <koc...@ma...>
*
- * $Id:
+ * $Id$
*/
#ifndef _DFS_HMSC_FLAT_TRAVERSER_H
@@ -57,7 +57,7 @@
typedef InnerHMscFoundListener* InnerHMscFoundListenerP;
typedef std::list<InnerHMscFoundListenerP> InnerHMscFoundListenerPList;
-class DFSHMscFlatTraverser:public DFSBMscGraphTraverser
+class SCMSC_EXPORT DFSHMscFlatTraverser:public DFSBMscGraphTraverser
{
//! list of listeners
InnerHMscFoundListenerPList m_inner_hmsc_listeners;
@@ -105,6 +105,6 @@
};
+#endif //_DFS_HMSC_FLAT_TRAVERSER_H
-
-#endif //_DFS_HMSC_FLAT_TRAVERSER_H
\ No newline at end of file
+// $Id$
Property changes on: trunk/src/data/dfs_hmsc_flat_traverser.h
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test66.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test70.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test77.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test78.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test79.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test80.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test81.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test82.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test84.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test84.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test85.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test85.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test86.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_test86.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time16.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time16.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time17.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time17.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time18.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time18.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time19.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Property changes on: trunk/tests/z120_test/z120_time19.mpr.result
___________________________________________________________________
Added: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-11-16 21:28:57
|
Revision: 463
http://scstudio.svn.sourceforge.net/scstudio/?rev=463&view=rev
Author: gotthardp
Date: 2009-11-16 21:28:32 +0000 (Mon, 16 Nov 2009)
Log Message:
-----------
Fix the last GCC warnings.
Modified Paths:
--------------
trunk/src/data/beautify/instance_sequencer.cpp
trunk/tests/checker_test.cpp
Modified: trunk/src/data/beautify/instance_sequencer.cpp
===================================================================
--- trunk/src/data/beautify/instance_sequencer.cpp 2009-11-16 17:25:30 UTC (rev 462)
+++ trunk/src/data/beautify/instance_sequencer.cpp 2009-11-16 21:28:32 UTC (rev 463)
@@ -46,8 +46,6 @@
id++;
}
- int id_max = 0;
-
traverser.add_white_event_found_listener(&inst_listener);
for(it = instances.begin(); it != instances.end();it++)
{
Modified: trunk/tests/checker_test.cpp
===================================================================
--- trunk/tests/checker_test.cpp 2009-11-16 17:25:30 UTC (rev 462)
+++ trunk/tests/checker_test.cpp 2009-11-16 21:28:32 UTC (rev 463)
@@ -95,9 +95,17 @@
return 1;
}
- FInitCheckers init_checkers = (FInitCheckers)LIBRARY_SYMBOL(module, "init_checkers");
- if(init_checkers == NULL)
+ // note: this is a nasty hack to avoid the gcc warning:
+ // ISO C++ forbids casting between pointer-to-function and pointer-to-object
+ union
{
+ void *pointer;
+ FInitCheckers function;
+ } init_checkers;
+
+ init_checkers.pointer = LIBRARY_SYMBOL(module, "init_checkers");
+ if(init_checkers.pointer == NULL)
+ {
std::cerr << "ERROR: Initializer not found in " << argv[1] << std::endl;
LIBRARY_CLOSE(module);
return 1;
@@ -138,7 +146,7 @@
try
{
- MscPtr result = run_check(init_checkers, argv[2], msc[0]);
+ MscPtr result = run_check(init_checkers.function, argv[2], msc[0]);
if(result == NULL)
{
if(satisfied)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-11-17 13:37:06
|
Revision: 465
http://scstudio.svn.sourceforge.net/scstudio/?rev=465&view=rev
Author: gotthardp
Date: 2009-11-17 13:36:54 +0000 (Tue, 17 Nov 2009)
Log Message:
-----------
Fixed memory checking of Z.120 tests. Fixed a minor gcc warning.
Modified Paths:
--------------
trunk/src/data/dfs_hmsc_flat_traverser.h
trunk/tests/z120_test/z120_diff.py
Modified: trunk/src/data/dfs_hmsc_flat_traverser.h
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-17 12:09:45 UTC (rev 464)
+++ trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-17 13:36:54 UTC (rev 465)
@@ -89,12 +89,15 @@
class SCMSC_EXPORT TraverseHMscStartListener
{
public:
+ virtual ~TraverseHMscStartListener() {}
+
virtual void on_hmsc_traverse_start(HMscPtr)=0;
};
class SCMSC_EXPORT TraverseHMscFinishListener
{
public:
+ virtual ~TraverseHMscFinishListener() {}
virtual void on_hmsc_traverse_finish(HMscPtr)=0;
};
Modified: trunk/tests/z120_test/z120_diff.py
===================================================================
--- trunk/tests/z120_test/z120_diff.py 2009-11-17 12:09:45 UTC (rev 464)
+++ trunk/tests/z120_test/z120_diff.py 2009-11-17 13:36:54 UTC (rev 465)
@@ -10,16 +10,23 @@
sys.exit(exit)
else:
- f = open(sys.argv[2] + ".result", "rt")
+ expected_output = open(sys.argv[2] + ".result", "rt")
- result = difflib.unified_diff(f.readlines(), p.stderr.readlines()+ p.stdout.readlines())
+ output = p.stderr.readlines() + p.stdout.readlines()
+ # print the output as it may contain valgrind error reports
+ for line in output:
+ print line,
- error = False
- for line in result:
+ result = difflib.unified_diff(expected_output.readlines(), output)
+ result_lines = 0
+ # print the differences between the real and the expected output
+ for line in result:
+ if result_lines == 0:
+ print "----------------------------------------------------------"
+
print line,
- error = True
+ result_lines = result_lines + 1
- sys.exit(error)
+ sys.exit(result_lines)
-
# $Id: z120_test.cpp 298 2009-09-09 20:20:52Z madzin $
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <koc...@us...> - 2009-11-17 19:16:14
|
Revision: 466
http://scstudio.svn.sourceforge.net/scstudio/?rev=466&view=rev
Author: kocianon
Date: 2009-11-17 19:16:07 +0000 (Tue, 17 Nov 2009)
Log Message:
-----------
new constraint checker
Modified Paths:
--------------
trunk/src/check/time/constrain_check.cpp
trunk/src/check/time/constrain_check.h
trunk/src/check/time/module.cpp
trunk/src/data/dfs_hmsc_flat_traverser.cpp
trunk/src/data/dfs_hmsc_flat_traverser.h
trunk/tests/time_constraints/CMakeLists.txt
Modified: trunk/src/check/time/constrain_check.cpp
===================================================================
--- trunk/src/check/time/constrain_check.cpp 2009-11-17 13:36:54 UTC (rev 465)
+++ trunk/src/check/time/constrain_check.cpp 2009-11-17 19:16:07 UTC (rev 466)
@@ -2,13 +2,64 @@
#include "data/dfs_refnode_hmsc_traverser.h"
#include "check/pseudocode/utils.h"
-HMscTimeConstrainCheckerPtr HMscTimeConstrainChecker::m_instance;
+ void ConstraintsChecker::on_new_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode)
+ {
+ BMscTimeConstrainChecker bmsc_checker;
+ if(bmsc_checker.check_copy(bmsc))
+ {
+ m_changed=true;
+ refNode->set_marked(true);
+ }
+ }
+ void ConstraintsChecker::on_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode)
+ {
+ }
+ void ConstraintsChecker::on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
+ {
+ HMscTimeConstrainChecker hmsc_checker("HConstraintsChecker a", "HConstraintsChecker b");
+ if(hmsc_checker.check_copy(hmsc) && refNode)
+ {
+ m_changed=true;
+ refNode->set_marked(true);
+ }
+ }
+ void ConstraintsChecker::on_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
+ {
+ }
+HMscPtr ConstraintsChecker::check(HMscPtr hmsc, ChannelMapperPtr mapper)
+ {
+ DFSHMscFlatTraverser traverser;
+ DFSHMscsTraverse tra(&traverser);
+ traverser.add_inner_bmsc_listener(this);
+ traverser.add_inner_hmsc_listener(this);
+ m_original = hmsc;
+
+ HMscDuplicator duplicator;
+ HMscPtr m_copy = duplicator.duplicate(m_original);
+ tra.traverse(m_copy);
+ if(!m_changed)
+ return NULL;
+ return m_copy;
+ }
+
+ BMscPtr ConstraintsChecker::check(BMscPtr bmsc, ChannelMapperPtr mapper)
+ {
+ BMscPtr ret;
+ BMscTimeConstrainChecker checker;
+ ret = checker.check(bmsc, mapper);
+ return ret;
+ }
+
+////////////////////////////////////////////
+
+HMscTimeConstrainCheckerPtr HMscTimeConstrainChecker::m_instance;
+
HMscTimeConstrainChecker::HMscTimeConstrainChecker(
const std::string& local
,const std::string& first_find
@@ -58,9 +109,7 @@
void HMscTimeConstrainChecker::mark_time_relation(TimeRelationRefNode* relation)
{
- MscElement * copy;
- copy = m_duplicator.get_copy(relation);
- copy->set_marked(true);
+ relation->set_marked(true);
}
/** updating global set of active constraints (m_active_constraints)
@@ -124,7 +173,9 @@
check_active_set(n,constraint_set);
if(m_active_constraints.size()!=0 && IsEndingNode::check(n))
- throw m_active_constraints;
+ {
+ m_broken_rel.insert(m_active_constraints.begin(),m_active_constraints.end());
+ }
}
void HMscTimeConstrainChecker::on_gray_node_found(ReferenceNode* n)
@@ -134,9 +185,19 @@
constraints_set = get_local_active_constraints(n);
if(constraints_set!=m_active_constraints)
{
- TimeRelationRefNodePtrSet error(m_active_constraints);
- error.insert(constraints_set.begin(),constraints_set.end());
- throw error;
+ std::set<TimeRelationRefNodePtr> error(constraints_set);
+ std::set<TimeRelationRefNodePtr>::iterator it;
+ std::set<TimeRelationRefNodePtr>::iterator inside;
+ for(it=m_active_constraints.begin();it!=m_active_constraints.end();it++)
+ {
+ std::pair<std::set<TimeRelationRefNodePtr>::iterator,bool> is_there;
+ is_there = error.insert(*it);
+ if(!is_there.second)
+ {
+ error.erase(is_there.first);
+ }
+ }
+ m_broken_rel.insert(error.begin(),error.end());
}
}
@@ -147,9 +208,19 @@
constraints_set = get_local_active_constraints(n);
if(constraints_set!=m_active_constraints)
{
- TimeRelationRefNodePtrSet error(m_active_constraints);
- error.insert(constraints_set.begin(),constraints_set.end());
- throw error;
+ std::set<TimeRelationRefNodePtr> error(constraints_set);
+ std::set<TimeRelationRefNodePtr>::iterator it;
+ std::set<TimeRelationRefNodePtr>::iterator inside;
+ for(it=m_active_constraints.begin();it!=m_active_constraints.end();it++)
+ {
+ std::pair<std::set<TimeRelationRefNodePtr>::iterator,bool> is_there;
+ is_there = error.insert(*it);
+ if(!is_there.second)
+ {
+ error.erase(is_there.first);
+ }
+ }
+ m_broken_rel.insert(error.begin(),error.end());
}
}
@@ -164,34 +235,51 @@
return L"Time Constraints";
}
-HMscPtr HMscTimeConstrainChecker::check(HMscPtr hmsc, ChannelMapperPtr chm)
+void HMscTimeConstrainChecker::pick_up_broken_rel()
{
- HMscPtr p;
DFSRefNodeFlatHMscTraverser traverser;
traverser.add_white_node_found_listener(this);
traverser.add_gray_node_found_listener(this);
traverser.add_black_node_found_listener(this);
traverser.add_node_finished_listener(this);
- try
+
+ traverser.traverse(m_hmsc);
+}
+
+HMscPtr HMscTimeConstrainChecker::check(HMscPtr hmsc, ChannelMapperPtr chm)
+{
+ m_hmsc = hmsc;
+ HMscPtr p;
+ pick_up_broken_rel();
+ if(m_broken_rel.empty())
+ return NULL;
+
+ p = m_duplicator.duplicate(hmsc);
+ std::set<TimeRelationRefNodePtr>::iterator it;
+ std::set<TimeRelationRefNodePtr> copies;
+ for(it=m_broken_rel.begin();it!=m_broken_rel.end();it++)
{
- traverser.traverse(hmsc);
+ TimeRelationRefNodePtr copy;
+ copy = static_cast<TimeRelationRefNode*>( m_duplicator.get_copy(it->get()));
+ copies.insert(copy);
}
- catch (TimeRelationRefNode* relation)
- {
- p = m_duplicator.duplicate(hmsc);
- mark_time_relation(relation);
- }
- catch (TimeRelationRefNodePtrSet relations)
- {
- p = m_duplicator.duplicate(hmsc);
- mark_time_relations(relations);
- }
+ mark_time_relations(copies);
- traverser.cleanup_traversing_attributes();
- m_duplicator.cleanup_attributes();
return p;
}
+bool HMscTimeConstrainChecker::check_copy(HMscPtr hmsc)
+{
+ pick_up_broken_rel();
+
+ if(!m_broken_rel.empty())
+ return false;
+
+ mark_time_relations(m_broken_rel);
+
+ return true;
+}
+
void HMscTimeConstrainChecker::cleanup_attributes()
{
while(!to_be_clean.empty())
@@ -204,6 +292,8 @@
}
}
+
+
Checker::PreconditionList HMscTimeConstrainChecker::get_preconditions(MscPtr msc) const
{
Checker::PreconditionList result;
@@ -211,10 +301,23 @@
return result;
}
-BMscPtr BMscTimeConstrainChecker::check(BMscPtr bmsc, ChannelMapperPtr mapper)
+///////////////////////////////////////////////////////////
+
+
+ std::wstring BMscTimeConstrainChecker::get_property_name() const
{
- EventTopologyHandler events_top(bmsc);
- BMscAllTimeRelationPtrSet time_relations(bmsc);
+ return L"BMsc Time Constraints Checker";
+ }
+
+ std::wstring BMscTimeConstrainChecker::get_help_filename() const
+ {
+ return L"";
+ }
+
+void BMscTimeConstrainChecker::pick_up_broken_rel()
+{
+ EventTopologyHandler events_top(m_bmsc);
+ BMscAllTimeRelationPtrSet time_relations(m_bmsc);
std::stack<TimeRelationEventPtr> broken_rel;
std::set<TimeRelationEventPtr>::iterator rel;
for(rel=time_relations.begin();rel!=time_relations.end();rel++)
@@ -222,20 +325,27 @@
Event* a = (*rel)->get_event_a();
Event* b = (*rel)->get_event_b();
if(!events_top.is_leq(a,b)&&!events_top.is_leq(b,a))
- broken_rel.push(*rel);
+ m_broken_rel.push(*rel);
}
- if(broken_rel.empty())
+}
+
+BMscPtr BMscTimeConstrainChecker::check(BMscPtr bmsc, ChannelMapperPtr mapper)
+ {
+ m_bmsc = bmsc;
+ pick_up_broken_rel();
+ if(m_broken_rel.empty())
return NULL;
else
{
BMscPtr bmsc_copy;
BMscDuplicator duplicator;
bmsc_copy = duplicator.duplicate_bmsc(bmsc);
- while(!broken_rel.empty())
+
+ while(!m_broken_rel.empty())
{
- duplicator.get_copy((broken_rel.top()).get())->set_marked(true);
- broken_rel.pop();
+ duplicator.get_copy((m_broken_rel.top()).get())->set_marked(true);
+ m_broken_rel.pop();
}
return bmsc_copy;
}
Modified: trunk/src/check/time/constrain_check.h
===================================================================
--- trunk/src/check/time/constrain_check.h 2009-11-17 13:36:54 UTC (rev 465)
+++ trunk/src/check/time/constrain_check.h 2009-11-17 19:16:07 UTC (rev 466)
@@ -22,10 +22,10 @@
#include <exception>
#include "check/time/export.h"
+#include "data/dfs_hmsc_flat_traverser.h"
#include "data/checker.h"
#include "data/msc.h"
#include "check/pseudocode/msc_duplicators.h"
-#include "data/dfs_hmsc_flat_traverser.h"
#include "check/pseudocode/utils.h"
#include "check/time/time_pseudocode.h"
@@ -45,47 +45,60 @@
}
};
*/
-/*
+
+class BMscTimeConstrainChecker;
+class HMscTimeConstrainChecker;
+
class ConstraintsChecker:
public Checker
, public HMscChecker
+ , public BMscChecker
, public InnerBMscFoundListener
, public InnerHMscFoundListener
{
private:
- DFSHMscsFlatTraverser m_tra;
- DFSHMscFlatTraverser m_traverser;
- HMscTimeConstrainChecker m_hmsc_checker;
- BMscTimeConstrainChecker m_bmsc_checker;
+ HMscPtr m_copy;
+ HMscPtr m_original;
+ bool m_changed;
public:
- ConstraintsChecker():m_tra(m_traverser)
- {
+ ConstraintsChecker(): m_changed(false)
+ {}
- }
+ BMscPtr check(BMscPtr, ChannelMapperPtr);
+ HMscPtr check(HMscPtr, ChannelMapperPtr);
+
- HMscPtr check(HMscPtr hmsc)
+ void on_new_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode);
+ void on_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode);
+ void on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode);
+ void on_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode);
+
+ std::wstring get_property_name() const
{
- HMscPtr corupt;
-
- return corupt;
+ return L"Constraints Check";
}
-
- void on_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode)
+ std::wstring get_help_filename() const
{
- BMscTimeConstrainChecker bmsc_checker;
- BMscPtr bmsc=bmsc_checker.check(bmsc);
- if(bmsc)
- m_bmsc_constraint_errors.push_back(bmsc);
+ return L"";
}
- void on_new_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode)
+Checker::PreconditionList get_preconditions(MscPtr msc) const
+{
+ Checker::PreconditionList result;
+ // no preconditions
+ return result;
+}
+
+ void cleanup_attributes(){}
+
+ bool is_supported(ChannelMapperPtr chm)
{
-
+ return true;
}
};
-*/
+
class SCTIME_EXPORT HMscTimeConstrainChecker:
public Checker
, public HMscChecker
@@ -100,6 +113,8 @@
std::stack<MscElement*> to_be_clean; ///< stack of items with atribute
std::set<TimeRelationRefNodePtr> m_active_constraints; ///< global set of active constrains
HMscFlatDuplicator m_duplicator;
+ std::set<TimeRelationRefNodePtr> m_broken_rel;
+ HMscPtr m_hmsc;
/////// BEGIN attribute handler
/// add global set of open time constraints to the ReferenceNode
@@ -112,6 +127,7 @@
///
void check_active_set(ReferenceNode* n, TimeRelationRefNodePtrSet set);
+ void pick_up_broken_rel();
protected:
/**
@@ -145,6 +161,7 @@
/// Checks whether hmsc satisfy deadlock free property.
HMscPtr check(HMscPtr hmsc, ChannelMapperPtr chm);
+ bool check_copy(HMscPtr hmsc);
void on_white_node_found(ReferenceNode*);
void on_gray_node_found(ReferenceNode*);
@@ -168,51 +185,44 @@
class BMscTimeConstrainChecker:public Checker,public BMscChecker
{
private:
+ std::stack<TimeRelationEventPtr> m_broken_rel;
+ BMscPtr m_bmsc;
+ void pick_up_broken_rel();
public:
// Checker interface
- /// Human readable name of the property being checked.
- virtual std::wstring get_property_name() const
+ std::wstring get_property_name() const;
+ std::wstring get_help_filename() const;
+ PreconditionList get_preconditions(MscPtr msc) const
{
- return L"BMsc Time Constraints Checker";
+ return PreconditionList();
}
- /// Ralative path to a HTML file displayed as help.
- virtual std::wstring get_help_filename() const
+ virtual void cleanup_attributes(){}
+
+ virtual bool is_supported(ChannelMapperPtr chm)
{
- return L"";
+ return true;
}
- /// Returns a list of preconditions for the check.
- PreconditionList get_preconditions(MscPtr msc) const
+ BMscPtr check(BMscPtr bmsc, ChannelMapperPtr mapper);
+ //bool - incorrect relation has been found
+ bool check_copy(BMscPtr bmsc)
{
- return PreconditionList();
- };
+ m_bmsc = bmsc;
+ pick_up_broken_rel();
+ if(m_broken_rel.empty())
+ return false;
- /**
- * Removes no more needed attributes.
- *
- * Descendat of this class should remove attributes of MscElements that are no
- * more needed. This method should be called after finish of algorithm.
- */
- virtual void cleanup_attributes()
- {
+ while(!m_broken_rel.empty())
+ {
+ ((m_broken_rel.top()).get())->set_marked(true);
+ m_broken_rel.pop();
+ }
- }
-
- /**
- * Checks whether Checker supports given ChannelMapper.
- *
- * Deafult behaviour is false for all mappers, but it is neccessary to check
- * out this behaviour in individual checkers.
- */
- virtual bool is_supported(ChannelMapperPtr chm)
- {
return true;
}
- BMscPtr check(BMscPtr bmsc, ChannelMapperPtr mapper);
-
~BMscTimeConstrainChecker()
{
}
Modified: trunk/src/check/time/module.cpp
===================================================================
--- trunk/src/check/time/module.cpp 2009-11-17 13:36:54 UTC (rev 465)
+++ trunk/src/check/time/module.cpp 2009-11-17 19:16:07 UTC (rev 466)
@@ -23,10 +23,9 @@
extern "C" SCTIME_EXPORT
Checker** init_checkers()
{
- Checker **result = new Checker* [3];
- result[0] = new HMscTimeConstrainChecker();
- result[1] = new BMscTimeConstrainChecker();
- result[2] = NULL;
+ Checker **result = new Checker* [2];
+ result[0] = new ConstraintsChecker();
+ result[1] = NULL;
return result;
}
Modified: trunk/src/data/dfs_hmsc_flat_traverser.cpp
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.cpp 2009-11-17 13:36:54 UTC (rev 465)
+++ trunk/src/data/dfs_hmsc_flat_traverser.cpp 2009-11-17 19:16:07 UTC (rev 466)
@@ -71,12 +71,12 @@
}
/////////////////////////////////////////////////
-void DFSHMscsFlatTraverser::set_hmsc_parent(HMscPtr children)
+void DFSHMscsTraverse::set_hmsc_parent(HMscPtr children)
{
children->set_attribute<HMscPtr>(m_hmsc_parent,m_active_hmsc);
}
- HMscPtr DFSHMscsFlatTraverser::get_hmsc_parent(HMscPtr hmsc)
+ HMscPtr DFSHMscsTraverse::get_hmsc_parent(HMscPtr hmsc)
{
if(!(hmsc->is_attribute_set(m_hmsc_parent)))
return NULL;
@@ -84,7 +84,7 @@
return hmsc->get_attribute<HMscPtr>(m_hmsc_parent,NULL);
}
- void DFSHMscsFlatTraverser::hmsc_start(HMscPtr h)
+ void DFSHMscsTraverse::hmsc_start(HMscPtr h)
{
TraverseHMscStartListenerPList::iterator it;
for(it=m_hmsc_start_listeners.begin();it!=m_hmsc_start_listeners.end();it++)
@@ -92,7 +92,7 @@
}
- void DFSHMscsFlatTraverser::hmsc_finished(HMscPtr h)
+ void DFSHMscsTraverse::hmsc_finished(HMscPtr h)
{
TraverseHMscFinishListenerPList::iterator it;
for(it=m_hmsc_finish_listeners.begin();it!=m_hmsc_finish_listeners.end();it++)
@@ -100,23 +100,23 @@
}
- void DFSHMscsFlatTraverser::add_hmsc_finish_listener(TraverseHMscFinishListenerP l)
+ void DFSHMscsTraverse::add_hmsc_finish_listener(TraverseHMscFinishListenerP l)
{
m_hmsc_finish_listeners.push_back(l);
}
- void DFSHMscsFlatTraverser::remove_hmsc_finish_listeners()
+ void DFSHMscsTraverse::remove_hmsc_finish_listeners()
{
m_hmsc_finish_listeners.erase(
m_hmsc_finish_listeners.begin(),m_hmsc_finish_listeners.end());
}
- void DFSHMscsFlatTraverser::add_hmsc_start_listener(TraverseHMscStartListenerP l)
+ void DFSHMscsTraverse::add_hmsc_start_listener(TraverseHMscStartListenerP l)
{
m_hmsc_start_listeners.push_back(l);
}
- void DFSHMscsFlatTraverser::remove_hmsc_start_listeners()
+ void DFSHMscsTraverse::remove_hmsc_start_listeners()
{
m_hmsc_start_listeners.erase(
m_hmsc_start_listeners.begin(),m_hmsc_start_listeners.end());
Modified: trunk/src/data/dfs_hmsc_flat_traverser.h
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-17 13:36:54 UTC (rev 465)
+++ trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-17 19:16:07 UTC (rev 466)
@@ -49,9 +49,9 @@
}
}
- virtual void on_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)=0;
+ virtual void on_inner_hmsc_found(HMscPtr, ReferenceNode*)=0;
- virtual void on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)=0;
+ virtual void on_new_inner_hmsc_found(HMscPtr, ReferenceNode*)=0;
};
class SCMSC_EXPORT InnerBMscFoundListener
@@ -81,9 +81,9 @@
}
}
- virtual void on_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode)=0;
+ virtual void on_inner_bmsc_found(BMscPtr, ReferenceNode*)=0;
- virtual void on_new_inner_bmsc_found(BMscPtr bmsc, ReferenceNode* refNode)=0;
+ virtual void on_new_inner_bmsc_found(BMscPtr, ReferenceNode*)=0;
};
class SCMSC_EXPORT TraverseHMscStartListener
@@ -175,12 +175,13 @@
void cleanup_traversing_attributes();
};
+
/// Missing clean up
-class SCMSC_EXPORT DFSHMscsFlatTraverser:public InnerHMscFoundListener
+class SCMSC_EXPORT DFSHMscsTraverse:public InnerHMscFoundListener
{
private:
std::stack<HMscPtr> m_to_traverse;
- DFSHMscFlatTraverser m_traverser;
+ DFSHMscFlatTraverser* m_traverser;
HMscPtr m_active_hmsc;
std::string m_hmsc_parent; /// parent of hmsc
@@ -190,29 +191,32 @@
HMscPtr get_hmsc_parent(HMscPtr);
void set_hmsc_parent(HMscPtr);
public:
- DFSHMscsFlatTraverser(DFSHMscFlatTraverser t, std::string p="hmsc_parent"):m_traverser(t),m_active_hmsc(NULL),m_hmsc_parent(p)
+ DFSHMscsTraverse(DFSHMscFlatTraverser* t, std::string p="hmsc_parent"):m_traverser(t),m_active_hmsc(NULL),m_hmsc_parent(p)
{
}
void traverse(HMscPtr hmsc)
{
- set_hmsc_parent(hmsc);
+ //set_hmsc_parent(hmsc);
m_to_traverse.push(hmsc);
- m_traverser.add_inner_hmsc_listener(this);
+ m_traverser->add_inner_hmsc_listener(this);
while(!m_to_traverse.empty())
{
m_active_hmsc = m_to_traverse.top();
hmsc_start(m_active_hmsc);
- m_traverser.traverse(m_active_hmsc);
- m_traverser.cleanup_traversing_attributes();
+ m_traverser->traverse(m_active_hmsc);
+ m_traverser->cleanup_traversing_attributes();
m_to_traverse.pop();
hmsc_finished(m_active_hmsc);
}
}
+ void on_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
+ {}
+
void on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
{
- set_hmsc_parent(hmsc);
+ //set_hmsc_parent(hmsc);
m_to_traverse.push(hmsc);
}
Modified: trunk/tests/time_constraints/CMakeLists.txt
===================================================================
--- trunk/tests/time_constraints/CMakeLists.txt 2009-11-17 13:36:54 UTC (rev 465)
+++ trunk/tests/time_constraints/CMakeLists.txt 2009-11-17 19:16:07 UTC (rev 466)
@@ -1,19 +1,19 @@
# Positive test-cases
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos1.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos2.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos3.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos5.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos7.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos8.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos9.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos10.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_pos11.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos1.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos2.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos3.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos5.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos7.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos8.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos9.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos10.mpr 1)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos11.mpr 1)
# Negative test-cases
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg1.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg2.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg3.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg4.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg7.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg9.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg10.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" proper_neg11.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg1.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg2.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg3.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg4.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg7.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg9.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg10.mpr 0)
+ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg11.mpr 0)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-11-22 00:22:47
|
Revision: 479
http://scstudio.svn.sourceforge.net/scstudio/?rev=479&view=rev
Author: madzin
Date: 2009-11-22 00:22:26 +0000 (Sun, 22 Nov 2009)
Log Message:
-----------
Fix problems with SIGSEGVs and memory leak.
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/tests/z120_test/CMakeLists.txt
trunk/tests/z120_test/z120_test31.mpr.result
Added Paths:
-----------
trunk/tests/z120_test/z120_time20.mpr
trunk/tests/z120_test/z120_time20.mpr.result
trunk/tests/z120_test/z120_time21.mpr
trunk/tests/z120_test/z120_time21.mpr.result
trunk/tests/z120_test/z120_time22.mpr
trunk/tests/z120_test/z120_time22.mpr.result
trunk/tests/z120_test/z120_time23.mpr
trunk/tests/z120_test/z120_time23.mpr.result
trunk/tests/z120_test/z120_time24.mpr
trunk/tests/z120_test/z120_time24.mpr.result
trunk/tests/z120_test/z120_time25.mpr
trunk/tests/z120_test/z120_time25.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-11-21 17:16:07 UTC (rev 478)
+++ trunk/src/data/Z120/Context.cpp 2009-11-22 00:22:26 UTC (rev 479)
@@ -327,7 +327,14 @@
for(set_it = it->second.begin(); set_it != it->second.end(); set_it++)
{
ref_node = (*set_it)->get_ref_node_a();
- ref_node->remove_time_relation_bottom(*set_it);
+ if((*set_it)->is_bottom_node_a())
+ {
+ ref_node->remove_time_relation_bottom(*set_it);
+ }
+ else
+ {
+ ref_node->remove_time_relation_top(*set_it);
+ }
}
}
context->future_top_time_relations.clear();
@@ -346,7 +353,14 @@
for(set_it = it->second.begin(); set_it != it->second.end(); set_it++)
{
ref_node = (*set_it)->get_ref_node_a();
- ref_node->remove_time_relation_top(*set_it);
+ if((*set_it)->is_bottom_node_a())
+ {
+ ref_node->remove_time_relation_bottom(*set_it);
+ }
+ else
+ {
+ ref_node->remove_time_relation_top(*set_it);
+ }
}
}
context->future_bottom_time_relations.clear();
@@ -1028,6 +1042,12 @@
*/
void new_reference_node_fun(struct Context* context)
{
+ if(TOWSTRING(context->reference_name) == get_msc_fun(context)->get_label())
+ {
+ context->z->print_report(RS_ERROR, stringize() << L"Error 31: Infinite recursion at " << TOWSTRING(context->element_name) << " node");
+ context->reference_name = "_" + context->reference_name + "_";
+ }
+
std::map<std::string, HMscNodePtr>::iterator it = context->hmsc_nodes.find(context->element_name);
std::multimap<std::string, MscPtr>::iterator msc_it = context->mscs.find(context->reference_name);
ReferenceNodePtr node = NULL;
@@ -1039,23 +1059,23 @@
if(msc_it == context->mscs.end())
{
- std::map<std::string, std::set<ReferenceNodePtr> >::iterator ref_it = context->future_reference.find(context->reference_name);
+ std::map<std::string, std::set<ReferenceNodePtr> >::iterator ref_it = context->future_reference.find(context->reference_name);
- if(ref_it != context->future_reference.end())
- {
- ref_it->second.insert(node);
- }
- else
- {
- std::set<ReferenceNodePtr> my_set;
- my_set.insert(node);
- context->future_reference.insert(std::make_pair(context->reference_name, my_set));
- }
+ if(ref_it != context->future_reference.end())
+ {
+ ref_it->second.insert(node);
+ }
+ else
+ {
+ std::set<ReferenceNodePtr> my_set;
+ my_set.insert(node);
+ context->future_reference.insert(std::make_pair(context->reference_name, my_set));
+ }
}
else
{
node->set_msc(msc_it->second);
-
+
std::set<std::string>::iterator erase_it = context->nonpointed.find(context->reference_name);
if(erase_it != context->nonpointed.end())
{
@@ -1312,6 +1332,10 @@
{
relation->glue_ref_nodes(false, node.get(), true, node.get());
}
+ else
+ {
+// std::cout << " warning " << std::endl;
+ }
}
/*
@@ -1363,12 +1387,47 @@
if(ref_it != context->hmsc_nodes.end())
{
ReferenceNodePtr node2 = boost::dynamic_pointer_cast<ReferenceNode>(ref_it->second);
- if(node == NULL)
+ if(node2 == NULL)
{
- context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node");
- return ;
+// context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node");
+// return ;
+//--------------------------------------------------------------------------------------------------------------------
+// added due to the same warning with 24 to print
+ relation->glue_ref_node_a(context->time_first == bottom, node.get());
+
+ if(context->time_second == top)
+ {
+ std::map<std::string, std::set<TimeRelationRefNodePtr> >::iterator top_it;
+ top_it = context->future_top_time_relations.find(context->time_node_name);
+
+ if(top_it == context->future_top_time_relations.end())
+ {
+ my_set.insert(relation);
+ context->future_top_time_relations.insert(std::make_pair(context->time_node_name, my_set));
+ }
+ else
+ {
+ top_it->second.insert(relation);
+ }
}
+ else{
+ std::map<std::string, std::set<TimeRelationRefNodePtr> >::iterator bottom_it;
+ bottom_it = context->future_bottom_time_relations.find(context->time_node_name);
+ if(bottom_it == context->future_bottom_time_relations.end())
+ {
+ my_set.insert(relation);
+ context->future_bottom_time_relations.insert(std::make_pair(context->time_node_name, my_set));
+ }
+ else
+ {
+ bottom_it->second.insert(relation);
+ }
+ }
+ return;
+//----------------------------------------------------------------------------------------------------------------------------
+ }
+
if(context->time_first == context->time_second && context->time_first != unknown && node2 == node)
{
context->z->print_report(RS_ERROR, L"Warning 30: Time interval was defined to one point");
Modified: trunk/tests/z120_test/CMakeLists.txt
===================================================================
--- trunk/tests/z120_test/CMakeLists.txt 2009-11-21 17:16:07 UTC (rev 478)
+++ trunk/tests/z120_test/CMakeLists.txt 2009-11-22 00:22:26 UTC (rev 479)
@@ -127,6 +127,12 @@
ADD_Z120_TEST(z120_time17.mpr 1)
ADD_Z120_TEST(z120_time18.mpr 1)
ADD_Z120_TEST(z120_time19.mpr 1)
+ADD_Z120_TEST(z120_time20.mpr 1)
+ADD_Z120_TEST(z120_time21.mpr 1)
+ADD_Z120_TEST(z120_time22.mpr 1)
+ADD_Z120_TEST(z120_time23.mpr 1)
+ADD_Z120_TEST(z120_time24.mpr 1)
+ADD_Z120_TEST(z120_time25.mpr 1)
# $Id$
Modified: trunk/tests/z120_test/z120_test31.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test31.mpr.result 2009-11-21 17:16:07 UTC (rev 478)
+++ trunk/tests/z120_test/z120_test31.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -1,13 +1,15 @@
-Warning 09: Reference to nonexisting MSC: bmsc1
-Error 03: Infinite recursion among MSCs
+Error 31: Infinite recursion at L1 node
+Warning 09: Reference to nonexisting MSC: _out_iha_, bmsc1
OK: z120_test31 is correct, should be correct
mscdocument z120_test31;
msc out_iha;
initial connect L0;
L0: reference bmsc1 connect L1;
-L1: reference out_iha connect L0, L2;
+L1: reference _out_iha_ connect L0, L2;
L2: final;
endmsc;
msc bmsc1;
endmsc;
+msc _out_iha_;
+endmsc;
Added: trunk/tests/z120_test/z120_time20.mpr
===================================================================
--- trunk/tests/z120_test/z120_time20.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time20.mpr 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,21 @@
+/* Incorrect time constraint (top top) between reference node and final node (forbidden).
+ */
+mscdocument Vykres1;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A top top L2 [0,inf);
+ connect L2;
+L1: reference B top top L2 [0,4);
+ connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time20.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time20.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time20.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,20 @@
+Warning 24: Time information to nonexisting reference node: L2
+OK: z120_time20 is correct, should be correct
+
+mscdocument z120_time20;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A connect L2;
+L1: reference B connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time21.mpr
===================================================================
--- trunk/tests/z120_test/z120_time21.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time21.mpr 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,21 @@
+/* Incorrect time constraint (top bottom) between reference node and final node (forbidden).
+ */
+mscdocument Vykres1;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A bottom bottom L2 [0,inf);
+ connect L2;
+L1: reference B bottom bottom L2 [0,4);
+ connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time21.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time21.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time21.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,20 @@
+Warning 24: Time information to nonexisting reference node: L2
+OK: z120_time21 is correct, should be correct
+
+mscdocument z120_time21;
+msc Stranka_1;
+initial connect L0, L1;
+L0: reference A connect L2;
+L1: reference B connect L2;
+L2: final;
+endmsc;
+msc A;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
+msc B;
+inst NAME;
+NAME: instance;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time22.mpr
===================================================================
--- trunk/tests/z120_test/z120_time22.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time22.mpr 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,25 @@
+mscdocument proper_neg22.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L4: connect L1,L2, L3;
+L2: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ connect L5;
+L5: final;
+L1: condition mark connect L4;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time22.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time22.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time22.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,30 @@
+Error 31: Infinite recursion at L0 node
+Warning 24: Time information to nonexisting reference node: L1
+Warning 09: Reference to nonexisting MSC: _A_
+OK: z120_time22 is correct, should be correct
+
+mscdocument z120_time22;
+msc A;
+initial connect L0;
+L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ connect L1;
+L3: connect L2, L1, L4;
+L1: reference NAME time [0,inf);
+ connect L5;
+L4: condition mark connect L3;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
+msc _A_;
+endmsc;
Added: trunk/tests/z120_test/z120_time23.mpr
===================================================================
--- trunk/tests/z120_test/z120_time23.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time23.mpr 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,25 @@
+mscdocument proper_neg22.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L1: condition mark connect L4;
+L4: connect L1,L2, L3;
+L2: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ connect L5;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time23.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time23.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time23.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,30 @@
+Error 31: Infinite recursion at L0 node
+Warning 24: Time information to nonexisting reference node: L1
+Warning 09: Reference to nonexisting MSC: _A_
+OK: z120_time23 is correct, should be correct
+
+mscdocument z120_time23;
+msc A;
+initial connect L0;
+L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ connect L1;
+L3: connect L4, L2, L1;
+L1: reference NAME time [0,inf);
+ connect L5;
+L4: condition mark connect L3;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
+msc _A_;
+endmsc;
Added: trunk/tests/z120_test/z120_time24.mpr
===================================================================
--- trunk/tests/z120_test/z120_time24.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time24.mpr 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,25 @@
+mscdocument proper_neg22.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L1: condition mark connect L4;
+L4: connect L1,L2, L3;
+L2: reference NAME time [0,inf);
+ top top L4 [0,inf);
+ connect L5;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time24.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time24.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time24.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,30 @@
+Error 31: Infinite recursion at L0 node
+Warning 24: Time information to nonexisting reference node: L1, L4
+Warning 09: Reference to nonexisting MSC: _A_
+OK: z120_time24 is correct, should be correct
+
+mscdocument z120_time24;
+msc A;
+initial connect L0;
+L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ connect L1;
+L3: connect L4, L2, L1;
+L1: reference NAME time [0,inf);
+ connect L5;
+L4: condition mark connect L3;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
+msc _A_;
+endmsc;
Added: trunk/tests/z120_test/z120_time25.mpr
===================================================================
--- trunk/tests/z120_test/z120_time25.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time25.mpr 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,25 @@
+mscdocument proper_neg22.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L1: condition mark connect L4;
+L2: reference NAME time [0,inf);
+ top top L4 [0,inf);
+ connect L5;
+L5: final;
+L4: connect L1,L2, L3;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time25.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time25.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time25.mpr.result 2009-11-22 00:22:26 UTC (rev 479)
@@ -0,0 +1,30 @@
+Error 31: Infinite recursion at L0 node
+Warning 24: Time information to nonexisting reference node: L1, L4
+Warning 09: Reference to nonexisting MSC: _A_
+OK: z120_time25 is correct, should be correct
+
+mscdocument z120_time25;
+msc A;
+initial connect L0;
+L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ connect L1;
+L3: connect L4, L1, L2;
+L1: reference NAME time [0,inf);
+ connect L5;
+L4: condition mark connect L3;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
+msc _A_;
+endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-11-22 18:11:53
|
Revision: 480
http://scstudio.svn.sourceforge.net/scstudio/?rev=480&view=rev
Author: gotthardp
Date: 2009-11-22 18:11:32 +0000 (Sun, 22 Nov 2009)
Log Message:
-----------
Fixed file properties.
Modified Paths:
--------------
trunk/src/view/visio/addon/dllmodule.rc
trunk/src/view/visio/scstudio.nsi
trunk/tests/time_constraints/proper_neg12.mpr
trunk/tests/time_constraints/proper_neg13.mpr
trunk/tests/time_constraints/proper_neg14.mpr
trunk/tests/time_constraints/proper_neg15.mpr
trunk/tests/time_constraints/proper_neg16.mpr
trunk/tests/time_constraints/proper_neg17.mpr
trunk/tests/time_constraints/proper_neg18.mpr
trunk/tests/time_constraints/proper_neg19.mpr
trunk/tests/time_constraints/proper_neg20.mpr
trunk/tests/time_constraints/proper_neg21.mpr
trunk/tests/time_constraints/proper_neg22.mpr
trunk/tests/time_constraints/proper_neg23.mpr
trunk/tests/time_constraints/proper_neg24.mpr
trunk/tests/time_constraints/proper_neg25.mpr
trunk/tests/time_constraints/proper_neg26.mpr
trunk/tests/time_constraints/proper_neg27.mpr
trunk/tests/time_constraints/proper_neg28.mpr
trunk/tests/time_constraints/proper_neg5.mpr
trunk/tests/time_constraints/proper_neg6.mpr
trunk/tests/time_constraints/proper_neg8.mpr
trunk/tests/time_constraints/proper_pos12.mpr
trunk/tests/time_constraints/proper_pos13.mpr
trunk/tests/time_constraints/proper_pos14.mpr
trunk/tests/time_constraints/proper_pos15.mpr
trunk/tests/time_constraints/proper_pos16.mpr
trunk/tests/time_constraints/proper_pos17.mpr
trunk/tests/time_constraints/proper_pos18.mpr
trunk/tests/time_constraints/proper_pos19.mpr
trunk/tests/time_constraints/proper_pos20.mpr
trunk/tests/time_constraints/proper_pos21.mpr
trunk/tests/time_constraints/proper_pos22.mpr
trunk/tests/time_constraints/proper_pos23.mpr
trunk/tests/time_constraints/proper_pos24.mpr
trunk/tests/time_constraints/proper_pos25.mpr
trunk/tests/time_constraints/proper_pos26.mpr
trunk/tests/time_constraints/proper_pos4.mpr
trunk/tests/time_constraints/proper_pos6.mpr
trunk/tests/z120_test/z120_time22.mpr
trunk/tests/z120_test/z120_time23.mpr
trunk/tests/z120_test/z120_time24.mpr
trunk/tests/z120_test/z120_time25.mpr
Property Changed:
----------------
trunk/tests/time_constraints/proper_neg12.mpr
trunk/tests/time_constraints/proper_neg13.mpr
trunk/tests/time_constraints/proper_neg14.mpr
trunk/tests/time_constraints/proper_neg15.mpr
trunk/tests/time_constraints/proper_neg16.mpr
trunk/tests/time_constraints/proper_neg17.mpr
trunk/tests/time_constraints/proper_neg18.mpr
trunk/tests/time_constraints/proper_neg19.mpr
trunk/tests/time_constraints/proper_neg20.mpr
trunk/tests/time_constraints/proper_neg21.mpr
trunk/tests/time_constraints/proper_neg22.mpr
trunk/tests/time_constraints/proper_neg23.mpr
trunk/tests/time_constraints/proper_neg24.mpr
trunk/tests/time_constraints/proper_neg25.mpr
trunk/tests/time_constraints/proper_neg26.mpr
trunk/tests/time_constraints/proper_neg27.mpr
trunk/tests/time_constraints/proper_neg28.mpr
trunk/tests/time_constraints/proper_neg5.mpr
trunk/tests/time_constraints/proper_neg6.mpr
trunk/tests/time_constraints/proper_neg8.mpr
trunk/tests/time_constraints/proper_pos12.mpr
trunk/tests/time_constraints/proper_pos13.mpr
trunk/tests/time_constraints/proper_pos14.mpr
trunk/tests/time_constraints/proper_pos15.mpr
trunk/tests/time_constraints/proper_pos16.mpr
trunk/tests/time_constraints/proper_pos17.mpr
trunk/tests/time_constraints/proper_pos18.mpr
trunk/tests/time_constraints/proper_pos19.mpr
trunk/tests/time_constraints/proper_pos20.mpr
trunk/tests/time_constraints/proper_pos21.mpr
trunk/tests/time_constraints/proper_pos22.mpr
trunk/tests/time_constraints/proper_pos23.mpr
trunk/tests/time_constraints/proper_pos24.mpr
trunk/tests/time_constraints/proper_pos25.mpr
trunk/tests/time_constraints/proper_pos26.mpr
trunk/tests/time_constraints/proper_pos4.mpr
trunk/tests/time_constraints/proper_pos6.mpr
trunk/tests/z120_test/z120_time19.mpr
trunk/tests/z120_test/z120_time20.mpr
trunk/tests/z120_test/z120_time20.mpr.result
trunk/tests/z120_test/z120_time21.mpr
trunk/tests/z120_test/z120_time21.mpr.result
trunk/tests/z120_test/z120_time22.mpr
trunk/tests/z120_test/z120_time22.mpr.result
trunk/tests/z120_test/z120_time23.mpr
trunk/tests/z120_test/z120_time23.mpr.result
trunk/tests/z120_test/z120_time24.mpr
trunk/tests/z120_test/z120_time24.mpr.result
trunk/tests/z120_test/z120_time25.mpr
trunk/tests/z120_test/z120_time25.mpr.result
Modified: trunk/src/view/visio/addon/dllmodule.rc
===================================================================
--- trunk/src/view/visio/addon/dllmodule.rc 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/src/view/visio/addon/dllmodule.rc 2009-11-22 18:11:32 UTC (rev 480)
@@ -89,8 +89,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,3,23,0
- PRODUCTVERSION 0,3,23,0
+ FILEVERSION 0,3,24,0
+ PRODUCTVERSION 0,3,24,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x9L
@@ -107,13 +107,13 @@
BEGIN
VALUE "CompanyName", "Masaryk University Brno"
VALUE "FileDescription", "Microsoft Visio add-on for design and verification of Message Sequence Charts (MSC)."
- VALUE "FileVersion", "0.3.23"
+ VALUE "FileVersion", "0.3.24"
VALUE "InternalName", "scstudio.vsl"
VALUE "LegalCopyright", "(c) Petr Gotthard. All rights reserved."
VALUE "OriginalFilename", "scstudio.vsl"
VALUE "PrivateBuild", "$Revision$"
VALUE "ProductName", "Sequence Chart Studio"
- VALUE "ProductVersion", "0.3.23"
+ VALUE "ProductVersion", "0.3.24"
END
END
BLOCK "VarFileInfo"
Modified: trunk/src/view/visio/scstudio.nsi
===================================================================
--- trunk/src/view/visio/scstudio.nsi 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/src/view/visio/scstudio.nsi 2009-11-22 18:11:32 UTC (rev 480)
@@ -21,7 +21,7 @@
; -- General ---------------------------
-!define VERSION "0.3.23"
+!define VERSION "0.3.24"
Name "Sequence Chart Studio"
OutFile "scstudio-setup-${VERSION}.exe"
Modified: trunk/tests/time_constraints/proper_neg12.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg12.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg12.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,43 +1,43 @@
-mscdocument proper_neg12.vsd;
-msc Stranka_1;
-initial connect L0;
-L0: reference NAME time [0,inf);
- top top L1 [0,inf);
- bottom top L1 [2,5), top L1 [1,3);
- connect L1;
-L1: reference NAME time [0,inf), [0,inf);
- top bottom L2 [0,inf);
- connect L3;
-L3: connect L2, L4;
-L2: reference NAME2 connect L5;
-L4: connect L1;
-L5: final;
-endmsc;
-msc NAME;
-inst NAME;
-inst asd;
-NAME: instance;
-in NAME,0 from asd;
-endinstance;
-asd: instance;
-out NAME,0 to NAME;
-endinstance;
-endmsc;
-msc NAME2;
-inst NAME;
-inst asd;
-inst asdf;
-NAME: instance;
-label e0;
-in NAME,0 from asd;
-time e1 [0,inf);
-endinstance;
-asd: instance;
-out NAME,0 to NAME;
-out NAME,1 to asdf;
-endinstance;
-asdf: instance;
-label e1;
-in NAME,1 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg12.vsd;
+msc Stranka_1;
+initial connect L0;
+L0: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ bottom top L1 [2,5), top L1 [1,3);
+ connect L1;
+L1: reference NAME time [0,inf), [0,inf);
+ top bottom L2 [0,inf);
+ connect L3;
+L3: connect L2, L4;
+L2: reference NAME2 connect L5;
+L4: connect L1;
+L5: final;
+endmsc;
+msc NAME;
+inst NAME;
+inst asd;
+NAME: instance;
+in NAME,0 from asd;
+endinstance;
+asd: instance;
+out NAME,0 to NAME;
+endinstance;
+endmsc;
+msc NAME2;
+inst NAME;
+inst asd;
+inst asdf;
+NAME: instance;
+label e0;
+in NAME,0 from asd;
+time e1 [0,inf);
+endinstance;
+asd: instance;
+out NAME,0 to NAME;
+out NAME,1 to asdf;
+endinstance;
+asdf: instance;
+label e1;
+in NAME,1 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg12.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg13.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg13.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg13.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,45 +1,45 @@
-mscdocument proper_neg13.vsd;
-msc Stranka_1;
-initial connect L0;
-L0: reference NAME time [0,inf);
- top top L1 [0,inf);
- bottom top L1 [2,5), top L1 [1,3);
- connect L1, L2;
-L1: reference NAME time [0,inf), [0,inf);
- top bottom L3 [0,inf);
- connect L4;
-L2: reference NAME time [0,inf);
- connect L5;
-L4: connect L3, L5;
-L5: connect L6;
-L3: reference NAME2 connect L6;
-L6: final;
-endmsc;
-msc NAME;
-inst NAME;
-inst asd;
-NAME: instance;
-in NAME,0 from asd;
-endinstance;
-asd: instance;
-out NAME,0 to NAME;
-endinstance;
-endmsc;
-msc NAME2;
-inst NAME;
-inst asd;
-inst asdf;
-NAME: instance;
-label e0;
-in NAME,0 from asd;
-time e1 [0,inf);
-endinstance;
-asd: instance;
-out NAME,0 to NAME;
-out NAME,1 to asdf;
-endinstance;
-asdf: instance;
-label e1;
-in NAME,1 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg13.vsd;
+msc Stranka_1;
+initial connect L0;
+L0: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ bottom top L1 [2,5), top L1 [1,3);
+ connect L1, L2;
+L1: reference NAME time [0,inf), [0,inf);
+ top bottom L3 [0,inf);
+ connect L4;
+L2: reference NAME time [0,inf);
+ connect L5;
+L4: connect L3, L5;
+L5: connect L6;
+L3: reference NAME2 connect L6;
+L6: final;
+endmsc;
+msc NAME;
+inst NAME;
+inst asd;
+NAME: instance;
+in NAME,0 from asd;
+endinstance;
+asd: instance;
+out NAME,0 to NAME;
+endinstance;
+endmsc;
+msc NAME2;
+inst NAME;
+inst asd;
+inst asdf;
+NAME: instance;
+label e0;
+in NAME,0 from asd;
+time e1 [0,inf);
+endinstance;
+asd: instance;
+out NAME,0 to NAME;
+out NAME,1 to asdf;
+endinstance;
+asdf: instance;
+label e1;
+in NAME,1 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg13.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg14.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg14.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg14.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,25 +1,25 @@
-mscdocument proper_neg14.vsd;
-msc HMSC;
-initial connect L0, L1;
-L0: reference HMSC connect L2;
-L1: reference NAME connect L2;
-L2: final;
-endmsc;
-msc NAME;
-inst a;
-inst b;
-inst c;
-a: instance;
-label e0;
-in NAME,0 from c;
-endinstance;
-b: instance;
-label e1;
-in NAME,1 from c;
-time e0 [0,inf);
-endinstance;
-c: instance;
-out NAME,1 to b;
-out NAME,0 to a;
-endinstance;
-endmsc;
+mscdocument proper_neg14.vsd;
+msc HMSC;
+initial connect L0, L1;
+L0: reference HMSC connect L2;
+L1: reference NAME connect L2;
+L2: final;
+endmsc;
+msc NAME;
+inst a;
+inst b;
+inst c;
+a: instance;
+label e0;
+in NAME,0 from c;
+endinstance;
+b: instance;
+label e1;
+in NAME,1 from c;
+time e0 [0,inf);
+endinstance;
+c: instance;
+out NAME,1 to b;
+out NAME,0 to a;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg14.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg15.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg15.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg15.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,35 +1,35 @@
-mscdocument proper_neg15.vsd;
-msc HMSC;
-initial connect L0;
-L0: reference A time [0,inf);
- connect L1;
-L1: final;
-endmsc;
-msc A;
-initial connect L0, L1;
-L0: reference A time [0,inf);
- top top L1 [0,inf), bottom L1 [0,inf);
- connect L2;
-L1: reference NAME time [0,inf);
- bottom bottom L0 [0,inf);
- connect L2;
-L2: final;
-endmsc;
-msc NAME;
-inst a;
-inst b;
-inst c;
-a: instance;
-label e0;
-in NAME,0 from c;
-endinstance;
-b: instance;
-label e1;
-in NAME,1 from c;
-time e0 [0,inf);
-endinstance;
-c: instance;
-out NAME,1 to b;
-out NAME,0 to a;
-endinstance;
-endmsc;
+mscdocument proper_neg15.vsd;
+msc HMSC;
+initial connect L0;
+L0: reference A time [0,inf);
+ connect L1;
+L1: final;
+endmsc;
+msc A;
+initial connect L0, L1;
+L0: reference A time [0,inf);
+ top top L1 [0,inf), bottom L1 [0,inf);
+ connect L2;
+L1: reference NAME time [0,inf);
+ bottom bottom L0 [0,inf);
+ connect L2;
+L2: final;
+endmsc;
+msc NAME;
+inst a;
+inst b;
+inst c;
+a: instance;
+label e0;
+in NAME,0 from c;
+endinstance;
+b: instance;
+label e1;
+in NAME,1 from c;
+time e0 [0,inf);
+endinstance;
+c: instance;
+out NAME,1 to b;
+out NAME,0 to a;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg15.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg16.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg16.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg16.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,35 +1,35 @@
-mscdocument proper_neg16.vsd;
-msc NAME;
-inst a;
-inst b;
-inst c;
-a: instance;
-in NAME,0 from c;
-out NAME,1 to b;
-endinstance;
-b: instance;
-in NAME,1 from a;
-out NAME,2 to c;
-label e0;
-in NAME,3 from c;
-time e1 [0,inf);
-endinstance;
-c: instance;
-out NAME,3 to b;
-out NAME,0 to a;
-label e1;
-in NAME,2 from b;
-endinstance;
-endmsc;
-msc HMSC;
-initial connect L0;
-L0: reference A connect L1;
-L1: final;
-endmsc;
-msc A;
-initial connect L0, L1;
-L0: reference A connect L2;
-L1: reference NAME bottom bottom L0 [0,inf);
- connect L2;
-L2: final;
-endmsc;
+mscdocument proper_neg16.vsd;
+msc NAME;
+inst a;
+inst b;
+inst c;
+a: instance;
+in NAME,0 from c;
+out NAME,1 to b;
+endinstance;
+b: instance;
+in NAME,1 from a;
+out NAME,2 to c;
+label e0;
+in NAME,3 from c;
+time e1 [0,inf);
+endinstance;
+c: instance;
+out NAME,3 to b;
+out NAME,0 to a;
+label e1;
+in NAME,2 from b;
+endinstance;
+endmsc;
+msc HMSC;
+initial connect L0;
+L0: reference A connect L1;
+L1: final;
+endmsc;
+msc A;
+initial connect L0, L1;
+L0: reference A connect L2;
+L1: reference NAME bottom bottom L0 [0,inf);
+ connect L2;
+L2: final;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg16.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg17.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg17.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg17.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,35 +1,35 @@
-mscdocument proper_neg17.vsd;
-msc HMSC;
-initial connect L0, L1;
-L0: reference A time [0,inf);
- connect L2;
-L1: reference HMSC time [0,inf);
- connect L2;
-L2: final;
-endmsc;
-msc A;
-initial connect L0, L1;
-L0: reference A time [0,inf);
- connect L2;
-L1: reference NAME time [0,inf);
- connect L2;
-L2: final;
-endmsc;
-msc NAME;
-inst a;
-inst b;
-inst c;
-a: instance;
-label e0;
-in NAME,0 from c;
-endinstance;
-b: instance;
-label e1;
-in NAME,1 from c;
-time e0 [0,inf);
-endinstance;
-c: instance;
-out NAME,1 to b;
-out NAME,0 to a;
-endinstance;
-endmsc;
+mscdocument proper_neg17.vsd;
+msc HMSC;
+initial connect L0, L1;
+L0: reference A time [0,inf);
+ connect L2;
+L1: reference HMSC time [0,inf);
+ connect L2;
+L2: final;
+endmsc;
+msc A;
+initial connect L0, L1;
+L0: reference A time [0,inf);
+ connect L2;
+L1: reference NAME time [0,inf);
+ connect L2;
+L2: final;
+endmsc;
+msc NAME;
+inst a;
+inst b;
+inst c;
+a: instance;
+label e0;
+in NAME,0 from c;
+endinstance;
+b: instance;
+label e1;
+in NAME,1 from c;
+time e0 [0,inf);
+endinstance;
+c: instance;
+out NAME,1 to b;
+out NAME,0 to a;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg17.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg18.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg18.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg18.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,35 +1,35 @@
-mscdocument proper_neg18.vsd;
-msc HMSC;
-initial connect L0, L1;
-L0: reference A time [0,inf);
- connect L2;
-L1: reference HMSC time [0,inf);
- connect L2;
-L2: final;
-endmsc;
-msc A;
-initial connect L0, L1;
-L0: reference A time [0,inf);
- connect L2;
-L1: reference NAME time [0,inf);
- connect L2;
-L2: final;
-endmsc;
-msc NAME;
-inst a;
-inst b;
-inst c;
-a: instance;
-label e0;
-in NAME,0 from c;
-endinstance;
-b: instance;
-label e1;
-in NAME,1 from c;
-time e0 [0,inf);
-endinstance;
-c: instance;
-out NAME,1 to b;
-out NAME,0 to a;
-endinstance;
-endmsc;
+mscdocument proper_neg18.vsd;
+msc HMSC;
+initial connect L0, L1;
+L0: reference A time [0,inf);
+ connect L2;
+L1: reference HMSC time [0,inf);
+ connect L2;
+L2: final;
+endmsc;
+msc A;
+initial connect L0, L1;
+L0: reference A time [0,inf);
+ connect L2;
+L1: reference NAME time [0,inf);
+ connect L2;
+L2: final;
+endmsc;
+msc NAME;
+inst a;
+inst b;
+inst c;
+a: instance;
+label e0;
+in NAME,0 from c;
+endinstance;
+b: instance;
+label e1;
+in NAME,1 from c;
+time e0 [0,inf);
+endinstance;
+c: instance;
+out NAME,1 to b;
+out NAME,0 to a;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg18.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg19.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg19.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg19.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,21 +1,21 @@
-mscdocument proper_neg19.vsd;
-msc NAME;
-initial connect L0;
-L0: reference A top bottom L1 [0,inf);
- connect L1, L2;
-L1: reference NAME connect L3;
-L2: reference NAME connect L3;
-L3: final;
-endmsc;
-msc HMSC;
-initial connect L0;
-L0: reference A connect L1;
-L1: final;
-endmsc;
-msc A;
-initial connect L0;
-L0: reference A time [0,inf);
- connect L1;
-L1: reference NAME connect L2;
-L2: final;
-endmsc;
+mscdocument proper_neg19.vsd;
+msc NAME;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ connect L1, L2;
+L1: reference NAME connect L3;
+L2: reference NAME connect L3;
+L3: final;
+endmsc;
+msc HMSC;
+initial connect L0;
+L0: reference A connect L1;
+L1: final;
+endmsc;
+msc A;
+initial connect L0;
+L0: reference A time [0,inf);
+ connect L1;
+L1: reference NAME connect L2;
+L2: final;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg19.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg20.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg20.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg20.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,19 +1,19 @@
-mscdocument proper_neg20.vsd;
-msc NAME;
-initial connect L0;
-L0: reference A top bottom L1 [0,inf);
- connect L1, L2;
-L1: reference NAME connect L3;
-L2: reference NAME connect L3;
-L3: final;
-endmsc;
-msc A;
-inst asd;
-inst dsrgdf;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-in NAME,0 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg20.vsd;
+msc NAME;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ connect L1, L2;
+L1: reference NAME connect L3;
+L2: reference NAME connect L3;
+L3: final;
+endmsc;
+msc A;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg20.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg21.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg21.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg21.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,28 +1,28 @@
-mscdocument proper_neg21.vsd;
-msc A;
-initial connect L0;
-L0: reference A top top L1 [0,inf), bottom L2 [0,inf);
- bottom top L3 [0,inf);
- connect L1, L4;
-L1: reference NAME time [0,inf);
- bottom bottom L3 [0,inf);
- connect L4, L3, L5;
-L4: connect L3, L1;
-L3: reference NAME time [0,inf);
- top top L2 [0,inf);
- connect L6;
-L5: condition connect L2;
-L6: final;
-L2: reference A connect L0, L7;
-L7: connect L5, L3;
-endmsc;
-msc NAME;
-inst asd;
-inst dsrgdf;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-in NAME,0 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg21.vsd;
+msc A;
+initial connect L0;
+L0: reference A top top L1 [0,inf), bottom L2 [0,inf);
+ bottom top L3 [0,inf);
+ connect L1, L4;
+L1: reference NAME time [0,inf);
+ bottom bottom L3 [0,inf);
+ connect L4, L3, L5;
+L4: connect L3, L1;
+L3: reference NAME time [0,inf);
+ top top L2 [0,inf);
+ connect L6;
+L5: condition connect L2;
+L6: final;
+L2: reference A connect L0, L7;
+L7: connect L5, L3;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg21.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg22.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg22.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg22.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,24 +1,24 @@
-mscdocument proper_neg22.vsd;
-msc A;
-initial connect L0;
-L0: reference A top bottom L1 [0,inf);
- bottom top L2 [0,inf), top L3 [0,inf);
- connect L3, L4;
-L3: reference NAME time [0,inf);
- connect L2;
-L4: connect L2, L3;
-L2: reference NAME time [0,inf);
- top top L1 [0,inf);
- connect L5;
-L5: final;
-endmsc;
-msc NAME;
-inst asd;
-inst dsrgdf;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-in NAME,0 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg22.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L4: connect L2, L3;
+L2: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ connect L5;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg22.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg23.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg23.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg23.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,24 +1,24 @@
-mscdocument proper_neg23.vsd;
-msc A;
-initial connect L0;
-L0: reference A top bottom L1 [0,inf);
- bottom top L2 [0,inf), top L3 [0,inf);
- connect L3, L4;
-L3: reference NAME time [0,inf);
- connect L2;
-L4: connect L2, L3;
-L2: reference NAME time [0,inf);
- top top L1 [0,inf);
- connect L5;
-L5: final;
-endmsc;
-msc NAME;
-inst asd;
-inst dsrgdf;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-in NAME,0 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg23.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L4: connect L2, L3;
+L2: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ connect L5;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg23.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg24.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg24.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg24.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,24 +1,24 @@
-mscdocument proper_neg24.vsd;
-msc A;
-initial connect L0;
-L0: reference A top bottom L1 [0,inf);
- bottom top L2 [0,inf), top L3 [0,inf);
- connect L3, L4;
-L3: reference NAME time [0,inf);
- connect L2;
-L4: connect L2, L3;
-L2: reference NAME time [0,inf);
- top top L1 [0,inf);
- connect L5;
-L5: final;
-endmsc;
-msc NAME;
-inst asd;
-inst dsrgdf;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-in NAME,0 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg24.vsd;
+msc A;
+initial connect L0;
+L0: reference A top bottom L1 [0,inf);
+ bottom top L2 [0,inf), top L3 [0,inf);
+ connect L3, L4;
+L3: reference NAME time [0,inf);
+ connect L2;
+L4: connect L2, L3;
+L2: reference NAME time [0,inf);
+ top top L1 [0,inf);
+ connect L5;
+L5: final;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg24.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg25.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg25.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg25.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,24 +1,24 @@
-mscdocument proper_neg25.vsd;
-msc A;
-initial connect L0;
-L0: reference A bottom top L1 [0,inf);
- connect L2, L3;
-L2: reference NAME time [0,inf);
- top bottom L4 [0,inf);
- connect L1;
-L3: connect L1, L2;
-L1: reference NAME time [0,inf);
- connect L5, L4;
-L5: final;
-L4: reference A connect L5;
-endmsc;
-msc NAME;
-inst asd;
-inst dsrgdf;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-in NAME,0 from asd;
-endinstance;
-endmsc;
+mscdocument proper_neg25.vsd;
+msc A;
+initial connect L0;
+L0: reference A bottom top L1 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ top bottom L4 [0,inf);
+ connect L1;
+L3: connect L1, L2;
+L1: reference NAME time [0,inf);
+ connect L5, L4;
+L5: final;
+L4: reference A connect L5;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+in NAME,0 from asd;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg25.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/time_constraints/proper_neg26.mpr
===================================================================
--- trunk/tests/time_constraints/proper_neg26.mpr 2009-11-22 00:22:26 UTC (rev 479)
+++ trunk/tests/time_constraints/proper_neg26.mpr 2009-11-22 18:11:32 UTC (rev 480)
@@ -1,43 +1,43 @@
-mscdocument proper_neg26.vsd;
-msc B;
-initial connect L0;
-L0: reference A bottom top L1 [0,inf);
- connect L2, L3;
-L2: reference NAME time [0,inf);
- connect L1;
-L3: connect L1, L2;
-L1: reference NAME time [0,inf);
- connect L4, L5;
-L4: final;
-L5: reference B connect L4;
-endmsc;
-msc A;
-initial connect L0;
-L0: reference A bottom top L1 [0,inf);
- connect L2, L3;
-L2: reference NAME time [0,inf);
- connect L1;
-L3: connect L1, L2;
-L1: reference NAME time [0,inf);
- connect L4, L5;
-L4: final;
-L5: reference B connect L4;
-endmsc;
-msc NAME;
-inst asd;
-inst dsrgdf;
-inst NAME;
-asd: instance;
-out NAME,0 to dsrgdf;
-endinstance;
-dsrgdf: instance;
-label e0;
-in NAME,0 from asd;
-time e1 [0,inf);
-in NAME,1 from NAME;
-endinstance;
-NAME: instance;
-label e1;
-out NAME,1 to dsrgdf;
-endinstance;
-endmsc;
+mscdocument proper_neg26.vsd;
+msc B;
+initial connect L0;
+L0: reference A bottom top L1 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ connect L1;
+L3: connect L1, L2;
+L1: reference NAME time [0,inf);
+ connect L4, L5;
+L4: final;
+L5: reference B connect L4;
+endmsc;
+msc A;
+initial connect L0;
+L0: reference A bottom top L1 [0,inf);
+ connect L2, L3;
+L2: reference NAME time [0,inf);
+ connect L1;
+L3: connect L1, L2;
+L1: reference NAME time [0,inf);
+ connect L4, L5;
+L4: final;
+L5: reference B connect L4;
+endmsc;
+msc NAME;
+inst asd;
+inst dsrgdf;
+inst NAME;
+asd: instance;
+out NAME,0 to dsrgdf;
+endinstance;
+dsrgdf: instance;
+label e0;
+in NAME,0 from asd;
+time e1 [0,inf);
+in NAME,1 from NAME;
+endinstance;
+NAME: instance;
+label e1;
+out NAME,1 to dsrgdf;
+endinstance;
+endmsc;
Property changes on: trunk/tests/time_constraints/proper_neg26.mpr
___________________________________________________________...
[truncated message content] |
|
From: <koc...@us...> - 2009-11-23 14:00:03
|
Revision: 482
http://scstudio.svn.sourceforge.net/scstudio/?rev=482&view=rev
Author: kocianon
Date: 2009-11-23 13:59:35 +0000 (Mon, 23 Nov 2009)
Log Message:
-----------
CMakeList time constraint check test fix
Modified Paths:
--------------
trunk/src/data/dfs_hmsc_flat_traverser.h
trunk/tests/time_constraints/CMakeLists.txt
Modified: trunk/src/data/dfs_hmsc_flat_traverser.h
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-23 13:35:34 UTC (rev 481)
+++ trunk/src/data/dfs_hmsc_flat_traverser.h 2009-11-23 13:59:35 UTC (rev 482)
@@ -141,7 +141,7 @@
};
/// Traversing HMsc using DFSHMscFlatTraverser and hmsc found event
-class SCMSC_EXPORT DFSHMscsTraverse:public InnerHMscFoundListener
+class SCMSC_EXPORT DFSHMscsTraverse:public InnerHMscFoundListener, InnerBMscFoundListener
{
private:
std::stack<HMscPtr> m_to_traverse; /// stack of HMsc to traverse
@@ -168,7 +168,7 @@
m_to_traverse.push(hmsc); // push to the queue
add_hmsc_as_traversed(hmsc); // add this hmsc as it was traversed
m_traverser->add_inner_hmsc_listener(this);
-
+ m_traverser->add_inner_bmsc_listener(this);
while(!m_to_traverse.empty())
{
m_active_hmsc = m_to_traverse.top();
@@ -190,6 +190,11 @@
m_to_traverse.push(hmsc);
}
+ void on_new_inner_bmsc_found(HMscPtr msc, ReferenceNode* refNode)
+ {
+ std::cout<< "new BMSc found" << std::endl;
+ }
+
std::list<HMscPtr> get_hmsc_path()
{
std::list<HMscPtr> path;
Modified: trunk/tests/time_constraints/CMakeLists.txt
===================================================================
--- trunk/tests/time_constraints/CMakeLists.txt 2009-11-23 13:35:34 UTC (rev 481)
+++ trunk/tests/time_constraints/CMakeLists.txt 2009-11-23 13:59:35 UTC (rev 482)
@@ -1,57 +1,57 @@
# Positive test-cases
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos1.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos2.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos3.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos4.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos5.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos6.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos7.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos8.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos9.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos10.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos11.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos12.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos13.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos14.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos15.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos16.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos17.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos18.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos19.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos20.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos21.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos22.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos23.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos24.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos25.mpr 1)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_pos26.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos1.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos2.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos3.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos4.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos5.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos6.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos7.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos8.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos9.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos10.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos11.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos12.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos13.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos14.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos15.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos16.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos17.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos18.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos19.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos20.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos21.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos22.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos23.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos24.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos25.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_pos26.mpr 1)
# Negative test-cases
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg1.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg2.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg3.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg4.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg5.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg6.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg7.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg8.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg9.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg10.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg11.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg12.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg13.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg14.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg15.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg16.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg17.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg18.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg19.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg20.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg21.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg22.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg23.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg24.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg25.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg26.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg27.mpr 0)
-ADD_CHECKER_TEST(sctime "Constraints Check" proper_neg28.mpr 0)
\ No newline at end of file
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg1.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg2.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg3.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg4.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg5.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg6.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg7.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg8.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg9.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg10.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg11.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg12.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg13.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg14.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg15.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg16.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg17.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg18.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg19.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg20.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg21.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg22.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg23.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg24.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg25.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg26.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg27.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" proper_neg28.mpr 0)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-11-23 14:11:44
|
Revision: 483
http://scstudio.svn.sourceforge.net/scstudio/?rev=483&view=rev
Author: gotthardp
Date: 2009-11-23 14:11:32 +0000 (Mon, 23 Nov 2009)
Log Message:
-----------
Tiny little fix of the previous commit.
Modified Paths:
--------------
trunk/src/check/time/module.cpp
trunk/tests/time/CMakeLists.txt
Modified: trunk/src/check/time/module.cpp
===================================================================
--- trunk/src/check/time/module.cpp 2009-11-23 13:59:35 UTC (rev 482)
+++ trunk/src/check/time/module.cpp 2009-11-23 14:11:32 UTC (rev 483)
@@ -16,7 +16,7 @@
* $Id$
*/
-#include "check/time/constrain_check.h"
+#include "check/time/constraint_syntax.h"
// module initialization function
// note: the Visio add-on searches for a function of this name
Modified: trunk/tests/time/CMakeLists.txt
===================================================================
--- trunk/tests/time/CMakeLists.txt 2009-11-23 13:59:35 UTC (rev 482)
+++ trunk/tests/time/CMakeLists.txt 2009-11-23 14:11:32 UTC (rev 483)
@@ -1,5 +1,5 @@
-ADD_CHECKER_TEST(sctime "Time Constraints" connector_correct0.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" connector_correct1.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" connector_correct0.mpr 1)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" connector_correct1.mpr 1)
-ADD_CHECKER_TEST(sctime "Time Constraints" connector_incorrect1.mpr 0)
-ADD_CHECKER_TEST(sctime "Time Constraints" connector_incorrect2.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" connector_incorrect1.mpr 0)
+ADD_CHECKER_TEST(sctime "Correct Time Constraint Syntax" connector_incorrect2.mpr 0)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <xm...@us...> - 2013-02-14 18:58:20
|
Revision: 1578
http://scstudio.svn.sourceforge.net/scstudio/?rev=1578&view=rev
Author: xmalota
Date: 2013-02-14 18:58:10 +0000 (Thu, 14 Feb 2013)
Log Message:
-----------
installation script changed, added optional pcap
Modified Paths:
--------------
trunk/src/view/visio/scstudio.nsi
Added Paths:
-----------
trunk/third-party-sw/win_pcap/WinPcap_4_1_2.exe
Modified: trunk/src/view/visio/scstudio.nsi
===================================================================
--- trunk/src/view/visio/scstudio.nsi 2013-02-14 17:47:45 UTC (rev 1577)
+++ trunk/src/view/visio/scstudio.nsi 2013-02-14 18:58:10 UTC (rev 1578)
@@ -45,7 +45,6 @@
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "..\..\..\COPYING"
!insertmacro MUI_PAGE_COMPONENTS
-;Page custom Profiles
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
@@ -154,6 +153,29 @@
CallInstDLL "$TEMP\nsis.dll" RemoveMatchedFileLines
!macroend
+;WinPcapInstalation provider
+Section "WinPcap_4_1_2" SecWinPcap
+ SetOutPath "$INSTDIR"
+ SetOverwrite on
+ File "..\..\..\third-party-sw\win_pcap\WinPcap_4_1_2.exe"
+ ; If the installer was launched using /S then pass some arguments to WinPcap
+ IfSilent winpcap_silent winpcap_loud
+ winpcap_silent:
+ StrCpy $1 ""
+ ;${GetParameters} $R0
+ ClearErrors
+ ;${GetOptions} $R0 "/NPFSTARTUP=" $2
+ StrCmp $2 "NO" 0 NoSkipNPFStartup
+ StrCpy $1 "/NPFSTARTUP=NO $1"
+ NoSkipNPFStartup:
+ ExecWait '"$INSTDIR\WinPcap_4_1_2.exe" $1 /S'
+ Goto delete_winpcap
+ winpcap_loud:
+ ExecWait '"$INSTDIR\WinPcap_4_1_2.exe"'
+ delete_winpcap:
+ Delete "$INSTDIR\WinPcap_4_1_2.exe"
+SectionEnd
+
Section "Microsoft Visio Add-On" SecAddon
SetOutPath $INSTDIR\bin
@@ -189,12 +211,12 @@
SetOutPath $INSTDIR\bin
File "addon\${BUILD_TYPE}\scstudio.vsl"
- File "addon\${BUILD_TYPE}\scstudio.*.intermediate.manifest"
- ; File "..\..\..\doc\help\scstudio.chm"
+ File "addon\${BUILD_TYPE}\scstudio.vsl.intermediate.manifest"
+ ;File "addon\Release\scstudio.vsl.intermediate.manifest"
+ ;File "..\..\..\doc\help\scstudio.chm"
File "..\..\..\${BUILD_TYPE}\*.dll"
File "..\..\..\${BUILD_TYPE}\scstudio.exe"
-
${AppendRegStr} ${Visio11RegPath} "Application" "AddonsPath" "$INSTDIR\bin"
${AppendRegStr} ${Visio12RegPath} "Application" "AddonsPath" "$INSTDIR\bin"
${AppendRegStr} ${Visio14RegPath} "Application" "AddonsPath" "$INSTDIR\bin"
@@ -391,9 +413,11 @@
SectionEnd
LangString DESC_SecAddon ${LANG_ENGLISH} "Installs Microsoft Visio Add-on and related stencils and templates."
+LangString DESC_SecWinPcap ${LANG_ENGLISH} "Installs WinPcap 4.1.2 (required for pcap funcitonallities of SCStudio)."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecAddon} $(DESC_SecAddon)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecWinPcap} $(DESC_SecWinPcap)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
; -- Uninstaller Section ---------------
Added: trunk/third-party-sw/win_pcap/WinPcap_4_1_2.exe
===================================================================
(Binary files differ)
Property changes on: trunk/third-party-sw/win_pcap/WinPcap_4_1_2.exe
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-11-23 14:18:26
|
Revision: 484
http://scstudio.svn.sourceforge.net/scstudio/?rev=484&view=rev
Author: madzin
Date: 2009-11-23 14:18:12 +0000 (Mon, 23 Nov 2009)
Log Message:
-----------
Add multiple time definition for reference nodes
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/src/data/Z120/Context.h
trunk/src/data/Z120/Context_Impl.h
trunk/src/data/Z120/Z120.g
trunk/tests/z120_test/CMakeLists.txt
Added Paths:
-----------
trunk/tests/z120_test/z120_time26.mpr
trunk/tests/z120_test/z120_time26.mpr.result
trunk/tests/z120_test/z120_time27.mpr
trunk/tests/z120_test/z120_time27.mpr.result
trunk/tests/z120_test/z120_time28.mpr
trunk/tests/z120_test/z120_time28.mpr.result
trunk/tests/z120_test/z120_time29.mpr
trunk/tests/z120_test/z120_time29.mpr.result
trunk/tests/z120_test/z120_time30.mpr
trunk/tests/z120_test/z120_time30.mpr.result
trunk/tests/z120_test/z120_time31.mpr
trunk/tests/z120_test/z120_time31.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-11-23 14:11:32 UTC (rev 483)
+++ trunk/src/data/Z120/Context.cpp 2009-11-23 14:18:12 UTC (rev 484)
@@ -22,7 +22,7 @@
*/
/*
- * Maximal number of warning/error message is 30
+ * Maximal number of warning/error message is 32
*/
#ifndef __ParserStruct__
@@ -87,6 +87,7 @@
context->future_top_time_relations.clear();
context->not_connect = 0;
context->origin = false;
+ context->time_dest = false;
context->time_first = unknown;
context->time_second = unknown;
@@ -477,6 +478,11 @@
context->origin = true;
}
+void set_time_dest_fun(struct Context* context)
+{
+ context->time_dest = true;
+}
+
/*
* End of MSC was occurred
*/
@@ -883,6 +889,11 @@
context->time_event = true;
}
+void set_time_event_false_fun(struct Context* context)
+{
+ context->time_event = false;
+}
+
void add_time_relation_event_fun(struct Context* context)
{
TimeRelationEventPtr relation;
@@ -1315,6 +1326,22 @@
*/
void add_time_relation_ref_time_fun(struct Context* context)
{
+ if(context->time_dest)
+ {
+ std::string report = "";
+
+ if(context->time_second != unknown)
+ report = (context->time_second ? "bottom " : "top ") + context->time_node_name;
+ else
+ report = context->time_event_name;
+
+ if(context->origin)
+ report += " origin";
+
+ context->z->print_report(RS_WARNING, stringize() << "Warning 32: Unexpected (" << TOWSTRING(report) << ") at time definition: "
+ << TOWSTRING(context->element_name));
+ }
+
TimeRelationRefNodePtr relation;
try
{
@@ -1343,16 +1370,22 @@
*/
void add_time_relation_ref_fun(struct Context* context)
{
-//std::cout << "time definition " << context->time << std::endl;
if(context->time_event)
{
add_time_relation_event_fun(context);
- context->time_event = false;
+ context->time_dest = false;
return ;
}
- if(context->time_second == unknown)
+ if(context->time_first == time_def)
{
+ add_time_relation_ref_time_fun(context);
+ context->time_dest = false;
+ return ;
+ }
+
+ if(context->time_second == unknown || context->time_second == time_def)
+ {
context->z->print_report(RS_WARNING, stringize() << "Warning 25: Time definition in " << TOWSTRING(context->element_name) << " has only one connection point");
context->time_second = context->time_first;
context->time_node_name = context->time_event_name;
@@ -1368,6 +1401,7 @@
catch(std::exception &exc)
{
context->z->print_report(RS_ERROR, stringize() << L"Warning: " << exc.what());
+ context->time_dest = false;
return ;
}
@@ -1381,6 +1415,7 @@
if(node == NULL)
{
context->z->print_report(RS_ERROR, L"Warning 23: Time information can be defined only to a reference node");
+ context->time_dest = false;
return ;
}
@@ -1424,6 +1459,7 @@
bottom_it->second.insert(relation);
}
}
+ context->time_dest = false;
return;
//----------------------------------------------------------------------------------------------------------------------------
}
@@ -1431,6 +1467,7 @@
if(context->time_first == context->time_second && context->time_first != unknown && node2 == node)
{
context->z->print_report(RS_ERROR, L"Warning 30: Time interval was defined to one point");
+ context->time_dest = false;
return ;
}
@@ -1475,6 +1512,7 @@
}
context->time_second = unknown;
+ context->time_dest = false;
}
/*
Modified: trunk/src/data/Z120/Context.h
===================================================================
--- trunk/src/data/Z120/Context.h 2009-11-23 14:11:32 UTC (rev 483)
+++ trunk/src/data/Z120/Context.h 2009-11-23 14:18:12 UTC (rev 484)
@@ -34,7 +34,7 @@
enum msg_kind {output, input};
enum relation_kind {before, after};
-enum time_relation_kind {top, bottom, unknown};
+enum time_relation_kind {top, bottom, unknown, time_def};
void my_print(char* a);
@@ -62,6 +62,8 @@
void set_origin_fun(struct Context* context);
+void set_time_dest_fun(struct Context* context);
+
void set_end_msc_fun(struct Context* context);
//BMsc
@@ -93,6 +95,8 @@
void set_time_event_fun(struct Context* context);
+void set_time_event_false_fun(struct Context* context);
+
void add_time_relation_event_fun(struct Context* context);
void set_time_reference_event_fun(struct Context* context, char* name);
Modified: trunk/src/data/Z120/Context_Impl.h
===================================================================
--- trunk/src/data/Z120/Context_Impl.h 2009-11-23 14:11:32 UTC (rev 483)
+++ trunk/src/data/Z120/Context_Impl.h 2009-11-23 14:18:12 UTC (rev 484)
@@ -65,6 +65,7 @@
std::string interval_label;
std::string time;
bool origin;
+ bool time_dest;
/*
* Error handling
Modified: trunk/src/data/Z120/Z120.g
===================================================================
--- trunk/src/data/Z120/Z120.g 2009-11-23 14:11:32 UTC (rev 483)
+++ trunk/src/data/Z120/Z120.g 2009-11-23 14:18:12 UTC (rev 484)
@@ -420,7 +420,7 @@
{
add_relation_fun(context, after);
})? end
- ( {set_time_event_fun(context);} 'time' time_dest_list end )?
+ ( {set_time_event_fun(context);} 'time' time_dest_list end {set_time_event_false_fun(context);} )?
{
set_not_create_event_fun(context);
@@ -437,11 +437,14 @@
;
time_dest:
- NAME {set_time_reference_event_fun(context, (char*) $NAME.text->chars);}
+ {set_time_dest_fun(context);}
+ (
+ name_a = NAME {set_time_reference_event_fun(context, (char*) $name_a.text->chars);}
|
('top' { set_second_time_rel_kind_fun(context, top); }
| 'bottom' { set_second_time_rel_kind_fun(context, bottom); })
- (reference_identification | NAME { set_time_reference_node_fun(context, (char*) $NAME.text->chars);} )
+ (reference_identification | name_b = NAME { set_time_reference_node_fun(context, (char*) $name_b.text->chars);} )
+ )
;
non_orderable_event:
@@ -1537,7 +1540,7 @@
//Peter's reguirements to allow multiple definition of top or bottom time information
timeable_node:
(hmsc_ref_expr_node { new_reference_node_fun(context); } | hmsc_expression)
- ('time' time_interval end { add_time_relation_ref_time_fun(context); })?
+ ('time' { set_first_time_rel_kind_fun(context, time_def);} time_dest_list end )?
( ('top'{ set_first_time_rel_kind_fun(context, top);} time_dest_list end) |
('bottom' { set_first_time_rel_kind_fun(context, bottom);} time_dest_list end) )*
;
Modified: trunk/tests/z120_test/CMakeLists.txt
===================================================================
--- trunk/tests/z120_test/CMakeLists.txt 2009-11-23 14:11:32 UTC (rev 483)
+++ trunk/tests/z120_test/CMakeLists.txt 2009-11-23 14:18:12 UTC (rev 484)
@@ -133,6 +133,12 @@
ADD_Z120_TEST(z120_time23.mpr 1)
ADD_Z120_TEST(z120_time24.mpr 1)
ADD_Z120_TEST(z120_time25.mpr 1)
+ADD_Z120_TEST(z120_time26.mpr 1)
+ADD_Z120_TEST(z120_time27.mpr 1)
+ADD_Z120_TEST(z120_time28.mpr 1)
+ADD_Z120_TEST(z120_time29.mpr 1)
+ADD_Z120_TEST(z120_time30.mpr 1)
+ADD_Z120_TEST(z120_time31.mpr 1)
# $Id$
Added: trunk/tests/z120_test/z120_time26.mpr
===================================================================
--- trunk/tests/z120_test/z120_time26.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time26.mpr 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,35 @@
+/* Basic time constraints in both MSC and HMSC
+ */
+mscdocument z120_time01;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), top L1 origin [3,4];
+top bottom L1 origin (1,10);
+connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time26.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time26.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time26.mpr.result 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,36 @@
+Warning 32: Unexpected (top L1 origin) at time definition: L2
+OK: z120_time26 is correct, should be correct
+
+mscdocument z120_time26;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3,4];
+ top bottom L1 origin (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time27.mpr
===================================================================
--- trunk/tests/z120_test/z120_time27.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time27.mpr 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,35 @@
+/* Basic time constraints in both MSC and HMSC
+ */
+mscdocument z120_time01;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), bottom L1 origin [3,4];
+top bottom L1 origin (1,10);
+connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time27.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time27.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time27.mpr.result 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,36 @@
+Warning 32: Unexpected (bottom L1 origin) at time definition: L2
+OK: z120_time27 is correct, should be correct
+
+mscdocument z120_time27;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3,4];
+ top bottom L1 origin (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time28.mpr
===================================================================
--- trunk/tests/z120_test/z120_time28.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time28.mpr 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,35 @@
+/* Basic time constraints in both MSC and HMSC
+ */
+mscdocument z120_time01;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), top L1 [3,4];
+top bottom L1 origin (1,10);
+connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time28.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time28.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time28.mpr.result 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,36 @@
+Warning 32: Unexpected (top L1) at time definition: L2
+OK: z120_time28 is correct, should be correct
+
+mscdocument z120_time28;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3,4];
+ top bottom L1 origin (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time29.mpr
===================================================================
--- trunk/tests/z120_test/z120_time29.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time29.mpr 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,35 @@
+/* Basic time constraints in both MSC and HMSC
+ */
+mscdocument z120_time01;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), bottom L1 [3,4];
+top bottom L1 origin (1,10);
+connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time29.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time29.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time29.mpr.result 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,36 @@
+Warning 32: Unexpected (bottom L1) at time definition: L2
+OK: z120_time29 is correct, should be correct
+
+mscdocument z120_time29;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3,4];
+ top bottom L1 origin (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time30.mpr
===================================================================
--- trunk/tests/z120_test/z120_time30.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time30.mpr 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,35 @@
+/* Basic time constraints in both MSC and HMSC
+ */
+mscdocument z120_time01;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), L1 origin [3,4];
+top bottom L1 origin (1,10);
+connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time30.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time30.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time30.mpr.result 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,36 @@
+Warning 32: Unexpected (L1 origin) at time definition: L2
+OK: z120_time30 is correct, should be correct
+
+mscdocument z120_time30;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3,4];
+ top bottom L1 origin (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time31.mpr
===================================================================
--- trunk/tests/z120_test/z120_time31.mpr (rev 0)
+++ trunk/tests/z120_test/z120_time31.mpr 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,35 @@
+/* Basic time constraints in both MSC and HMSC
+ */
+mscdocument z120_time01;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), L1 [3,4];
+top bottom L1 origin (1,10);
+connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
Added: trunk/tests/z120_test/z120_time31.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time31.mpr.result (rev 0)
+++ trunk/tests/z120_test/z120_time31.mpr.result 2009-11-23 14:18:12 UTC (rev 484)
@@ -0,0 +1,36 @@
+Warning 32: Unexpected (L1) at time definition: L2
+OK: z120_time31 is correct, should be correct
+
+mscdocument z120_time31;
+msc Main;
+initial connect L0;
+L0: connect L1, L2;
+L1: reference Subprocess connect L3;
+L2: reference Subprocess time [1,2), [3,4];
+ top bottom L1 origin (1,10);
+ connect L1;
+L3: final;
+endmsc;
+msc Subprocess;
+inst P1;
+inst P2;
+P1: instance;
+out NAME,0 to P2;
+label e0;
+out NAME,1 to P2;
+time e1 [7];
+label e1;
+in NAME,2 from P2;
+endinstance;
+P2: instance;
+concurrent;
+label e2;
+in NAME,0 from P1 before e3;
+time e4 [12], e3 [4];
+label e3;
+in NAME,1 from P1;
+endconcurrent;
+label e4;
+out NAME,2 to P1;
+endinstance;
+endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2009-11-25 17:06:58
|
Revision: 490
http://scstudio.svn.sourceforge.net/scstudio/?rev=490&view=rev
Author: madzin
Date: 2009-11-25 17:06:50 +0000 (Wed, 25 Nov 2009)
Log Message:
-----------
Modify error messages
Modified Paths:
--------------
trunk/src/data/Z120/Context.cpp
trunk/tests/z120_test/z120_test31.mpr.result
trunk/tests/z120_test/z120_time22.mpr.result
trunk/tests/z120_test/z120_time23.mpr.result
trunk/tests/z120_test/z120_time24.mpr.result
trunk/tests/z120_test/z120_time25.mpr.result
Modified: trunk/src/data/Z120/Context.cpp
===================================================================
--- trunk/src/data/Z120/Context.cpp 2009-11-25 05:09:11 UTC (rev 489)
+++ trunk/src/data/Z120/Context.cpp 2009-11-25 17:06:50 UTC (rev 490)
@@ -130,7 +130,7 @@
if(context->nonpointed.size() < 1 && context->mscs.size() > 0)
{
- context->z->print_report(RS_ERROR, L"Error 03: Infinite recursion among MSCs");
+ context->z->print_report(RS_WARNING, L"Warning 03: Infinite recursion among MSCs");
}
s_Msc** result = NULL;
@@ -1055,7 +1055,7 @@
{
if(TOWSTRING(context->reference_name) == get_msc_fun(context)->get_label())
{
- context->z->print_report(RS_ERROR, stringize() << L"Error 31: Infinite recursion at " << TOWSTRING(context->element_name) << " node");
+ context->z->print_report(RS_WARNING, stringize() << L"Warning 31: Infinite recursion at node: " << TOWSTRING(context->element_name));
}
std::map<std::string, HMscNodePtr>::iterator it = context->hmsc_nodes.find(context->element_name);
Modified: trunk/tests/z120_test/z120_test31.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_test31.mpr.result 2009-11-25 05:09:11 UTC (rev 489)
+++ trunk/tests/z120_test/z120_test31.mpr.result 2009-11-25 17:06:50 UTC (rev 490)
@@ -1,15 +1,14 @@
-Error 31: Infinite recursion at L1 node
-Warning 09: Reference to nonexisting MSC: _out_iha_, bmsc1
+Warning 31: Infinite recursion at node: L1
+Warning 09: Reference to nonexisting MSC: bmsc1
+Warning 03: Infinite recursion among MSCs
OK: z120_test31 is correct, should be correct
mscdocument z120_test31;
msc out_iha;
initial connect L0;
L0: reference bmsc1 connect L1;
-L1: reference _out_iha_ connect L0, L2;
+L1: reference out_iha connect L0, L2;
L2: final;
endmsc;
msc bmsc1;
endmsc;
-msc _out_iha_;
-endmsc;
Modified: trunk/tests/z120_test/z120_time22.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time22.mpr.result 2009-11-25 05:09:11 UTC (rev 489)
+++ trunk/tests/z120_test/z120_time22.mpr.result 2009-11-25 17:06:50 UTC (rev 490)
@@ -1,12 +1,12 @@
-Error 31: Infinite recursion at L0 node
+Warning 31: Infinite recursion at node: L0
Warning 24: Time information to nonexisting reference node: L1
-Warning 09: Reference to nonexisting MSC: _A_
+Warning 03: Infinite recursion among MSCs
OK: z120_time22 is correct, should be correct
mscdocument z120_time22;
msc A;
initial connect L0;
-L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+L0: reference A bottom top L1 [0,inf), top L2 [0,inf);
connect L2, L3;
L2: reference NAME time [0,inf);
connect L1;
@@ -26,5 +26,3 @@
in NAME,0 from asd;
endinstance;
endmsc;
-msc _A_;
-endmsc;
Modified: trunk/tests/z120_test/z120_time23.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time23.mpr.result 2009-11-25 05:09:11 UTC (rev 489)
+++ trunk/tests/z120_test/z120_time23.mpr.result 2009-11-25 17:06:50 UTC (rev 490)
@@ -1,12 +1,12 @@
-Error 31: Infinite recursion at L0 node
+Warning 31: Infinite recursion at node: L0
Warning 24: Time information to nonexisting reference node: L1
-Warning 09: Reference to nonexisting MSC: _A_
+Warning 03: Infinite recursion among MSCs
OK: z120_time23 is correct, should be correct
mscdocument z120_time23;
msc A;
initial connect L0;
-L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+L0: reference A bottom top L1 [0,inf), top L2 [0,inf);
connect L2, L3;
L2: reference NAME time [0,inf);
connect L1;
@@ -26,5 +26,3 @@
in NAME,0 from asd;
endinstance;
endmsc;
-msc _A_;
-endmsc;
Modified: trunk/tests/z120_test/z120_time24.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time24.mpr.result 2009-11-25 05:09:11 UTC (rev 489)
+++ trunk/tests/z120_test/z120_time24.mpr.result 2009-11-25 17:06:50 UTC (rev 490)
@@ -1,12 +1,12 @@
-Error 31: Infinite recursion at L0 node
+Warning 31: Infinite recursion at node: L0
Warning 24: Time information to nonexisting reference node: L1, L4
-Warning 09: Reference to nonexisting MSC: _A_
+Warning 03: Infinite recursion among MSCs
OK: z120_time24 is correct, should be correct
mscdocument z120_time24;
msc A;
initial connect L0;
-L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+L0: reference A bottom top L1 [0,inf), top L2 [0,inf);
connect L2, L3;
L2: reference NAME time [0,inf);
connect L1;
@@ -26,5 +26,3 @@
in NAME,0 from asd;
endinstance;
endmsc;
-msc _A_;
-endmsc;
Modified: trunk/tests/z120_test/z120_time25.mpr.result
===================================================================
--- trunk/tests/z120_test/z120_time25.mpr.result 2009-11-25 05:09:11 UTC (rev 489)
+++ trunk/tests/z120_test/z120_time25.mpr.result 2009-11-25 17:06:50 UTC (rev 490)
@@ -1,12 +1,12 @@
-Error 31: Infinite recursion at L0 node
+Warning 31: Infinite recursion at node: L0
Warning 24: Time information to nonexisting reference node: L1, L4
-Warning 09: Reference to nonexisting MSC: _A_
+Warning 03: Infinite recursion among MSCs
OK: z120_time25 is correct, should be correct
mscdocument z120_time25;
msc A;
initial connect L0;
-L0: reference _A_ bottom top L1 [0,inf), top L2 [0,inf);
+L0: reference A bottom top L1 [0,inf), top L2 [0,inf);
connect L2, L3;
L2: reference NAME time [0,inf);
connect L1;
@@ -26,5 +26,3 @@
in NAME,0 from asd;
endinstance;
endmsc;
-msc _A_;
-endmsc;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <koc...@us...> - 2009-12-02 22:45:12
|
Revision: 501
http://scstudio.svn.sourceforge.net/scstudio/?rev=501&view=rev
Author: kocianon
Date: 2009-12-02 22:45:05 +0000 (Wed, 02 Dec 2009)
Log Message:
-----------
tightening - not working but worked 5 mins ago, infinite value in interval fix (valid/invalid)
Modified Paths:
--------------
trunk/src/check/time/tightening.cpp
trunk/src/check/time/tightening.h
trunk/src/check/time/time_pseudocode.h
trunk/src/data/time.h
trunk/tests/CMakeLists.txt
trunk/tests/tighten_msc_test.cpp
Modified: trunk/src/check/time/tightening.cpp
===================================================================
--- trunk/src/check/time/tightening.cpp 2009-12-02 21:02:43 UTC (rev 500)
+++ trunk/src/check/time/tightening.cpp 2009-12-02 22:45:05 UTC (rev 501)
@@ -151,4 +151,120 @@
return m_result_matrix;
}
+
+///////////////////////////////////////////////////////////////////
+
+MscTimeIntervalSetD TightenBMsc::get_max_interval(BMscIntervalSetMatrix bmsc_matrix)
+{
+ MscTimeIntervalSetD max_intrset;
+ MscTimeIntervalSetD evts_intrset;
+ max_intrset.insert(MscTimeIntervalD(0,0));
+
+ EventPairsList pairs;
+ EventPList::iterator it_min;
+ EventPList::iterator it_max;
+
+ // for every pair (minimal,maximal) events find max_intrset
+ for (it_min=m_mins.begin();it_min!=m_mins.end();it_min++)
+ {
+ for (it_max=m_maxs.begin();it_max!=m_maxs.end();it_max++)
+ {
+ evts_intrset=bmsc_matrix(*it_min,*it_max);
+ max_intrset = MscTimeIntervalSetD::components_max(max_intrset,evts_intrset);
+ }
+ }
+ return max_intrset;
+}
+
+ConstBMscMatrixPair TightenBMsc::tighten_msc(MscTimeIntervalSetD interval)
+{
+
+ MscSolveTCSP solve;
+ BMscIntervalSetMatrix old_matrix(m_matrix);
+ BMscIntervalSetMatrix current_matrix(m_matrix);
+
+ // pair (MscTimeIntervalSetD,IntervalSetMatrix)
+ ConstBMscMatrixPair pair(std::make_pair(interval,m_bmsc));
+ do
+ {
+ old_matrix = current_matrix;
+ // tight matrix
+ current_matrix = solve.solve(current_matrix);
+ // tight both matrix and interval with respect to each other
+ pair = max_tightener(current_matrix,interval);
+ // assign tightened interval
+ interval = pair.first;
+ }
+ while (!IntervalMatrixFunc::is_equal(old_matrix,current_matrix));
+ m_matrix = current_matrix;
+ return pair; // tighten interval, bmsc matrix
+}
+
+ConstBMscMatrixPair TightenBMsc::max_tightener(BMscIntervalSetMatrix t_matrix
+ ,MscTimeIntervalSetD interval
+ )
+{
+ MscTimeIntervalSetD max_intrset = get_max_interval(t_matrix);
+ // assign tightened interval
+ interval = MscTimeIntervalSetD::set_intersection(interval,max_intrset);
+ EventPVector::iterator it_v;
+
+ // for all a \in events
+ // for all b \in a.get_next do
+ for (it_v = m_events.begin();it_v!=m_events.end();it_v++)
+ {
+ EventPSet succs = EventFirstSuccessors::get(*it_v);
+ EventPSet::iterator it_succ;
+
+ for (it_succ=succs.begin();it_succ!=succs.end();it_succ++)
+ {
+ EventPList::iterator it_min_events;
+ EventPList::iterator it_max_events;
+ MscTimeIntervalSetD path_union;
+
+ for (it_min_events=m_mins.begin();it_min_events!=m_mins.end();it_min_events++)
+ {
+ for (it_max_events=m_maxs.begin();it_max_events!=m_maxs.end();it_max_events++)
+ {
+ if (is_leq(*it_min_events,*it_v)&&is_leq(*it_succ,*it_max_events))
+ continue;
+ path_union=MscTimeIntervalSetD::set_union(
+ path_union,t_matrix(*it_min_events,*it_max_events));
+ }
+ }
+
+ MscTimeIntervalSetD tight_interval;
+ tight_interval = MscTimeIntervalSetD::set_union(interval,
+ MscTimeIntervalSetD::zero_max_interval(path_union,interval));
+ MscTimeIntervalSetD prefix_interval;
+ prefix_interval.insert(MscTimeIntervalD(0,0));
+
+ for (it_min_events=m_mins.begin();it_min_events!=m_mins.end();it_min_events++)
+ {
+ prefix_interval=MscTimeIntervalSetD::components_max(
+ t_matrix(*it_min_events,*it_v),prefix_interval);
+ }
+
+ MscTimeIntervalSetD suffix_interval;
+ suffix_interval.insert(MscTimeIntervalD(0,0));
+
+ for (it_max_events=m_maxs.begin();
+ it_max_events!=m_maxs.end();
+ it_max_events++)
+ {
+ suffix_interval=MscTimeIntervalSetD::components_max(
+ t_matrix(*it_succ,*it_max_events),suffix_interval);
+ }
+
+ //final tightening
+ t_matrix(*it_v,*it_succ)=MscTimeIntervalSetD::set_intersection(
+ t_matrix(*it_v,*it_succ)
+ ,tight_interval-prefix_interval-suffix_interval);
+
+ } // end for succs
+ } // end for all events
+
+ return std::make_pair(interval,t_matrix);
+}
+
// $Id$
Modified: trunk/src/check/time/tightening.h
===================================================================
--- trunk/src/check/time/tightening.h 2009-12-02 21:02:43 UTC (rev 500)
+++ trunk/src/check/time/tightening.h 2009-12-02 22:45:05 UTC (rev 501)
@@ -23,6 +23,15 @@
#include "time_pseudocode.h"
#include "check/pseudocode/msc_duplicators.h"
#include "data/transformer.h"
+
+typedef std::pair<Event*,Event*> EventPair;
+typedef std::list<EventPair> EventPairsList;
+typedef std::pair<MscTimeIntervalSetD,IntervalSetMatrix> ConstMatrixPair;
+typedef std::pair<MscTimeIntervalSetD,BMscIntervalSetMatrix> ConstBMscMatrixPair;
+typedef boost::intrusive_ptr<BMscIntervalMatrixConverter*> BMscIntervalMatrixConverterPtr;
+
+
+class TightenBMsc;
/*
class SCTIME_EXPORT GreatTighter:public Transformer, public BMscTransformer
{
@@ -50,37 +59,7 @@
};
*/
-/*
-class BMscTighter//:public Transformer, public BMscTransformer
-{
-public:
- //! Human readable name of the transformation.
- virtual std::string get_name()
- {
- return std::string("BMsc Tigher");
- }
-
- //! List of properties that must be satisfied before executing the transformation.
- typedef std::vector<PrerequisiteCheck> PreconditionList;
-
- //! Returns a list of preconditions for this transformation.
- PreconditionList get_preconditions(MscPtr msc) const
- {
- return PreconditionList();
- }
-
- BMscPtr transform(BMscPtr bmsc)
- {
- BMscPtr new_bmsc;
- return new_bmsc;
- }
-
- ~BMscTighter() {}
-};
-
-*/
-
class SCTIME_EXPORT MscSolveTCSP
{
private:
@@ -106,11 +85,8 @@
};
-typedef std::pair<Event*,Event*> EventPair;
-typedef std::list<EventPair> EventPairsList;
-typedef std::pair<MscTimeIntervalSetD,IntervalSetMatrix> ConstMatrixPair;
-typedef boost::intrusive_ptr<BMscIntervalMatrixConverter*> BMscIntervalMatrixConverterPtr;
+
/**
* \brief tightens BMsc
*/
@@ -131,28 +107,10 @@
return m_event_top.is_leq(e,f);
}
- MscTimeIntervalSetD get_max_interval(BMscIntervalSetMatrix bmsc_matrix)
- {
- MscTimeIntervalSetD max_intrset;
- MscTimeIntervalSetD evts_intrset;
- max_intrset.insert(MscTimeIntervalD(0,0));
+ MscTimeIntervalSetD get_max_interval(BMscIntervalSetMatrix);
- EventPairsList pairs;
- EventPList::iterator it_min;
- EventPList::iterator it_max;
-
- // for every pair (minimal,maximal) events find max_intrset
- for (it_min=m_mins.begin();it_min!=m_mins.end();it_min++)
- {
- for (it_max=m_maxs.begin();it_max!=m_maxs.end();it_max++)
- {
- evts_intrset=bmsc_matrix(*it_min,*it_max);
- max_intrset = MscTimeIntervalSetD::components_max(max_intrset,evts_intrset);
- }
- }
- return max_intrset;
- }
-
+ //! tightens interval and matrix according to each other
+ ConstBMscMatrixPair max_tightener(BMscIntervalSetMatrix,MscTimeIntervalSetD);
public:
TightenBMsc(BMscPtr bmsc):m_bmsc(bmsc),m_matrix(bmsc),m_event_top(bmsc)
@@ -160,112 +118,64 @@
{
}
- static ConstMatrixPair tight(
- BMscPtr bmsc
- ,MscTimeIntervalSetD interval)
+ //! tight BMsc due to interval
+ ConstBMscMatrixPair tighten_msc(MscTimeIntervalSetD);
+
+ static ConstBMscMatrixPair tight(BMscPtr bmsc,MscTimeIntervalSetD interval)
{
TightenBMsc tightening(bmsc);
- ConstMatrixPair pair = tightening.tighten_msc(interval);
+ ConstBMscMatrixPair pair = tightening.tighten_msc(interval);
//tightening.modificate(pair.second);
return pair;
}
- //! tight BMsc due to interval
- ConstMatrixPair tighten_msc(MscTimeIntervalSetD interval)
- {
+}; // class TightenBMsc
- MscSolveTCSP solve;
- BMscIntervalSetMatrix old_matrix(m_matrix);
- BMscIntervalSetMatrix current_matrix(m_matrix);
+typedef std::list<HMscNodePtr> HMscNodePtrList;
- // pair (MscTimeIntervalSetD,IntervalSetMatrix)
- ConstMatrixPair pair;
- do
+
+class BMscTighter:public Transformer // , public BMscTransformer
+{
+
+ public:
+ //! Human readable name of the transformation.
+ virtual std::wstring get_name() const
{
- old_matrix = current_matrix;
- // tight matrix
- current_matrix = solve.solve(current_matrix);
- // tight both matrix and interval with respect to each other
- pair = max_tightener(current_matrix,interval);
- // assign tightened interval
- interval = pair.first;
+ return L"BMsc Tigher";
}
- while (!IntervalMatrixFunc::is_equal(old_matrix,current_matrix));
- return pair; // tighten interval, bmsc matrix
- }
+ //! List of properties that must be satisfied before executing the transformation.
+ typedef std::vector<PrerequisiteCheck> PreconditionList;
- //! tightens interval and matrix according to each other
- ConstMatrixPair max_tightener(BMscIntervalSetMatrix t_matrix
- ,MscTimeIntervalSetD interval
- )
- {
- MscTimeIntervalSetD max_intrset = get_max_interval(t_matrix);
- // assign tightened interval
- interval = MscTimeIntervalSetD::set_intersection(interval,max_intrset);
- EventPVector::iterator it_v;
+ //! Returns a list of preconditions for this transformation.
+ PreconditionList get_preconditions(MscPtr msc) const
+ {
+ return PreconditionList();
+ }
- // for all a \in events
- // for all b \in a.get_next do
- for (it_v = m_events.begin();it_v!=m_events.end();it_v++)
+ MscPtr transform(MscPtr msc)
{
- EventPSet succs = EventFirstSuccessors::get(*it_v);
- EventPSet::iterator it_succ;
+ BMscPtr bmsc = dynamic_cast<BMsc*>(msc.get());
+ if(!bmsc.get())
+ return NULL;
- for (it_succ=succs.begin();it_succ!=succs.end();it_succ++)
- {
- EventPList::iterator it_min_events;
- EventPList::iterator it_max_events;
- MscTimeIntervalSetD path_union;
+ return transform(bmsc);
+ }
+
+ BMscPtr transform(BMscPtr bmsc)
+ {
+ MscTimeIntervalSetD set;
+ MscTimeIntervalD interval(-D::infinity(),D::infinity());
+ set.insert(interval);
+ TightenBMsc tightener(bmsc);
+ ConstBMscMatrixPair pair = tightener.tighten_msc(set);
+ return pair.second.get_modified_bmsc();
+ }
- for (it_min_events=m_mins.begin();it_min_events!=m_mins.end();it_min_events++)
- {
- for (it_max_events=m_maxs.begin();it_max_events!=m_maxs.end();it_max_events++)
- {
- if (is_leq(*it_min_events,*it_v)&&is_leq(*it_succ,*it_max_events))
- continue;
- path_union=MscTimeIntervalSetD::set_union(
- path_union,t_matrix(*it_min_events,*it_max_events));
- }
- }
+ ~BMscTighter() {}
+};
- MscTimeIntervalSetD tight_interval;
- tight_interval = MscTimeIntervalSetD::set_union(interval,
- MscTimeIntervalSetD::zero_max_interval(path_union,interval));
- MscTimeIntervalSetD prefix_interval;
- prefix_interval.insert(MscTimeIntervalD(0,0));
- for (it_min_events=m_mins.begin();it_min_events!=m_mins.end();it_min_events++)
- {
- prefix_interval=MscTimeIntervalSetD::components_max(
- t_matrix(*it_min_events,*it_v),prefix_interval);
- }
-
- MscTimeIntervalSetD suffix_interval;
- suffix_interval.insert(MscTimeIntervalD(0,0));
-
- for (it_max_events=m_maxs.begin();
- it_max_events!=m_maxs.end();
- it_max_events++)
- {
- suffix_interval=MscTimeIntervalSetD::components_max(
- t_matrix(*it_succ,*it_max_events),suffix_interval);
- }
-
- //final tightening
- t_matrix(*it_v,*it_succ)=MscTimeIntervalSetD::set_intersection(
- t_matrix(*it_v,*it_succ)
- ,tight_interval-prefix_interval-suffix_interval);
-
- } // end for succs
- } // end for all events
-
- return std::make_pair(interval,t_matrix);
- }
-
-}; // class TightenBMsc
-
-typedef std::list<HMscNodePtr> HMscNodePtrList;
/*
class TightenSetOfPaths
{
Modified: trunk/src/check/time/time_pseudocode.h
===================================================================
--- trunk/src/check/time/time_pseudocode.h 2009-12-02 21:02:43 UTC (rev 500)
+++ trunk/src/check/time/time_pseudocode.h 2009-12-02 22:45:05 UTC (rev 501)
@@ -156,7 +156,7 @@
}
build_up_matrix();
}
-
+/*
BMscIntervalSetMatrix(const BMscIntervalSetMatrix& matrix):
IntervalSetMatrix(matrix)
,m_event_topology(matrix.get_original_bmsc())
@@ -165,7 +165,7 @@
m_events=matrix.m_events;
m_event_number=matrix.m_event_number;
m_time_rel_set=matrix.m_time_rel_set;
- }
+ }*/
using IntervalSetMatrix::operator();
Modified: trunk/src/data/time.h
===================================================================
--- trunk/src/data/time.h 2009-12-02 21:02:43 UTC (rev 500)
+++ trunk/src/data/time.h 2009-12-02 22:45:05 UTC (rev 501)
@@ -38,6 +38,9 @@
#pragma warning(disable: 4290)
#endif
+
+typedef std::numeric_limits<double> D;
+
/*
class MscIntervalCoupleUncomparable;
class MscIntervalCouple;
@@ -800,10 +803,22 @@
{
return false;
}
- if(m_begin==m_end)
- return m_begin.get_closed();
- else
- return true;
+ if(m_begin.get_value()==D::infinity())
+ return false;
+
+ if(m_end.get_value()==-D::infinity())
+ return false;
+
+ if(m_begin.get_value()==-D::infinity() && m_begin.get_closed())
+ return false;
+
+ if(m_end.get_value()==D::infinity() && m_end.get_closed())
+ return false;
+
+ if(m_begin==m_end && !m_begin.get_closed())
+ return false;
+
+ return true;
}
void set_empty()
Modified: trunk/tests/CMakeLists.txt
===================================================================
--- trunk/tests/CMakeLists.txt 2009-12-02 21:02:43 UTC (rev 500)
+++ trunk/tests/CMakeLists.txt 2009-12-02 22:45:05 UTC (rev 501)
@@ -168,14 +168,15 @@
# scpseudocode
# )
-#ADD_EXECUTABLE(tighten_msc_test
-# tighten_msc_test.cpp
-# )
-# TARGET_LINK_LIBRARIES(tighten_msc_test
-# scmsc
-# sctime
-# scpseudocode
-# )
+ADD_EXECUTABLE(tighten_msc_test
+ tighten_msc_test.cpp
+)
+TARGET_LINK_LIBRARIES(tighten_msc_test
+ scmsc
+ sctime
+ scpseudocode
+ scZ120
+)
#
# ADD_EXECUTABLE(bmsc_tightening_test
# bmsc_tightening_test.cpp
Modified: trunk/tests/tighten_msc_test.cpp
===================================================================
--- trunk/tests/tighten_msc_test.cpp 2009-12-02 21:02:43 UTC (rev 500)
+++ trunk/tests/tighten_msc_test.cpp 2009-12-02 22:45:05 UTC (rev 501)
@@ -18,6 +18,7 @@
#include <iostream>
#include "check/time/tightening.h"
+#include "data/Z120/z120.h"
int main(int argc, char** argv) {
@@ -69,19 +70,19 @@
MscTimeIntervalSetD ins8;
ins1.insert(in6);
-
+
ins2.insert(in8);
- ins2.insert(in9);
-
- ins3.insert(in6);
-
- ins4.insert(in10);
- ins4.insert(in11);
+ ins2.insert(in9);
+ ins3.insert(in6);
+
+ ins4.insert(in10);
+ ins4.insert(in11);
+
ins5.insert(in12);
ins6.insert(in7);
-
+
TimeRelationEventPtr rel1a = new TimeRelationEvent(ins1);
rel1a->glue_events(e0.get(),e1.get());
TimeRelationEventPtr rel6 = new TimeRelationEvent(ins6);
@@ -97,37 +98,39 @@
MscTimeIntervalSetD i;
i.insert(MscTimeIntervalD(0,80));
-
+/*
BMscIntervalMatrixConverter conv(bmsc);
std::cerr << conv.get_matrix() << std::endl;
if(conv.is_leq(e3.get(),e4.get()))
std::cerr << "ANO" << std::endl;
else
- std::cerr << "NE" << std::endl;
+ std::cerr << "NE" << std::endl;*/
// MscSolveTCSP sol;
// std::cerr << sol.solve(conv.get_matrix()) << std::endl;
// sol.solve(conv.get_matrix());
- std::cerr << "tighten passed " << std::endl;
+ // std::cerr << "tighten passed " << std::endl;
// MaxTightener tight(bmsc,&conv);
- std::cerr << "tighten passed " << std::endl;
+// std::cerr << "tighten passed " << std::endl;
// EventPList min;
// EventPList max;
// min.push_back(e0.get());
// min.push_back(e3.get());
// max.push_back(e2.get());
// max.push_back(e4.get());
-
+/*
ConstMatrixPair pair;
TightenBMsc tighten(bmsc);
std::cerr << "tighten passed " << std::endl;
- pair = tighten.tighten_msc(i);
-
-
-
+ pair = tighten.tighten_msc(i);*/
+ BMscTighter tightener;
+ BMscPtr result = tightener.transform(bmsc);
+ Z120 z120;
+ z120.save_msc(std::cout,L"original",bmsc);
+ z120.save_msc(std::cout,L"result",result);
// tight.max_tightener(min,max,sol.solve(conv.get_matrix()),i,bmsc,conv);
// std::pair<MscTimeIntervalSetD,IntervalSetMatrix> max_tightener(EventPList min, EventPList max,IntervalSetMatrix t_matrix,MscTimeIntervalSetD i,BMsc bmsc)
//
- std::cerr << pair.first << std::endl << pair.second << std::endl;
+ //std::cerr << pair.first << std::endl << pair.second << std::endl;
return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <koc...@us...> - 2009-12-09 06:38:29
|
Revision: 511
http://scstudio.svn.sourceforge.net/scstudio/?rev=511&view=rev
Author: kocianon
Date: 2009-12-09 06:38:21 +0000 (Wed, 09 Dec 2009)
Log Message:
-----------
New Duplicator - FIX
Modified Paths:
--------------
trunk/src/check/pseudocode/msc_duplicators.cpp
trunk/src/check/pseudocode/msc_duplicators.h
trunk/src/check/time/constraint_syntax.cpp
trunk/src/check/time/constraint_syntax.h
trunk/src/check/time/tightening.h
trunk/src/data/dfs_hmsc_flat_traverser.cpp
trunk/src/data/dfs_hmsc_flat_traverser.h
trunk/tests/CMakeLists.txt
Modified: trunk/src/check/pseudocode/msc_duplicators.cpp
===================================================================
--- trunk/src/check/pseudocode/msc_duplicators.cpp 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/check/pseudocode/msc_duplicators.cpp 2009-12-09 06:38:21 UTC (rev 511)
@@ -120,99 +120,75 @@
}
///////////////////////////////////////////////
-HMscPtr HMscFlatDuplicator::duplicate(HMscPtr hmsc)
+ //! chooses right type of HMscNode, makes and sets copy, return copy
+ HMscNode* HMscDuplicator::process_node(HMscNode* n)
{
- m_hmsc = hmsc;
- if(!hmsc.get())
- return m_hmsc_copy;
+ HMscNode* copy;
+ ReferenceNode* reference_node;
+ ConnectionNode* connection_node;
+ EndNode* end_node;
+ ConditionNode* condition_node;
- m_hmsc_copy = new HMsc(m_hmsc.get());
- set_copy(m_hmsc.get(),m_hmsc_copy.get());
-
- DFSHMscFlatTraverser traverser("FlatDuplicator");
- traverser.add_white_node_found_listener(this);
- traverser.add_node_finished_listener(this);
- traverser.traverse(hmsc);
- create_time_relation();
- return m_hmsc_copy;
- }
-
-
- void HMscFlatDuplicator::on_white_node_found(HMscNode* n)
- {
- HMscNode* copy;
- ReferenceNode* reference_node = dynamic_cast<ReferenceNode*>(n);
- if(reference_node)
+ if((reference_node=dynamic_cast<ReferenceNode*>(n)))
copy = create(reference_node);
-
- ConnectionNode* connection_node = dynamic_cast<ConnectionNode*>(n);
- if(connection_node)
+ else if((connection_node= dynamic_cast<ConnectionNode*>(n)))
copy = create(connection_node);
-
- StartNode* start_node = dynamic_cast<StartNode*>(n);
- if(start_node)
- copy = create(start_node);
-
- EndNode* end_node = dynamic_cast<EndNode*>(n);
- if(end_node)
+ else if((end_node= dynamic_cast<EndNode*>(n)))
copy = create(end_node);
-
- ConditionNode* condition_node = dynamic_cast<ConditionNode*>(n);
- if(condition_node)
+ else if((condition_node=dynamic_cast<ConditionNode*>(n)))
copy = create(condition_node);
+ else
+ throw std::logic_error("Unknown type of HMscNode found. Add this type.");
- m_hmsc_copy->add_node(copy);
set_copy(n,copy);
+ return copy;
}
- void HMscFlatDuplicator::on_node_finished(HMscNode* n)
+ HMscNode* HMscDuplicator::create(ReferenceNode* n)
{
- create_node_relation(n);
- }
-
-HMscNode* HMscFlatDuplicator::create(ReferenceNode* n)
- {
ReferenceNode* copy = new ReferenceNode(n);
- // check whether there is BMsc inside
-
- BMscPtr bmsc = n->get_bmsc();
- if (bmsc.get())
- {
- BMscPtr new_bmsc = BMscDuplicator::duplicate(bmsc);
- copy->set_msc(new_bmsc);
- }
-
+ // check inner msc
+ inner_msc(n);
return static_cast<HMscNode*>(copy);
}
- HMscNode* HMscFlatDuplicator::create(StartNode* n)
- {
- StartNode* copy = new StartNode(n);
- m_hmsc_copy->set_start(copy);
- return static_cast<HMscNode*>(copy);
- }
-
- HMscNode* HMscFlatDuplicator::create(EndNode* n)
+ HMscNode* HMscDuplicator::create(EndNode* n)
{
EndNode* copy = new EndNode(n);
return static_cast<HMscNode*>(copy);
}
-HMscNode* HMscFlatDuplicator::create(ConditionNode* n)
+ HMscNode* HMscDuplicator::create(ConditionNode* n)
{
ConditionNode* copy = new ConditionNode(n);
return static_cast<HMscNode*>(copy);
}
- HMscNode* HMscFlatDuplicator::create(ConnectionNode* n)
+ HMscNode* HMscDuplicator::create(ConnectionNode* n)
{
ConnectionNode* copy = new ConnectionNode(n);
return static_cast<HMscNode*>(copy);
}
+/////////////////
+ HMsc* HMscDuplicator::create(HMsc* hmsc)
+ {
+ HMsc* copy = new HMsc(hmsc);
+ set_copy(hmsc,copy);
+ StartNode* start = create(hmsc->get_start().get());
+ copy->set_start(start);
+ return copy;
+ }
- void HMscFlatDuplicator::create_node_relation(HMscNode* n)
+ StartNode* HMscDuplicator::create(StartNode* n)
{
+ StartNode* copy = new StartNode(n);
+ set_copy(n,copy);
+ return copy;
+ }
+///////////////////
+ void HMscDuplicator::create_node_relation(HMscNode* n)
+ {
PredecessorNode* pre;
pre = dynamic_cast<PredecessorNode*>(n);
if(!pre)
@@ -225,23 +201,23 @@
NodeRelationPtrVector relations;
NodeRelationPtrVector::iterator it;
- NodeRelationPtr rel;
+ NodeRelationPtr rel_copy;
relations = pre->get_successors();
for(it=relations.begin();it!=relations.end();it++)
{
succ = (*it)->get_successor();
- rel=pre_copy->add_successor(get_copy(succ));
- set_copy(it->get(),rel.get());
+ rel_copy=pre_copy->add_successor(get_copy(succ));
+ set_copy(it->get(),rel_copy.get());
}
}
- void HMscFlatDuplicator::create_time_relation()
+ void HMscDuplicator::create_time_relation(HMscPtr hmsc)
{
// get all time relations
- HMscAllTimeRelations rels(m_hmsc);
+ HMscAllTimeRelations rels(hmsc);
TimeRelationRefNodePtrSet::iterator it;
for(it=rels.begin();it!=rels.end();it++)
@@ -259,61 +235,124 @@
ReferenceNode* a_copy = get_copy(a);
ReferenceNode* b_copy = get_copy(b);
// built up new time relation
- TimeRelationRefNodePtr rel_copy;
+ TimeRelationRefNode* rel_copy;
rel_copy = new TimeRelationRefNode(rel.get());
rel_copy->glue_ref_node_a(bottom_a,a_copy);
rel_copy->glue_ref_node_b(bottom_b,b_copy);
- set_copy(rel.get(),rel_copy.get());
+ set_copy(rel.get(),rel_copy);
}
}
-/////////////////////////////////////////////////////////////////////////////
+ void HMscDuplicator::inner_msc(ReferenceNode* ref)
+ {
+ MscPtr msc = ref->get_msc();
+ if(!msc.get())
+ throw std::logic_error("Empty ReferenceNode - inner Msc is NULL pointer.");
+ BMsc* bmsc;
+ HMsc* hmsc;
+ if((bmsc=dynamic_cast<BMsc*>(msc.get())))
+ {
+ inner_msc_found(bmsc);
+ }
+ else if((hmsc=dynamic_cast<HMsc*>(msc.get())))
+ {
+ inner_msc_found(hmsc);
+ }
+ else
+ throw std::logic_error("Couldnt find right type of inner msc.");
+
+ m_to_set_up.push(std::make_pair(ref,msc.get()));
+
+ }
+
+ void HMscDuplicator::inner_msc_found(HMscPtr hmsc)
+ {
+ if(m_hmscs.find(hmsc.get())==m_hmscs.end())
+ {
+ m_to_create_hm.push(hmsc.get());
+ m_hmscs.insert(hmsc.get());
+ }
+ }
+
+ void HMscDuplicator::inner_msc_found(BMscPtr bmsc)
+ {
+ if(m_bmscs.find(bmsc.get())==m_bmscs.end())
+ {
+ m_to_create_bm.push(bmsc.get());
+ m_bmscs.insert(bmsc.get());
+ }
+ }
+
+
HMscPtr HMscDuplicator::duplicate(HMscPtr hmsc)
{
- m_hmsc = hmsc;
+ std::stack<BMscPtr> created_bmsc;
+ std::stack<HMscPtr> created_hmsc;
+ m_hmsc_root = hmsc;
+ if(!hmsc.get()) // null hmsc
+ throw std::logic_error("Null HMsc to duplicate.");
- DFSHMscFlatTraverser traverser("HMscDuplicator attribute");
+ m_to_create_hm.push(hmsc.get()); // insert to the stack to create
+ m_hmscs.insert(m_hmsc_root.get()); // insert as allready found
+
+ HMsc* copy;
+ BMscPtr b_copy;
+ while(!m_to_create_hm.empty())
+ {
+ // std::cerr << "HMscDuplicator: creating hmsc" << std::endl;
+ HMscPtr hmsc = m_to_create_hm.top();
+ m_to_create_hm.pop();
+ copy = create(hmsc.get());
- traverser.add_inner_hmsc_listener(this);
- add_hmsc_as_traversed(hmsc.get());
- DFSHMscsTraverse tra(&traverser);
- tra.traverse(hmsc);
- m_hmsc_copy = m_duplicator.duplicate(hmsc);
- m_hmscs.insert(hmsc.get());
+ HMscNodePtrSet nodes = hmsc->get_nodes();
+ HMscNodePtrSet::iterator it;
+ for(it=nodes.begin();it!=nodes.end();it++)
+ {
+ HMscNodePtr node = process_node(it->get());
+ copy->add_node(node);
+ }
- while(!m_to_create.empty())
+ // create start relations
+ create_node_relation(static_cast<HMscNode*>(hmsc->get_start().get()));
+
+ // create relations
+ for(it=nodes.begin();it!=nodes.end();it++)
+ {
+ create_node_relation(it->get());
+ }
+
+ // create time relations
+ create_time_relation(hmsc);
+ created_hmsc.push(copy);
+ }
+
+ while(!m_to_create_bm.empty())
{
- HMscPtr hmsc = m_to_create.top();
- m_to_create.pop();
- m_duplicator.duplicate(hmsc);
+ // std::cerr << "HMscDuplicator: creating bmsc" << std::endl;
+ BMscPtr bmsc = m_to_create_bm.top();
+ m_to_create_bm.pop();
+ b_copy = BMscDuplicator::duplicate(bmsc);
+ created_bmsc.push(b_copy);
+ set_copy(bmsc.get(),b_copy.get());
}
while(!m_to_set_up.empty())
{
+ // std::cerr << "HMscDuplicator: setting up" << std::endl;
ReferenceNode* n = m_to_set_up.top().first;
- HMscPtr h = m_to_set_up.top().second;
+ Msc* msc = m_to_set_up.top().second;
m_to_set_up.pop();
- ReferenceNode* n_copy = m_duplicator.get_copy(n);
- HMscPtr h_copy = m_duplicator.get_copy(h.get());
- n_copy->set_msc(h_copy);
+ ReferenceNode* n_copy = get_copy(n);
+ n_copy->set_msc(get_copy(msc));
}
-
- return m_hmsc_copy;
+ copy = get_copy(m_hmsc_root.get());
+ return copy;
}
- void HMscDuplicator::on_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
- {
- m_to_set_up.push(std::make_pair(refNode,hmsc.get()));
- }
- void HMscDuplicator::on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
- {
- m_to_create.push(hmsc.get());
- }
-
/////////////////////////////////////////////////////////////////////////////
EventsCreatorListener::EventsCreatorListener(BMscDuplicator* duplicator, DFSAreaTraverser* traverser, BMsc* bmsc):
Modified: trunk/src/check/pseudocode/msc_duplicators.h
===================================================================
--- trunk/src/check/pseudocode/msc_duplicators.h 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/check/pseudocode/msc_duplicators.h 2009-12-09 06:38:21 UTC (rev 511)
@@ -69,6 +69,18 @@
return static_cast<HMsc*>(get_copy(n));
}
+ BMsc* get_copy(BMsc* p)
+ {
+ MscElement* n = static_cast<MscElement*>(p);
+ return static_cast<BMsc*>(get_copy(n));
+ }
+
+ Msc* get_copy(Msc* p)
+ {
+ MscElement* n = static_cast<MscElement*>(p);
+ return static_cast<Msc*>(get_copy(n));
+ }
+
void set_copy(MscElement* original, MscElement* copy);
void cleanup_attributes();
@@ -165,54 +177,44 @@
};
/**
- * \brief Build up copy of HMsc, does inner BMsc but NOT inner HMsc
+ * \brief HMscDuplicator creates exact copy of HMsc
*/
-class SCPSEUDOCODE_EXPORT HMscFlatDuplicator:
-public Duplicator
-,public WhiteNodeFoundListener
-,public NodeFinishedListener
+
+class SCPSEUDOCODE_EXPORT HMscDuplicator:
+ public Duplicator
{
private:
- HMscPtr m_hmsc;
- HMscPtr m_hmsc_copy;
-public:
+ HMscPtr m_hmsc_root;
- HMscFlatDuplicator()
- {}
+ std::set<HMsc*> m_hmscs; // set of created hmsc
+ std::set<BMsc*> m_bmscs; // set of created bmsc
- HMscPtr duplicate(HMscPtr hmsc);
+ std::stack<BMsc*> m_to_create_bm;
+ std::stack<HMsc*> m_to_create_hm;
+ std::stack<std::pair<ReferenceNode*,Msc*> > m_to_set_up;
- void on_white_node_found(HMscNode* n);
- void on_node_finished(HMscNode* n);
+ void inner_msc(ReferenceNode*);
+ void inner_msc_found(HMscPtr);
+ void inner_msc_found(BMscPtr);
+ HMsc* create(HMsc* hmsc);
+ StartNode* create(StartNode* n);
+
HMscNode* create(ReferenceNode* n);
- HMscNode* create(StartNode* n);
HMscNode* create(EndNode* n);
HMscNode* create(ConditionNode* n);
HMscNode* create(ConnectionNode* n);
+ HMscNode* process_node(HMscNode* n);
void create_node_relation(HMscNode* n);
- void create_time_relation();
-};
+ void create_time_relation(HMscPtr);
-class SCPSEUDOCODE_EXPORT HMscDuplicator: public InnerHMscFoundListener
-{
-private:
- HMscPtr m_hmsc;
- HMscPtr m_hmsc_copy;
- HMscFlatDuplicator m_duplicator;
- std::stack<HMsc*> m_to_create;
- std::stack<std::pair<ReferenceNode*,HMsc*> > m_to_set_up;
-
public:
HMscDuplicator()
{ }
HMscPtr duplicate(HMscPtr hmsc);
- void on_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode);
-
- void on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode);
};
class BMscGraphDuplicator;
@@ -358,4 +360,4 @@
#endif /* _MSC_DUPLICATORS_H */
-// $Id$
+// $Id$
\ No newline at end of file
Modified: trunk/src/check/time/constraint_syntax.cpp
===================================================================
--- trunk/src/check/time/constraint_syntax.cpp 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/check/time/constraint_syntax.cpp 2009-12-09 06:38:21 UTC (rev 511)
@@ -28,6 +28,7 @@
{
m_changed=true;
refNode->set_marked(true);
+ std::cout << "setting marked" << std::endl;
}
}
@@ -255,7 +256,7 @@
traverser.traverse(m_hmsc);
}
-
+/*
HMscPtr HMscConstraintCheck::check(HMscPtr hmsc)
{
m_hmsc = hmsc;
@@ -276,7 +277,7 @@
mark_time_relations(copies);
return p;
-}
+}*/
bool HMscConstraintCheck::check_copy(HMscPtr hmsc)
{
Modified: trunk/src/check/time/constraint_syntax.h
===================================================================
--- trunk/src/check/time/constraint_syntax.h 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/check/time/constraint_syntax.h 2009-12-09 06:38:21 UTC (rev 511)
@@ -108,7 +108,7 @@
std::string m_first_find_with; /// attr of TimeRelation, RefNode first find with
std::stack<MscElement*> to_be_clean; ///< stack of items with atribute
std::set<TimeRelationRefNodePtr> m_active_constraints; ///< global set of active constrains
- HMscFlatDuplicator m_duplicator;
+ HMscDuplicator m_duplicator;
std::set<TimeRelationRefNodePtr> m_broken_rel;
HMscPtr m_hmsc;
@@ -143,7 +143,7 @@
}
/// Checks whether hmsc satisfy deadlock free property.
- HMscPtr check(HMscPtr hmsc);
+// HMscPtr check(HMscPtr hmsc);
bool check_copy(HMscPtr hmsc);
void on_white_node_found(ReferenceNode*);
Modified: trunk/src/check/time/tightening.h
===================================================================
--- trunk/src/check/time/tightening.h 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/check/time/tightening.h 2009-12-09 06:38:21 UTC (rev 511)
@@ -161,7 +161,7 @@
return transform(bmsc);
}
-
+
BMscPtr transform(BMscPtr bmsc);
~BMscTighter() {}
Modified: trunk/src/data/dfs_hmsc_flat_traverser.cpp
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.cpp 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/data/dfs_hmsc_flat_traverser.cpp 2009-12-09 06:38:21 UTC (rev 511)
@@ -112,7 +112,6 @@
////////////////////////////////////////////////////////
void DFSHMscsTraverse::traverse(HMscPtr hmsc)
{
- //set_hmsc_parent(hmsc);
m_to_traverse.push(hmsc.get()); // push to the stack
add_hmsc_as_traversed(hmsc); // add this hmsc as it was traversed
m_traverser->add_inner_hmsc_listener(this);
@@ -135,6 +134,7 @@
void DFSHMscsTraverse::on_new_inner_hmsc_found(HMscPtr hmsc, ReferenceNode* refNode)
{
+ set_hmsc_parent(hmsc);
m_to_traverse.push(hmsc.get());
}
Modified: trunk/src/data/dfs_hmsc_flat_traverser.h
===================================================================
--- trunk/src/data/dfs_hmsc_flat_traverser.h 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/src/data/dfs_hmsc_flat_traverser.h 2009-12-09 06:38:21 UTC (rev 511)
@@ -152,8 +152,8 @@
TraverseHMscStartListenerPList m_hmsc_start_listeners;
TraverseHMscFinishListenerPList m_hmsc_finish_listeners;
- HMscPtr get_hmsc_parent(HMscPtr);
- void set_hmsc_parent(HMscPtr);
+ HMscPtr get_hmsc_parent(MscPtr);
+ void set_hmsc_parent(MscPtr);
public:
DFSHMscsTraverse(DFSHMscFlatTraverser* t, std::string p="hmsc_parent")
Modified: trunk/tests/CMakeLists.txt
===================================================================
--- trunk/tests/CMakeLists.txt 2009-12-09 01:19:20 UTC (rev 510)
+++ trunk/tests/CMakeLists.txt 2009-12-09 06:38:21 UTC (rev 511)
@@ -177,6 +177,17 @@
scpseudocode
scZ120
)
+
+#ADD_EXECUTABLE(duplicator_test
+
+# duplicator_test.cpp
+#)
+#TARGET_LINK_LIBRARIES(duplicator_test
+# scmsc
+# sctime
+# scpseudocode
+# scZ120
+#)
#
# ADD_EXECUTABLE(bmsc_tightening_test
# bmsc_tightening_test.cpp
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <got...@us...> - 2009-12-16 16:04:41
|
Revision: 530
http://scstudio.svn.sourceforge.net/scstudio/?rev=530&view=rev
Author: gotthardp
Date: 2009-12-16 16:04:22 +0000 (Wed, 16 Dec 2009)
Log Message:
-----------
Quick fix of the previous commits.
Modified Paths:
--------------
trunk/src/data/beautify/instance_sequencer.cpp
trunk/tests/acyclic/acyclic1.mpr
trunk/tests/acyclic/acyclic2.mpr
trunk/tests/acyclic/acyclic3.mpr
trunk/tests/acyclic/acyclic4.mpr
trunk/tests/acyclic/acyclic5.mpr
trunk/tests/acyclic/acyclic6.mpr
trunk/tests/acyclic/cyclic1.mpr
trunk/tests/acyclic/cyclic2.mpr
trunk/tests/acyclic/cyclic3.mpr
trunk/tests/acyclic/cyclic4.mpr
trunk/tests/deadlock/deadlock1.mpr
trunk/tests/deadlock/deadlock2.mpr
trunk/tests/deadlock/deadlock3.mpr
trunk/tests/deadlock/deadlock4.mpr
trunk/tests/deadlock/deadlock5.mpr
trunk/tests/deadlock/nodeadlock1.mpr
trunk/tests/deadlock/nodeadlock10.mpr
trunk/tests/deadlock/nodeadlock11.mpr
trunk/tests/deadlock/nodeadlock2.mpr
trunk/tests/deadlock/nodeadlock3.mpr
trunk/tests/deadlock/nodeadlock4.mpr
trunk/tests/deadlock/nodeadlock5.mpr
trunk/tests/deadlock/nodeadlock6.mpr
trunk/tests/deadlock/nodeadlock7.mpr
trunk/tests/deadlock/nodeadlock8.mpr
trunk/tests/deadlock/nodeadlock9.mpr
trunk/tests/fifo/fifo1.mpr
trunk/tests/fifo/fifo2.mpr
trunk/tests/fifo/fifo3.mpr
trunk/tests/fifo/fifo4.mpr
trunk/tests/fifo/fifo5.mpr
trunk/tests/fifo/fifo6.mpr
trunk/tests/fifo/fifo7.mpr
trunk/tests/fifo/nonfifo1.mpr
trunk/tests/fifo/nonfifo2.mpr
trunk/tests/local_choice/hard1_nonlocal.mpr
trunk/tests/local_choice/hard2_nonlocal.mpr
trunk/tests/local_choice/hard3_local.mpr
trunk/tests/local_choice/medium1_nonlocal.mpr
trunk/tests/local_choice/medium2_nonlocal.mpr
trunk/tests/local_choice/medium3_local.mpr
trunk/tests/local_choice/simple2_nonlocal.mpr
trunk/tests/local_choice/simple3_nonlocal.mpr
trunk/tests/local_choice/simple_local.mpr
trunk/tests/local_choice/simple_nonlocal.mpr
trunk/tests/membership/cycleWithEmpty_neg_hmsc.mpr
trunk/tests/membership/cycleWithEmpty_neg_pat.mpr
trunk/tests/membership/cycleWithEmpty_pos_hmsc.mpr
trunk/tests/membership/cycleWithEmpty_pos_pat.mpr
trunk/tests/membership/cycle_neg_hmsc.mpr
trunk/tests/membership/cycle_neg_pat.mpr
trunk/tests/membership/cycle_pos_hmsc.mpr
trunk/tests/membership/cycle_pos_pat.mpr
trunk/tests/membership/empty_pos_hmsc.mpr
trunk/tests/membership/empty_pos_pat.mpr
trunk/tests/membership/hard_neg_hmsc.mpr
trunk/tests/membership/hard_neg_pat.mpr
trunk/tests/membership/hard_pos_hmsc.mpr
trunk/tests/membership/hard_pos_pat.mpr
trunk/tests/membership/simple1_neg_hmsc.mpr
trunk/tests/membership/simple1_neg_pat.mpr
trunk/tests/membership/simple1_pos_hmsc.mpr
trunk/tests/membership/simple1_pos_pat.mpr
trunk/tests/membership/simple2_neg_hmsc.mpr
trunk/tests/membership/simple2_neg_pat.mpr
trunk/tests/membership/simple2_pos_hmsc.mpr
trunk/tests/membership/simple2_pos_pat.mpr
trunk/tests/universal_boundedness/bounded.mpr
trunk/tests/universal_boundedness/bounded2.mpr
trunk/tests/universal_boundedness/bounded3.mpr
trunk/tests/universal_boundedness/bounded4.mpr
trunk/tests/universal_boundedness/bounded5.mpr
trunk/tests/universal_boundedness/unbounded.mpr
trunk/tests/universal_boundedness/unbounded2.mpr
trunk/tests/universal_boundedness/unbounded3.mpr
trunk/tests/universal_boundedness/unbounded4.mpr
trunk/tests/universal_boundedness/unbounded5.mpr
Property Changed:
----------------
trunk/tests/acyclic/acyclic1.mpr
trunk/tests/acyclic/acyclic2.mpr
trunk/tests/acyclic/acyclic3.mpr
trunk/tests/acyclic/acyclic4.mpr
trunk/tests/acyclic/acyclic5.mpr
trunk/tests/acyclic/acyclic6.mpr
trunk/tests/acyclic/cyclic1.mpr
trunk/tests/acyclic/cyclic2.mpr
trunk/tests/acyclic/cyclic3.mpr
trunk/tests/acyclic/cyclic4.mpr
trunk/tests/deadlock/deadlock1.mpr
trunk/tests/deadlock/deadlock1.vsd
trunk/tests/deadlock/deadlock2.mpr
trunk/tests/deadlock/deadlock2.vsd
trunk/tests/deadlock/deadlock3.mpr
trunk/tests/deadlock/deadlock3.vsd
trunk/tests/deadlock/deadlock4.mpr
trunk/tests/deadlock/deadlock4.vsd
trunk/tests/deadlock/deadlock5.mpr
trunk/tests/deadlock/deadlock5.vsd
trunk/tests/deadlock/nodeadlock1.mpr
trunk/tests/deadlock/nodeadlock1.vsd
trunk/tests/deadlock/nodeadlock10.mpr
trunk/tests/deadlock/nodeadlock10.vsd
trunk/tests/deadlock/nodeadlock11.mpr
trunk/tests/deadlock/nodeadlock11.vsd
trunk/tests/deadlock/nodeadlock2.mpr
trunk/tests/deadlock/nodeadlock2.vsd
trunk/tests/deadlock/nodeadlock3.mpr
trunk/tests/deadlock/nodeadlock3.vsd
trunk/tests/deadlock/nodeadlock4.mpr
trunk/tests/deadlock/nodeadlock4.vsd
trunk/tests/deadlock/nodeadlock5.mpr
trunk/tests/deadlock/nodeadlock5.vsd
trunk/tests/deadlock/nodeadlock6.mpr
trunk/tests/deadlock/nodeadlock6.vsd
trunk/tests/deadlock/nodeadlock7.mpr
trunk/tests/deadlock/nodeadlock7.vsd
trunk/tests/deadlock/nodeadlock8.mpr
trunk/tests/deadlock/nodeadlock8.vsd
trunk/tests/deadlock/nodeadlock9.mpr
trunk/tests/deadlock/nodeadlock9.vsd
trunk/tests/fifo/fifo1.mpr
trunk/tests/fifo/fifo2.mpr
trunk/tests/fifo/fifo3.mpr
trunk/tests/fifo/fifo4.mpr
trunk/tests/fifo/fifo5.mpr
trunk/tests/fifo/fifo6.mpr
trunk/tests/fifo/fifo7.mpr
trunk/tests/fifo/nonfifo1.mpr
trunk/tests/fifo/nonfifo2.mpr
trunk/tests/local_choice/hard1_nonlocal.mpr
trunk/tests/local_choice/hard2_nonlocal.mpr
trunk/tests/local_choice/hard3_local.mpr
trunk/tests/local_choice/medium1_nonlocal.mpr
trunk/tests/local_choice/medium2_nonlocal.mpr
trunk/tests/local_choice/medium3_local.mpr
trunk/tests/local_choice/simple2_nonlocal.mpr
trunk/tests/local_choice/simple3_nonlocal.mpr
trunk/tests/local_choice/simple_local.mpr
trunk/tests/local_choice/simple_nonlocal.mpr
trunk/tests/membership/cycleWithEmpty_neg_hmsc.mpr
trunk/tests/membership/cycleWithEmpty_neg_pat.mpr
trunk/tests/membership/cycleWithEmpty_pos_hmsc.mpr
trunk/tests/membership/cycleWithEmpty_pos_pat.mpr
trunk/tests/membership/cycle_neg_hmsc.mpr
trunk/tests/membership/cycle_neg_pat.mpr
trunk/tests/membership/cycle_pos_hmsc.mpr
trunk/tests/membership/cycle_pos_pat.mpr
trunk/tests/membership/empty_pos_hmsc.mpr
trunk/tests/membership/empty_pos_pat.mpr
trunk/tests/membership/hard_neg_hmsc.mpr
trunk/tests/membership/hard_neg_pat.mpr
trunk/tests/membership/hard_pos_hmsc.mpr
trunk/tests/membership/hard_pos_pat.mpr
trunk/tests/membership/simple1_neg_hmsc.mpr
trunk/tests/membership/simple1_neg_pat.mpr
trunk/tests/membership/simple1_pos_hmsc.mpr
trunk/tests/membership/simple1_pos_pat.mpr
trunk/tests/membership/simple2_neg_hmsc.mpr
trunk/tests/membership/simple2_neg_pat.mpr
trunk/tests/membership/simple2_pos_hmsc.mpr
trunk/tests/membership/simple2_pos_pat.mpr
trunk/tests/time/tightening_tests/tighten1.mpr
trunk/tests/time/tightening_tests/tighten1.vsd
trunk/tests/time/tightening_tests/tighten10.vsd
trunk/tests/time/tightening_tests/tighten10_result.vsd
trunk/tests/time/tightening_tests/tighten1_result.vsd
trunk/tests/time/tightening_tests/tighten2.vsd
trunk/tests/time/tightening_tests/tighten2_result.vsd
trunk/tests/time/tightening_tests/tighten3.vsd
trunk/tests/time/tightening_tests/tighten3_result.vsd
trunk/tests/time/tightening_tests/tighten4.vsd
trunk/tests/time/tightening_tests/tighten4_result.vsd
trunk/tests/time/tightening_tests/tighten5.vsd
trunk/tests/time/tightening_tests/tighten5_result.vsd
trunk/tests/time/tightening_tests/tighten6.vsd
trunk/tests/time/tightening_tests/tighten6_result.vsd
trunk/tests/time/tightening_tests/tighten7.vsd
trunk/tests/time/tightening_tests/tighten7_result.vsd
trunk/tests/time/tightening_tests/tighten8.vsd
trunk/tests/time/tightening_tests/tighten8_result.vsd
trunk/tests/time/tightening_tests/tighten9.vsd
trunk/tests/time/tightening_tests/tighten9_result.vsd
trunk/tests/time/tightening_tests/tightening11.vsd
trunk/tests/time/tightening_tests/tightening11_result.vsd
trunk/tests/time/tightening_tests/tightening12.vsd
trunk/tests/time/tightening_tests/tightening12_result.vsd
trunk/tests/time/tightening_tests/tightening12_result_err.vsd
trunk/tests/time/tightening_tests/tightening13.vsd
trunk/tests/time/tightening_tests/tightening13_result.vsd
trunk/tests/universal_boundedness/bounded.mpr
trunk/tests/universal_boundedness/bounded.vsd
trunk/tests/universal_boundedness/bounded2.mpr
trunk/tests/universal_boundedness/bounded2.vsd
trunk/tests/universal_boundedness/bounded3.mpr
trunk/tests/universal_boundedness/bounded3.vsd
trunk/tests/universal_boundedness/bounded4.mpr
trunk/tests/universal_boundedness/bounded4.vsd
trunk/tests/universal_boundedness/bounded5.mpr
trunk/tests/universal_boundedness/bounded5.vsd
trunk/tests/universal_boundedness/unbounded.mpr
trunk/tests/universal_boundedness/unbounded.vsd
trunk/tests/universal_boundedness/unbounded2.mpr
trunk/tests/universal_boundedness/unbounded2.vsd
trunk/tests/universal_boundedness/unbounded3.mpr
trunk/tests/universal_boundedness/unbounded3.vsd
trunk/tests/universal_boundedness/unbounded4.mpr
trunk/tests/universal_boundedness/unbounded4.vsd
trunk/tests/universal_boundedness/unbounded5.mpr
trunk/tests/universal_boundedness/unbounded5.vsd
Modified: trunk/src/data/beautify/instance_sequencer.cpp
===================================================================
--- trunk/src/data/beautify/instance_sequencer.cpp 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/src/data/beautify/instance_sequencer.cpp 2009-12-16 16:04:22 UTC (rev 530)
@@ -153,7 +153,7 @@
}
//put index on remembered position
- for(i = 0; i < min_i; i++)
+ for(unsigned i = 0; i < min_i; i++)
std::swap(m_array.at(i), m_array.at(i+1));
return 0;
Modified: trunk/tests/acyclic/acyclic1.mpr
===================================================================
--- trunk/tests/acyclic/acyclic1.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/acyclic1.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,21 +1,21 @@
-mscdocument acyclic1.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-out m1,0 to B;
-endinstance;
-B: instance;
-in m1,0 from A;
-out m2,1 to C;
-endinstance;
-C: instance;
-out m3,2 to D;
-in m2,1 from B;
-endinstance;
-D: instance;
-in m3,2 from C;
-endinstance;
-endmsc;
+mscdocument acyclic1.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+out m1,0 to B;
+endinstance;
+B: instance;
+in m1,0 from A;
+out m2,1 to C;
+endinstance;
+C: instance;
+out m3,2 to D;
+in m2,1 from B;
+endinstance;
+D: instance;
+in m3,2 from C;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/acyclic1.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/acyclic2.mpr
===================================================================
--- trunk/tests/acyclic/acyclic2.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/acyclic2.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,27 +1,27 @@
-mscdocument acyclic2.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-out m1,0 to B;
-in m6,1 from B;
-endinstance;
-B: instance;
-in m1,0 from A;
-out m2,2 to C;
-in m5,3 from C;
-out m6,1 to A;
-endinstance;
-C: instance;
-in m2,2 from B;
-out m3,4 to D;
-in m4,5 from D;
-out m5,3 to B;
-endinstance;
-D: instance;
-in m3,4 from C;
-out m4,5 to C;
-endinstance;
-endmsc;
+mscdocument acyclic2.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+out m1,0 to B;
+in m6,1 from B;
+endinstance;
+B: instance;
+in m1,0 from A;
+out m2,2 to C;
+in m5,3 from C;
+out m6,1 to A;
+endinstance;
+C: instance;
+in m2,2 from B;
+out m3,4 to D;
+in m4,5 from D;
+out m5,3 to B;
+endinstance;
+D: instance;
+in m3,4 from C;
+out m4,5 to C;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/acyclic2.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/acyclic3.mpr
===================================================================
--- trunk/tests/acyclic/acyclic3.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/acyclic3.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,15 +1,15 @@
-mscdocument acyclic3.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-endinstance;
-B: instance;
-endinstance;
-C: instance;
-endinstance;
-D: instance;
-endinstance;
-endmsc;
+mscdocument acyclic3.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+endinstance;
+B: instance;
+endinstance;
+C: instance;
+endinstance;
+D: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/acyclic3.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/acyclic4.mpr
===================================================================
--- trunk/tests/acyclic/acyclic4.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/acyclic4.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,21 +1,21 @@
-mscdocument acyclic4.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-endinstance;
-B: instance;
-concurrent;
-label e0; in m1,0 from C;
-label e1; out m2,1 to C;
-endconcurrent;
-endinstance;
-C: instance;
-in m2,1 from B;
-out m1,0 to B;
-endinstance;
-D: instance;
-endinstance;
-endmsc;
+mscdocument acyclic4.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+endinstance;
+B: instance;
+concurrent;
+label e0; in m1,0 from C;
+label e1; out m2,1 to C;
+endconcurrent;
+endinstance;
+C: instance;
+in m2,1 from B;
+out m1,0 to B;
+endinstance;
+D: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/acyclic4.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/acyclic5.mpr
===================================================================
--- trunk/tests/acyclic/acyclic5.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/acyclic5.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,23 +1,23 @@
-mscdocument acyclic5.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-concurrent;
-label e0; out m1,0 to B;
-label e1; in m2,1 from B;
-endconcurrent;
-endinstance;
-B: instance;
-concurrent;
-label e2; in m1,0 from A;
-label e3; out m2,1 to A;
-endconcurrent;
-endinstance;
-C: instance;
-endinstance;
-D: instance;
-endinstance;
-endmsc;
+mscdocument acyclic5.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+concurrent;
+label e0; out m1,0 to B;
+label e1; in m2,1 from B;
+endconcurrent;
+endinstance;
+B: instance;
+concurrent;
+label e2; in m1,0 from A;
+label e3; out m2,1 to A;
+endconcurrent;
+endinstance;
+C: instance;
+endinstance;
+D: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/acyclic5.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/acyclic6.mpr
===================================================================
--- trunk/tests/acyclic/acyclic6.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/acyclic6.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,33 +1,33 @@
-mscdocument acyclic6.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-concurrent;
-label e0; in m3,0 from B;
-endconcurrent;
-concurrent;
-label e1; out m1,1 to B;
-endconcurrent;
-endinstance;
-B: instance;
-concurrent;
-label e2; out m4,2 to D;
-label e3; in m1,1 from A;
-label e4; out m3,0 to A;
-label e5; in m2,3 from D;
-endconcurrent;
-endinstance;
-C: instance;
-endinstance;
-D: instance;
-concurrent;
-label e6; in m4,2 from B;
-endconcurrent;
-concurrent;
-label e7; out m2,3 to B;
-endconcurrent;
-endinstance;
-endmsc;
+mscdocument acyclic6.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+concurrent;
+label e0; in m3,0 from B;
+endconcurrent;
+concurrent;
+label e1; out m1,1 to B;
+endconcurrent;
+endinstance;
+B: instance;
+concurrent;
+label e2; out m4,2 to D;
+label e3; in m1,1 from A;
+label e4; out m3,0 to A;
+label e5; in m2,3 from D;
+endconcurrent;
+endinstance;
+C: instance;
+endinstance;
+D: instance;
+concurrent;
+label e6; in m4,2 from B;
+endconcurrent;
+concurrent;
+label e7; out m2,3 to B;
+endconcurrent;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/acyclic6.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/cyclic1.mpr
===================================================================
--- trunk/tests/acyclic/cyclic1.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/cyclic1.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,21 +1,21 @@
-mscdocument cyclic1.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-endinstance;
-B: instance;
-endinstance;
-C: instance;
-in m1,0 from D;
-in m2,1 from D;
-out m3,2 to D;
-endinstance;
-D: instance;
-in m3,2 from C;
-out m1,0 to C;
-out m2,1 to C;
-endinstance;
-endmsc;
+mscdocument cyclic1.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+endinstance;
+B: instance;
+endinstance;
+C: instance;
+in m1,0 from D;
+in m2,1 from D;
+out m3,2 to D;
+endinstance;
+D: instance;
+in m3,2 from C;
+out m1,0 to C;
+out m2,1 to C;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/cyclic1.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/cyclic2.mpr
===================================================================
--- trunk/tests/acyclic/cyclic2.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/cyclic2.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,27 +1,27 @@
-mscdocument cyclic2.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-in m6,0 from B;
-out m1,1 to B;
-endinstance;
-B: instance;
-in m1,1 from A;
-out m2,2 to C;
-in m5,3 from C;
-out m6,0 to A;
-endinstance;
-C: instance;
-in m2,2 from B;
-out m3,4 to D;
-in m4,5 from D;
-out m5,3 to B;
-endinstance;
-D: instance;
-in m3,4 from C;
-out m4,5 to C;
-endinstance;
-endmsc;
+mscdocument cyclic2.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+in m6,0 from B;
+out m1,1 to B;
+endinstance;
+B: instance;
+in m1,1 from A;
+out m2,2 to C;
+in m5,3 from C;
+out m6,0 to A;
+endinstance;
+C: instance;
+in m2,2 from B;
+out m3,4 to D;
+in m4,5 from D;
+out m5,3 to B;
+endinstance;
+D: instance;
+in m3,4 from C;
+out m4,5 to C;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/cyclic2.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/cyclic3.mpr
===================================================================
--- trunk/tests/acyclic/cyclic3.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/cyclic3.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,27 +1,27 @@
-mscdocument cyclic3.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-concurrent;
-label e0; in m2,0 from D;
-endconcurrent;
-concurrent;
-label e1; out m1,1 to D;
-endconcurrent;
-endinstance;
-B: instance;
-endinstance;
-C: instance;
-endinstance;
-D: instance;
-concurrent;
-label e2; in m1,1 from A;
-endconcurrent;
-concurrent;
-label e3; out m2,0 to A;
-endconcurrent;
-endinstance;
-endmsc;
+mscdocument cyclic3.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+concurrent;
+label e0; in m2,0 from D;
+endconcurrent;
+concurrent;
+label e1; out m1,1 to D;
+endconcurrent;
+endinstance;
+B: instance;
+endinstance;
+C: instance;
+endinstance;
+D: instance;
+concurrent;
+label e2; in m1,1 from A;
+endconcurrent;
+concurrent;
+label e3; out m2,0 to A;
+endconcurrent;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/cyclic3.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/acyclic/cyclic4.mpr
===================================================================
--- trunk/tests/acyclic/cyclic4.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/acyclic/cyclic4.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,31 +1,31 @@
-mscdocument cyclic4.vsd;
-msc Page_1;
-inst A;
-inst B;
-inst C;
-inst D;
-A: instance;
-concurrent;
-label e0; in m2,0 from D;
-label e1; out m3,1 to D;
-endconcurrent;
-in m4,2 from D;
-concurrent;
-label e2; out m1,3 to D;
-endconcurrent;
-endinstance;
-B: instance;
-endinstance;
-C: instance;
-endinstance;
-D: instance;
-concurrent;
-label e3; in m1,3 from A;
-endconcurrent;
-in m3,1 from A;
-concurrent;
-label e4; out m2,0 to A;
-label e5; out m4,2 to A;
-endconcurrent;
-endinstance;
-endmsc;
+mscdocument cyclic4.vsd;
+msc Page_1;
+inst A;
+inst B;
+inst C;
+inst D;
+A: instance;
+concurrent;
+label e0; in m2,0 from D;
+label e1; out m3,1 to D;
+endconcurrent;
+in m4,2 from D;
+concurrent;
+label e2; out m1,3 to D;
+endconcurrent;
+endinstance;
+B: instance;
+endinstance;
+C: instance;
+endinstance;
+D: instance;
+concurrent;
+label e3; in m1,3 from A;
+endconcurrent;
+in m3,1 from A;
+concurrent;
+label e4; out m2,0 to A;
+label e5; out m4,2 to A;
+endconcurrent;
+endinstance;
+endmsc;
Property changes on: trunk/tests/acyclic/cyclic4.mpr
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/tests/deadlock/deadlock1.mpr
===================================================================
--- trunk/tests/deadlock/deadlock1.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/deadlock/deadlock1.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,28 +1,28 @@
-mscdocument deadlock1.vsd;
-msc Page_1;
-/* ATTRIBUTES: [first_node] */
-initial connect L0;
-/* ATTRIBUTES: [first_node] */
-L0: reference empty connect L1, L2;
-L1: final;
-/* ATTRIBUTES: [first_node] */
-L2: reference nonempty;
-endmsc;
-msc nonempty;
-inst p;
-inst q;
-p: instance;
-out m,0 to q;
-endinstance;
-q: instance;
-in m,0 from p;
-endinstance;
-endmsc;
-msc empty;
-inst p;
-inst q;
-p: instance;
-endinstance;
-q: instance;
-endinstance;
-endmsc;
+mscdocument deadlock1.vsd;
+msc Page_1;
+/* ATTRIBUTES: [first_node] */
+initial connect L0;
+/* ATTRIBUTES: [first_node] */
+L0: reference empty connect L1, L2;
+L1: final;
+/* ATTRIBUTES: [first_node] */
+L2: reference nonempty;
+endmsc;
+msc nonempty;
+inst p;
+inst q;
+p: instance;
+out m,0 to q;
+endinstance;
+q: instance;
+in m,0 from p;
+endinstance;
+endmsc;
+msc empty;
+inst p;
+inst q;
+p: instance;
+endinstance;
+q: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/deadlock/deadlock1.mpr
___________________________________________________________________
Deleted: svn:executable
- *
Added: svn:eol-style
+ native
Property changes on: trunk/tests/deadlock/deadlock1.vsd
___________________________________________________________________
Deleted: svn:executable
- *
Modified: trunk/tests/deadlock/deadlock2.mpr
===================================================================
--- trunk/tests/deadlock/deadlock2.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/deadlock/deadlock2.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,28 +1,28 @@
-mscdocument deadlock2.vsd;
-msc Page_1;
-/* ATTRIBUTES: [first_node] */
-initial connect L0;
-/* ATTRIBUTES: [first_node] */
-L0: reference nonempty connect L1, L2;
-/* ATTRIBUTES: [first_node] */
-L1: reference empty;
-L2: final;
-endmsc;
-msc nonempty;
-inst p;
-inst q;
-p: instance;
-out m,0 to q;
-endinstance;
-q: instance;
-in m,0 from p;
-endinstance;
-endmsc;
-msc empty;
-inst p;
-inst q;
-p: instance;
-endinstance;
-q: instance;
-endinstance;
-endmsc;
+mscdocument deadlock2.vsd;
+msc Page_1;
+/* ATTRIBUTES: [first_node] */
+initial connect L0;
+/* ATTRIBUTES: [first_node] */
+L0: reference nonempty connect L1, L2;
+/* ATTRIBUTES: [first_node] */
+L1: reference empty;
+L2: final;
+endmsc;
+msc nonempty;
+inst p;
+inst q;
+p: instance;
+out m,0 to q;
+endinstance;
+q: instance;
+in m,0 from p;
+endinstance;
+endmsc;
+msc empty;
+inst p;
+inst q;
+p: instance;
+endinstance;
+q: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/deadlock/deadlock2.mpr
___________________________________________________________________
Deleted: svn:executable
- *
Added: svn:eol-style
+ native
Property changes on: trunk/tests/deadlock/deadlock2.vsd
___________________________________________________________________
Deleted: svn:executable
- *
Modified: trunk/tests/deadlock/deadlock3.mpr
===================================================================
--- trunk/tests/deadlock/deadlock3.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/deadlock/deadlock3.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,29 +1,29 @@
-mscdocument deadlock3.vsd;
-msc Page_1;
-/* ATTRIBUTES: [first_node] */
-initial connect L0;
-/* ATTRIBUTES: [first_node] */
-L0: reference empty connect L1, L2;
-L1: final;
-L2: connect L3;
-/* ATTRIBUTES: [first_node] */
-L3: reference empty;
-endmsc;
-msc nonempty;
-inst p;
-inst q;
-p: instance;
-out m,0 to q;
-endinstance;
-q: instance;
-in m,0 from p;
-endinstance;
-endmsc;
-msc empty;
-inst p;
-inst q;
-p: instance;
-endinstance;
-q: instance;
-endinstance;
-endmsc;
+mscdocument deadlock3.vsd;
+msc Page_1;
+/* ATTRIBUTES: [first_node] */
+initial connect L0;
+/* ATTRIBUTES: [first_node] */
+L0: reference empty connect L1, L2;
+L1: final;
+L2: connect L3;
+/* ATTRIBUTES: [first_node] */
+L3: reference empty;
+endmsc;
+msc nonempty;
+inst p;
+inst q;
+p: instance;
+out m,0 to q;
+endinstance;
+q: instance;
+in m,0 from p;
+endinstance;
+endmsc;
+msc empty;
+inst p;
+inst q;
+p: instance;
+endinstance;
+q: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/deadlock/deadlock3.mpr
___________________________________________________________________
Deleted: svn:executable
- *
Added: svn:eol-style
+ native
Property changes on: trunk/tests/deadlock/deadlock3.vsd
___________________________________________________________________
Deleted: svn:executable
- *
Modified: trunk/tests/deadlock/deadlock4.mpr
===================================================================
--- trunk/tests/deadlock/deadlock4.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/deadlock/deadlock4.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,30 +1,30 @@
-mscdocument deadlock4.vsd;
-msc Page_1;
-/* ATTRIBUTES: [first_node] */
-initial connect L0;
-/* ATTRIBUTES: [first_node] */
-L0: reference empty connect L1, L2;
-L1: connect L3;
-L2: final;
-L3: connect L4, L1;
-/* ATTRIBUTES: [first_node] */
-L4: reference empty;
-endmsc;
-msc nonempty;
-inst p;
-inst q;
-p: instance;
-out m,0 to q;
-endinstance;
-q: instance;
-in m,0 from p;
-endinstance;
-endmsc;
-msc empty;
-inst p;
-inst q;
-p: instance;
-endinstance;
-q: instance;
-endinstance;
-endmsc;
+mscdocument deadlock4.vsd;
+msc Page_1;
+/* ATTRIBUTES: [first_node] */
+initial connect L0;
+/* ATTRIBUTES: [first_node] */
+L0: reference empty connect L1, L2;
+L1: connect L3;
+L2: final;
+L3: connect L4, L1;
+/* ATTRIBUTES: [first_node] */
+L4: reference empty;
+endmsc;
+msc nonempty;
+inst p;
+inst q;
+p: instance;
+out m,0 to q;
+endinstance;
+q: instance;
+in m,0 from p;
+endinstance;
+endmsc;
+msc empty;
+inst p;
+inst q;
+p: instance;
+endinstance;
+q: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/deadlock/deadlock4.mpr
___________________________________________________________________
Deleted: svn:executable
- *
Added: svn:eol-style
+ native
Property changes on: trunk/tests/deadlock/deadlock4.vsd
___________________________________________________________________
Deleted: svn:executable
- *
Modified: trunk/tests/deadlock/deadlock5.mpr
===================================================================
--- trunk/tests/deadlock/deadlock5.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/deadlock/deadlock5.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,29 +1,29 @@
-mscdocument deadlock5.vsd;
-msc Page_1;
-/* ATTRIBUTES: [first_node] */
-initial connect L0;
-/* ATTRIBUTES: [first_node] */
-L0: reference empty connect L1, L2;
-L1: final;
-/* ATTRIBUTES: [first_node] */
-L2: reference empty connect L3;
-L3: connect L3;
-endmsc;
-msc nonempty;
-inst p;
-inst q;
-p: instance;
-out m,0 to q;
-endinstance;
-q: instance;
-in m,0 from p;
-endinstance;
-endmsc;
-msc empty;
-inst p;
-inst q;
-p: instance;
-endinstance;
-q: instance;
-endinstance;
-endmsc;
+mscdocument deadlock5.vsd;
+msc Page_1;
+/* ATTRIBUTES: [first_node] */
+initial connect L0;
+/* ATTRIBUTES: [first_node] */
+L0: reference empty connect L1, L2;
+L1: final;
+/* ATTRIBUTES: [first_node] */
+L2: reference empty connect L3;
+L3: connect L3;
+endmsc;
+msc nonempty;
+inst p;
+inst q;
+p: instance;
+out m,0 to q;
+endinstance;
+q: instance;
+in m,0 from p;
+endinstance;
+endmsc;
+msc empty;
+inst p;
+inst q;
+p: instance;
+endinstance;
+q: instance;
+endinstance;
+endmsc;
Property changes on: trunk/tests/deadlock/deadlock5.mpr
___________________________________________________________________
Deleted: svn:executable
- *
Added: svn:eol-style
+ native
Property changes on: trunk/tests/deadlock/deadlock5.vsd
___________________________________________________________________
Deleted: svn:executable
- *
Modified: trunk/tests/deadlock/nodeadlock1.mpr
===================================================================
--- trunk/tests/deadlock/nodeadlock1.mpr 2009-12-16 15:34:09 UTC (rev 529)
+++ trunk/tests/deadlock/nodeadlock1.mpr 2009-12-16 16:04:22 UTC (rev 530)
@@ -1,26 +1,26 @@
-mscdocument nodeadlock1.vsd;
-msc Page_1;
-/* ATTRIBUTES: [first_node] */
-initial connect L0;
-/* ATTRIBUTES: [first_node] */
-L0: reference empty connect L1;
-L1: f...
[truncated message content] |
|
From: <got...@us...> - 2009-12-28 16:46:02
|
Revision: 537
http://scstudio.svn.sourceforge.net/scstudio/?rev=537&view=rev
Author: gotthardp
Date: 2009-12-28 16:45:51 +0000 (Mon, 28 Dec 2009)
Log Message:
-----------
Project migrated to Microsoft Visual Studio 2008.
Modified Paths:
--------------
trunk/CMakeLists.txt
trunk/src/view/visio/addon/dllmodule.rc
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/scstudio.vcproj
trunk/src/view/visio/scstudio.nsi
trunk/src/view/visio/scstudio.sln
trunk/src/view/visio/setup-nsis/filefix.cpp
trunk/src/view/visio/setup-nsis/setup-nsis.vcproj
Modified: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/CMakeLists.txt 2009-12-28 16:45:51 UTC (rev 537)
@@ -33,6 +33,10 @@
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -ansi -Wall -Wno-long-long")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+# Disable microsoft security warnings
+IF(MSVC)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS")
+ENDIF(MSVC)
FIND_PACKAGE(Boost REQUIRED)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
Modified: trunk/src/view/visio/addon/dllmodule.rc
===================================================================
--- trunk/src/view/visio/addon/dllmodule.rc 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/addon/dllmodule.rc 2009-12-28 16:45:51 UTC (rev 537)
@@ -31,29 +31,23 @@
CAPTION "About Sequence Chart Studio"
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN
- LTEXT "Sequence Chart Studio 0.0.0",IDC_ABOUT_VERSION,5,5,230,
- 10
+ LTEXT "Sequence Chart Studio 0.0.0",IDC_ABOUT_VERSION,5,5,230,10
LTEXT "http://scstudio.sourceforge.net",IDC_STATIC,5,15,230,10
- LTEXT "This program comes with ABSOLUTELY NO WARRANTY. This program is a free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1.",
- IDC_STATIC,5,30,230,25
+ LTEXT "This program comes with ABSOLUTELY NO WARRANTY. This program is a free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1.",IDC_STATIC,5,30,230,25
DEFPUSHBUTTON "&OK",IDOK,184,60,50,14
END
IDD_OPTIONS DIALOGEX 0, 0, 205, 135
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
- WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,145,14,50,14
PUSHBUTTON "Cancel",IDCANCEL,145,33,50,14
LTEXT "Properties to check",IDC_STATIC,5,5,130,8
- CONTROL "",IDC_CHECKLIST,"SysListView32",LVS_REPORT |
- LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,5,
- 14,130,90
+ CONTROL "",IDC_CHECKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,5,14,130,90
LTEXT "Display",IDC_STATIC,5,108,130,8
- COMBOBOX IDC_OUTPUTLEVEL,5,118,130,61,CBS_DROPDOWNLIST | CBS_SORT |
- WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_OUTPUTLEVEL,5,118,130,61,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
@@ -89,8 +83,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,3,27,0
- PRODUCTVERSION 0,3,27,0
+ FILEVERSION 0,3,28,0
+ PRODUCTVERSION 0,3,28,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x9L
@@ -107,13 +101,13 @@
BEGIN
VALUE "CompanyName", "Masaryk University Brno"
VALUE "FileDescription", "Microsoft Visio add-on for design and verification of Message Sequence Charts (MSC)."
- VALUE "FileVersion", "0.3.27"
+ VALUE "FileVersion", "0.3.28"
VALUE "InternalName", "scstudio.vsl"
VALUE "LegalCopyright", "(c) Petr Gotthard. All rights reserved."
VALUE "OriginalFilename", "scstudio.vsl"
VALUE "PrivateBuild", "$Revision$"
VALUE "ProductName", "Sequence Chart Studio"
- VALUE "ProductVersion", "0.3.27"
+ VALUE "ProductVersion", "0.3.28"
END
END
BLOCK "VarFileInfo"
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/addon/document.cpp 2009-12-28 16:45:51 UTC (rev 537)
@@ -30,7 +30,7 @@
// Include libraries from the Windows Template Library (WTL).
// http://wtl.sourceforge.net
-// Install WTL80 under e.g. "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\"
+// Install WTL81 under e.g. "C:\Program Files\Microsoft Visual Studio 9.0\VC\"
#include <atldlgs.h>
#include <boost/graph/adjacency_list.hpp>
@@ -976,7 +976,7 @@
for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
fpos != m_formatters.end(); fpos++)
{
- if(stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
+ if(_stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
continue;
ImportFormatterPtr formatter = boost::dynamic_pointer_cast<ImportFormatter>(*fpos);
@@ -1048,7 +1048,7 @@
for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
fpos != m_formatters.end(); fpos++)
{
- if(stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
+ if(_stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
continue;
ExportFormatterPtr formatter = boost::dynamic_pointer_cast<ExportFormatter>(*fpos);
Modified: trunk/src/view/visio/addon/scstudio.vcproj
===================================================================
--- trunk/src/view/visio/addon/scstudio.vcproj 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/addon/scstudio.vcproj 2009-12-28 16:45:51 UTC (rev 537)
@@ -1,161 +1,224 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="9,00"
Name="scstudio"
ProjectGUID="{0E00282C-F48B-4984-A274-5B59E1E2AD49}"
RootNamespace="scstudio"
- Keyword="AtlProj">
+ Keyword="AtlProj"
+ TargetFrameworkVersion="131072"
+ >
<Platforms>
<Platform
- Name="Win32"/>
+ Name="Win32"
+ />
</Platforms>
+ <ToolFiles>
+ </ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfATL="2"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="1">
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="1"
+ >
<Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\src;"$(BOOST_ROOT)";"$(VISIOSDK_ROOT)\Libraries\CPP\Include";"$(VISIOSDK_ROOT)\Libraries\CPP\Source";"$(VISIOSDK_ROOT)\Libraries\TypeLib";"$(VCInstallDir)\WTL80\include""
- PreprocessorDefinitions="WIN32;_WIN32_WINNT=0x0500;_WINDOWS;_DEBUG;_USRDLL"
- MinimalRebuild="TRUE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="2"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"/>
+ Name="VCPreBuildEventTool"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCCustomBuildTool"
+ />
<Tool
- Name="VCLinkerTool"
- RegisterOutput="TRUE"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="version.lib scmsc.lib"
- OutputFile="$(OutDir)\$(ProjectName).vsl"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\..\..\$(OutDir)"
- ModuleDefinitionFile=".\dllmodule.def"
- GenerateDebugInformation="TRUE"
- SubSystem="2"
- TargetMachine="1"/>
+ Name="VCXMLDataGeneratorTool"
+ />
<Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
AdditionalIncludeDirectories=""$(VISIOSDK_ROOT)\Libraries\TypeLib""
- MkTypLibCompatible="FALSE"
+ MkTypLibCompatible="false"
TargetEnvironment="1"
- GenerateStublessProxies="TRUE"
+ GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/scstudio.tlb"
HeaderFileName="scstudio.h"
DLLDataFileName=""
InterfaceIdentifierFileName="scstudio_i.c"
ProxyFileName="scstudio_p.c"
- ValidateParameters="FALSE"/>
+ ValidateParameters="false"
+ />
<Tool
- Name="VCPostBuildEventTool"
- Description="Signing code..."
- CommandLine="signcode $(OutDir)\$(ProjectName).vsl"
- ExcludedFromBuild="FALSE"/>
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\..\src;"$(BOOST_ROOT)";"$(VISIOSDK_ROOT)\Libraries\CPP\Include";"$(VISIOSDK_ROOT)\Libraries\CPP\Source";"$(VISIOSDK_ROOT)\Libraries\TypeLib";"$(VCInstallDir)\WTL81\include""
+ PreprocessorDefinitions="WIN32;_WIN32_WINNT=0x0500;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_DEBUG;_USRDLL"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ RuntimeTypeInfo="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
- <Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
- AdditionalIncludeDirectories="$(IntDir)"/>
+ AdditionalIncludeDirectories="$(IntDir)"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCLinkerTool"
+ RegisterOutput="true"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="version.lib scmsc.lib"
+ OutputFile="$(OutDir)\$(ProjectName).vsl"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\..\..\$(OutDir)"
+ ModuleDefinitionFile=".\dllmodule.def"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
<Tool
- Name="VCWebDeploymentTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCManifestTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="Signing code..."
+ CommandLine="signtool sign /a $(OutDir)\$(ProjectName).vsl"
+ ExcludedFromBuild="false"
+ />
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfATL="2"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="1">
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="1"
+ >
<Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories="..\..\..\..\src;"$(BOOST_ROOT)";"$(VISIOSDK_ROOT)\Libraries\CPP\Include";"$(VISIOSDK_ROOT)\Libraries\CPP\Source";"$(VISIOSDK_ROOT)\Libraries\TypeLib";"$(VCInstallDir)\WTL80\include""
- PreprocessorDefinitions="WIN32;_WIN32_WINNT=0x0500;_WINDOWS;NDEBUG;_USRDLL"
- RuntimeLibrary="2"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="2"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
+ Name="VCPreBuildEventTool"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCCustomBuildTool"
+ />
<Tool
- Name="VCLinkerTool"
- RegisterOutput="TRUE"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="version.lib scmsc.lib"
- OutputFile="$(OutDir)\$(ProjectName).vsl"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\..\..\$(OutDir)"
- ModuleDefinitionFile=".\dllmodule.def"
- GenerateDebugInformation="TRUE"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"/>
+ Name="VCXMLDataGeneratorTool"
+ />
<Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
AdditionalIncludeDirectories=""$(VISIOSDK_ROOT)\Libraries\TypeLib""
- MkTypLibCompatible="FALSE"
+ MkTypLibCompatible="false"
TargetEnvironment="1"
- GenerateStublessProxies="TRUE"
+ GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/scstudio.tlb"
HeaderFileName="scstudio.h"
DLLDataFileName=""
InterfaceIdentifierFileName="scstudio_i.c"
ProxyFileName="scstudio_p.c"
- ValidateParameters="FALSE"/>
+ ValidateParameters="false"
+ />
<Tool
- Name="VCPostBuildEventTool"
- Description="Signing code..."
- CommandLine="signcode $(OutDir)\$(ProjectName).vsl"
- ExcludedFromBuild="FALSE"/>
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\..\..\..\src;"$(BOOST_ROOT)";"$(VISIOSDK_ROOT)\Libraries\CPP\Include";"$(VISIOSDK_ROOT)\Libraries\CPP\Source";"$(VISIOSDK_ROOT)\Libraries\TypeLib";"$(VCInstallDir)\WTL81\include""
+ PreprocessorDefinitions="WIN32;_WIN32_WINNT=0x0500;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;NDEBUG;_USRDLL"
+ RuntimeLibrary="2"
+ RuntimeTypeInfo="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
- <Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
- AdditionalIncludeDirectories="$(IntDir)"/>
+ AdditionalIncludeDirectories="$(IntDir)"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
+ Name="VCLinkerTool"
+ RegisterOutput="true"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="version.lib scmsc.lib"
+ OutputFile="$(OutDir)\$(ProjectName).vsl"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\..\..\..\$(OutDir)"
+ ModuleDefinitionFile=".\dllmodule.def"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
<Tool
- Name="VCWebDeploymentTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCManagedWrapperGeneratorTool"/>
+ Name="VCManifestTool"
+ />
<Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="Signing code..."
+ CommandLine="signtool sign /a $(OutDir)\$(ProjectName).vsl"
+ ExcludedFromBuild="false"
+ />
</Configuration>
</Configurations>
<References>
@@ -164,124 +227,160 @@
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
<File
- RelativePath=".\aboutdlg.h">
+ RelativePath=".\aboutdlg.h"
+ >
</File>
<File
- RelativePath=".\addon.cpp">
+ RelativePath=".\addon.cpp"
+ >
</File>
<File
- RelativePath=".\addon.h">
+ RelativePath=".\addon.h"
+ >
</File>
<File
- RelativePath=".\dllmodule.cpp">
+ RelativePath=".\dllmodule.cpp"
+ >
</File>
<File
- RelativePath=".\dllmodule.def">
+ RelativePath=".\dllmodule.def"
+ >
</File>
<File
- RelativePath=".\dllmodule.h">
+ RelativePath=".\dllmodule.h"
+ >
</File>
<File
- RelativePath=".\document.cpp">
+ RelativePath=".\document.cpp"
+ >
</File>
<File
- RelativePath=".\document.h">
+ RelativePath=".\document.h"
+ >
</File>
<File
- RelativePath=".\errors.cpp">
+ RelativePath=".\errors.cpp"
+ >
</File>
<File
- RelativePath=".\errors.h">
+ RelativePath=".\errors.h"
+ >
</File>
<File
- RelativePath=".\eventsink.idl">
+ RelativePath=".\eventsink.idl"
+ >
<FileConfiguration
- Name="Debug|Win32">
+ Name="Debug|Win32"
+ >
<Tool
Name="VCMIDLTool"
HeaderFileName="eventsink.h"
InterfaceIdentifierFileName="eventsink_i.c"
- ProxyFileName="eventsink_p.c"/>
+ ProxyFileName="eventsink_p.c"
+ />
</FileConfiguration>
<FileConfiguration
- Name="Release|Win32">
+ Name="Release|Win32"
+ >
<Tool
Name="VCMIDLTool"
HeaderFileName="eventsink.h"
InterfaceIdentifierFileName="eventsink_i.c"
- ProxyFileName="eventsink_p.c"/>
+ ProxyFileName="eventsink_p.c"
+ />
</FileConfiguration>
</File>
<File
- RelativePath=".\extract.cpp">
+ RelativePath=".\extract.cpp"
+ >
</File>
<File
- RelativePath=".\extract.h">
+ RelativePath=".\extract.h"
+ >
</File>
<File
- RelativePath=".\optionsdlg.cpp">
+ RelativePath=".\optionsdlg.cpp"
+ >
</File>
<File
- RelativePath=".\optionsdlg.h">
+ RelativePath=".\optionsdlg.h"
+ >
</File>
<File
- RelativePath=".\reportview.cpp">
+ RelativePath=".\reportview.cpp"
+ >
</File>
<File
- RelativePath=".\reportview.h">
+ RelativePath=".\reportview.h"
+ >
</File>
<File
- RelativePath=".\resource.h">
+ RelativePath=".\resource.h"
+ >
</File>
<File
- RelativePath=".\stdafx.cpp">
+ RelativePath=".\stdafx.cpp"
+ >
<FileConfiguration
- Name="Debug|Win32">
+ Name="Debug|Win32"
+ >
<Tool
Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"/>
+ UsePrecompiledHeader="1"
+ />
</FileConfiguration>
<FileConfiguration
- Name="Release|Win32">
+ Name="Release|Win32"
+ >
<Tool
Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"/>
+ UsePrecompiledHeader="1"
+ />
</FileConfiguration>
</File>
<File
- RelativePath=".\stdafx.h">
+ RelativePath=".\stdafx.h"
+ >
</File>
<File
- RelativePath=".\visualize.cpp">
+ RelativePath=".\visualize.cpp"
+ >
</File>
<File
- RelativePath=".\visualize.h">
+ RelativePath=".\visualize.h"
+ >
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
<File
- RelativePath=".\dllmodule.rc">
+ RelativePath=".\dllmodule.rc"
+ >
</File>
<File
- RelativePath=".\dllmodule.rgs">
+ RelativePath=".\dllmodule.rgs"
+ >
</File>
</Filter>
<Filter
Name="Generated Files"
- Filter="">
+ >
<File
- RelativePath=".\eventsink_i.c">
+ RelativePath=".\eventsink_i.c"
+ >
</File>
</Filter>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
- Value="dllmodule.rc"/>
+ Value="dllmodule.rc"
+ />
</Globals>
</VisualStudioProject>
Modified: trunk/src/view/visio/scstudio.nsi
===================================================================
--- trunk/src/view/visio/scstudio.nsi 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/scstudio.nsi 2009-12-28 16:45:51 UTC (rev 537)
@@ -21,7 +21,7 @@
; -- General ---------------------------
-!define VERSION "0.3.27"
+!define VERSION "0.3.28"
Name "Sequence Chart Studio"
OutFile "scstudio-setup-${VERSION}.exe"
@@ -96,9 +96,9 @@
Section "Microsoft Visio Add-On" SecAddon
SetOutPath $INSTDIR\bin
DetailPrint "Installing Microsoft libraries"
- File "redistribute\atl71.dll"
- File "redistribute\msvcp71.dll"
- File "redistribute\msvcr71.dll"
+ File "redistribute\atl90.dll"
+ File "redistribute\msvcp90.dll"
+ File "redistribute\msvcr90.dll"
File "redistribute\lpsolve55.dll"
File "redistribute\capicom.dll"
ExecWait 'regsvr32.exe /s "$INSTDIR\capicom.dll"'
Modified: trunk/src/view/visio/scstudio.sln
===================================================================
--- trunk/src/view/visio/scstudio.sln 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/scstudio.sln 2009-12-28 16:45:51 UTC (rev 537)
@@ -1,32 +1,11 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scstudio", "addon\scstudio.vcproj", "{0E00282C-F48B-4984-A274-5B59E1E2AD49}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "setup-nsis", "setup-nsis\setup-nsis.vcproj", "{77848F6B-EA64-4917-8E72-21FA1DD2B2F6}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
EndProject
Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectDependencies) = postSolution
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {0E00282C-F48B-4984-A274-5B59E1E2AD49}.Debug.ActiveCfg = Debug|Win32
- {0E00282C-F48B-4984-A274-5B59E1E2AD49}.Debug.Build.0 = Debug|Win32
- {0E00282C-F48B-4984-A274-5B59E1E2AD49}.Release.ActiveCfg = Release|Win32
- {0E00282C-F48B-4984-A274-5B59E1E2AD49}.Release.Build.0 = Release|Win32
- {77848F6B-EA64-4917-8E72-21FA1DD2B2F6}.Debug.ActiveCfg = Debug|Win32
- {77848F6B-EA64-4917-8E72-21FA1DD2B2F6}.Release.ActiveCfg = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
@@ -36,6 +15,8 @@
{0E00282C-F48B-4984-A274-5B59E1E2AD49}.Debug|Win32.Build.0 = Debug|Win32
{0E00282C-F48B-4984-A274-5B59E1E2AD49}.Release|Win32.ActiveCfg = Release|Win32
{0E00282C-F48B-4984-A274-5B59E1E2AD49}.Release|Win32.Build.0 = Release|Win32
+ {77848F6B-EA64-4917-8E72-21FA1DD2B2F6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {77848F6B-EA64-4917-8E72-21FA1DD2B2F6}.Release|Win32.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Modified: trunk/src/view/visio/setup-nsis/filefix.cpp
===================================================================
--- trunk/src/view/visio/setup-nsis/filefix.cpp 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/setup-nsis/filefix.cpp 2009-12-28 16:45:51 UTC (rev 537)
@@ -46,15 +46,15 @@
BOOL result = SHGetSpecialFolderPath(NULL, path, CSIDL_LOCAL_APPDATA, false);
TCHAR source_path[MAX_PATH+1];
- _tcscpy(source_path, path);
- _tcscat(source_path, _T("\\"));
- _tcscat(source_path, filename);
- _tcscat(source_path, _T(".old"));
+ _tcscpy_s(source_path, MAX_PATH, path);
+ _tcscat_s(source_path, MAX_PATH, _T("\\"));
+ _tcscat_s(source_path, MAX_PATH, filename);
+ _tcscat_s(source_path, MAX_PATH, _T(".old"));
TCHAR target_path[MAX_PATH+1];
- _tcscpy(target_path, path);
- _tcscat(target_path, _T("\\"));
- _tcscat(target_path, filename);
+ _tcscpy_s(target_path, MAX_PATH, path);
+ _tcscat_s(target_path, MAX_PATH, _T("\\"));
+ _tcscat_s(target_path, MAX_PATH, filename);
// remove previous filename.old
remove(source_path);
@@ -62,11 +62,11 @@
rename(target_path, source_path);
FILE *infile;
- if((infile = fopen(source_path, "rb")) == NULL) // filename.old
+ if(fopen_s(&infile, source_path, "rb") != 0) // filename.old
return;
FILE *outfile;
- if((outfile = fopen(target_path, "wb")) == NULL) // filename
+ if(fopen_s(&outfile, target_path, "wb") != 0) // filename
return;
while(!feof(infile))
Modified: trunk/src/view/visio/setup-nsis/setup-nsis.vcproj
===================================================================
--- trunk/src/view/visio/setup-nsis/setup-nsis.vcproj 2009-12-18 12:21:45 UTC (rev 536)
+++ trunk/src/view/visio/setup-nsis/setup-nsis.vcproj 2009-12-28 16:45:51 UTC (rev 537)
@@ -1,112 +1,175 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="9,00"
Name="setup-nsis"
ProjectGUID="{77848F6B-EA64-4917-8E72-21FA1DD2B2F6}"
- Keyword="Win32Proj">
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
<Platforms>
<Platform
- Name="Win32"/>
+ Name="Win32"
+ />
</Platforms>
+ <ToolFiles>
+ </ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
- CharacterSet="0">
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="0"
+ >
<Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="C:\Program Files\Microsoft Platform SDK for Windows XP SP2\Bin"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="TRUE"
+ MinimalRebuild="true"
BasicRuntimeChecks="3"
- RuntimeLibrary="5"
- UsePrecompiledHeader="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"/>
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
Name="VCLinkerTool"
- AdditionalDependencies="pluginapi.lib"
OutputFile="$(OutDir)/nsis.dll"
LinkIncremental="2"
- GenerateDebugInformation="TRUE"
+ IgnoreDefaultLibraryNames=""
+ GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/nsis.pdb"
SubSystem="1"
- TargetMachine="1"/>
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCManifestTool"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCResourceCompilerTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCAppVerifierTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
- CharacterSet="0">
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="0"
+ >
<Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="C:\Program Files\Microsoft Platform SDK for Windows XP SP2\Bin"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="4"
- UsePrecompiledHeader="3"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="2"
WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
Name="VCLinkerTool"
- AdditionalDependencies="pluginapi.lib"
OutputFile="$(OutDir)/nsis.dll"
LinkIncremental="1"
- GenerateDebugInformation="TRUE"
+ IgnoreDefaultLibraryNames=""
+ GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
- TargetMachine="1"/>
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCManifestTool"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCResourceCompilerTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCAppVerifierTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- ...
[truncated message content] |