Xcos MVC: add a test and use unnamed functions parameters 04/15404/6
Paul Bignier [Tue, 21 Oct 2014 09:48:25 +0000 (11:48 +0200)]
Change-Id: Ib49b7da4b48570da6c0446a763daff71ada5dbd0

scilab/modules/scicos/includes/View.hxx
scilab/modules/scicos/src/cpp/Controller.cpp
scilab/modules/scicos/src/cpp/LoggerView.cpp
scilab/modules/scicos/src/cpp/view_scilab/BlockAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/DiagramAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/GraphicsAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/LinkAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/ParamsAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/TextAdapter.cpp
scilab/modules/scicos/tests/unit_tests/model/Block_copy_list.dia.ref [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/Block_copy_list.tst [new file with mode: 0644]

index eea0dc7..6327819 100644 (file)
@@ -30,13 +30,8 @@ public:
     virtual void objectDeleted(const ScicosID& uid, kind_t k) = 0;
     virtual void objectUpdated(const ScicosID& uid, kind_t k) = 0;
     virtual void propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p) = 0;
-    virtual void propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p, update_status_t u)
+    virtual void propertyUpdated(const ScicosID& /*uid*/, kind_t /*k*/, object_properties_t /*p*/, update_status_t /*u*/)
     {
-        // silent unused parameters warnings
-        (void) uid;
-        (void) k;
-        (void) p;
-        (void) u;
     };
 };
 
index 1f41605..dd1081f 100644 (file)
@@ -86,12 +86,9 @@ Controller::Controller()
     }
 }
 
-Controller::Controller(const Controller& c)
+Controller::Controller(const Controller& /*c*/)
 {
     // _instance is already initialized
-
-    // silent unused parameter warnings
-    (void) c;
 }
 
 Controller::~Controller()
index bb3f650..bd7e84f 100644 (file)
@@ -298,13 +298,8 @@ void LoggerView::objectUpdated(const ScicosID& uid, kind_t k)
     }
 }
 
-void LoggerView::propertyUpdated(const ScicosID& uid, kind_t k, object_properties_t p)
+void LoggerView::propertyUpdated(const ScicosID& /*uid*/, kind_t /*k*/, object_properties_t /*p*/)
 {
-    // silent unused parameter warnings
-    (void) uid;
-    (void) k;
-    (void) p;
-
     // do not log anything on success; the message has already been logged
 }
 
index 1fee00d..ecdb52d 100644 (file)
@@ -125,19 +125,13 @@ struct gui
 
 struct doc
 {
-    static types::InternalType* get(const BlockAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const BlockAdapter& adaptor, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         return adaptor.getDocContent();
     }
 
-    static bool set(BlockAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(BlockAdapter& adaptor, types::InternalType* v, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         adaptor.setDocContent(v->clone());
         return true;
     }
index 395e70d..5b4ab7f 100644 (file)
@@ -227,20 +227,13 @@ struct version
 struct contrib
 {
 
-    static types::InternalType* get(const DiagramAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const DiagramAdapter& adaptor, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         return adaptor.getContribContent();
     }
 
-    static bool set(DiagramAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(DiagramAdapter& adaptor, types::InternalType* v, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) v;
-        (void) controller;
-
         adaptor.setContribContent(v->clone());
         return true;
     }
index dcb7444..84d47e8 100644 (file)
@@ -649,19 +649,13 @@ struct peout
 struct gr_i
 {
 
-    static types::InternalType* get(const GraphicsAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const GraphicsAdapter& adaptor, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         return adaptor.getGrIContent();
     }
 
-    static bool set(GraphicsAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(GraphicsAdapter& adaptor, types::InternalType* v, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         adaptor.setGrIContent(v->clone());
         return true;
     }
index 4f75458..563dd52 100644 (file)
@@ -676,12 +676,10 @@ bool is_valid(types::Double* o)
 struct from
 {
 
-    static types::InternalType* get(const LinkAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const LinkAdapter& adaptor, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         link_t from_content = adaptor.getFrom();
+
         double* data;
         types::Double* o = new types::Double(1, 3, &data);
 
@@ -729,12 +727,10 @@ struct from
 struct to
 {
 
-    static types::InternalType* get(const LinkAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const LinkAdapter& adaptor, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         link_t to_content = adaptor.getTo();
+
         double* data;
         types::Double* o = new types::Double(1, 3, &data);
 
index ab8faac..9bbdd22 100644 (file)
@@ -40,23 +40,14 @@ const std::wstring scsopt(L"scsopt");
 struct dummy_property
 {
 
-    static types::InternalType* get(const ParamsAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const ParamsAdapter& /*adaptor*/, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) controller;
-
         // Return a default empty matrix.
         return types::Double::Empty();
     }
 
-    static bool set(ParamsAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(ParamsAdapter& /*adaptor*/, types::InternalType* /*v*/, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) v;
-        (void) controller;
-
         // everything should be right as the properties mapped using this adapter do not perform anything
         return true;
     }
@@ -273,12 +264,8 @@ struct context
 struct options
 {
 
-    static types::InternalType* get(const ParamsAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const ParamsAdapter& /*adaptor*/, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) controller;
-
         // Return a dummy 'scsopt'-typed tlist.
         types::String* header = new types::String(scsopt.c_str());
 
@@ -296,19 +283,13 @@ struct options
 
 struct doc
 {
-    static types::InternalType* get(const ParamsAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const ParamsAdapter& adaptor, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         return adaptor.getDocContent();
     }
 
-    static bool set(ParamsAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(ParamsAdapter& adaptor, types::InternalType* v, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) controller;
-
         adaptor.setDocContent(v->clone());
         return true;
     }
index 8413048..3b41839 100644 (file)
@@ -195,12 +195,8 @@ struct graphics
 struct model
 {
 
-    static types::InternalType* get(const TextAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const TextAdapter& /*adaptor*/, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) controller;
-
         // Return an empty "model"-typed mlist because this field isn't used.
         types::MList* o = new types::MList();
         types::String* MListFields = new types::String(1, 4);
@@ -218,14 +214,9 @@ struct model
         return o;
     }
 
-    static bool set(TextAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(TextAdapter& /*adaptor*/, types::InternalType* /*v*/, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) v;
-        (void) controller;
-
-        // everything should be right as the properties mapped using this adapter do not perform anything
+        // Everything should be right as the properties mapped using this adapter do not perform anything
         return true;
     }
 };
@@ -233,23 +224,14 @@ struct model
 struct dummy_property
 {
 
-    static types::InternalType* get(const TextAdapter& adaptor, const Controller& controller)
+    static types::InternalType* get(const TextAdapter& /*adaptor*/, const Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) controller;
-
         // Return an empty matrix because this field isn't used.
         return types::Double::Empty();
     }
 
-    static bool set(TextAdapter& adaptor, types::InternalType* v, Controller& controller)
+    static bool set(TextAdapter& /*adaptor*/, types::InternalType* /*v*/, Controller& /*controller*/)
     {
-        // silent unused parameter warnings
-        (void) adaptor;
-        (void) v;
-        (void) controller;
-
         // everything should be right as the properties mapped using this adapter do not perform anything
         return true;
     }
diff --git a/scilab/modules/scicos/tests/unit_tests/model/Block_copy_list.dia.ref b/scilab/modules/scicos/tests/unit_tests/model/Block_copy_list.dia.ref
new file mode 100644 (file)
index 0000000..60fd017
--- /dev/null
@@ -0,0 +1,83 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+loadXcosLibs();
+// Create one block and make a list out of it (duplicate it)
+Sum = BIGSOM_f("define");
+objectCreated( 1 , BLOCK )
+propertyUpdated( 1 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 1 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EXPRS ) : SUCCESS
+objectCreated( 2 , PORT )
+propertyUpdated( 2 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 2 , PORT , PORT_KIND ) : SUCCESS
+objectCreated( 3 , PORT )
+propertyUpdated( 3 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 3 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 1 , BLOCK , INPUTS ) : SUCCESS
+objectCreated( 4 , PORT )
+propertyUpdated( 4 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 4 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 2 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 3 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 4 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 2 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 3 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 4 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 2 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 3 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 4 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 3 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 2 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 4 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 1 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+l = list(Sum);
+// Copy the list content (no duplicate)
+Sum2 = l(1)
+Sum2  = 
+// The following action should not delete the Block in the model
+clear Sum
+// Sum2's refCount must have been affected by "clear Sum"
+Sum2
+Sum2  = (2)
+// Delete the original block in the model
+clear
+propertyUpdated( 1 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 2 , PORT )
+propertyUpdated( 1 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 3 , PORT )
+propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 4 , PORT )
+objectDeleted( 1 , BLOCK )
diff --git a/scilab/modules/scicos/tests/unit_tests/model/Block_copy_list.tst b/scilab/modules/scicos/tests/unit_tests/model/Block_copy_list.tst
new file mode 100644 (file)
index 0000000..34015bd
--- /dev/null
@@ -0,0 +1,26 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+loadXcosLibs();
+
+// Create one block and make a list out of it (duplicate it)
+Sum = BIGSOM_f("define");
+l = list(Sum);
+
+// Copy the list content (no duplicate)
+Sum2 = l(1)
+
+// The following action should not delete the Block in the model
+clear Sum
+
+// Sum2's refCount must have been affected by "clear Sum"
+Sum2
+
+// Delete the original block in the model
+clear