setfield and bug_5588 tests updated because setfield function returns now variable... 54/18554/3
Adeline CARNIS [Thu, 22 Sep 2016 15:09:57 +0000 (17:09 +0200)]
Change-Id: I33ae4ac4e6746563507126329d12ae3eb9f08792

scilab/modules/data_structures/sci_gateway/cpp/sci_setfield.cpp
scilab/modules/data_structures/tests/nonreg_tests/bug_5588.dia.ref
scilab/modules/data_structures/tests/nonreg_tests/bug_5588.tst
scilab/modules/data_structures/tests/unit_tests/setfield.dia.ref
scilab/modules/data_structures/tests/unit_tests/setfield.tst

index 709c7f8..1ae74b6 100644 (file)
@@ -34,13 +34,13 @@ types::Function::ReturnValue sci_setfield(types::typed_list &in, int _iRetCount,
 {
     if (in.size() != 3)
     {
-        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "setfield", 2);
+        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "setfield", 3);
         return types::Function::Error;
     }
 
     if (_iRetCount > 1)
     {
-        Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "setfield", 0);
+        Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "setfield", 1);
         return types::Function::Error;
     }
 
index c623135..a1be2ae 100644 (file)
@@ -22,8 +22,8 @@ function t=%0_i_a(i,void,t)
     k=find(f==i);
     if k<>[] then
         f(k)=[];
-        setfield(k,null(),t);
-        setfield(1,f,t);
+        t = setfield(k,null(),t);
+        t = setfield(1,f,t);
     end
 endfunction
 if execstr("t.b=null()","errcatch")<>0 then bugmes();quit;end
index b8effff..4ecb9c3 100644 (file)
@@ -25,8 +25,8 @@ function t=%0_i_a(i,void,t)
     k=find(f==i);
     if k<>[] then
         f(k)=[];
-        setfield(k,null(),t);
-        setfield(1,f,t);
+        t = setfield(k,null(),t);
+        t = setfield(1,f,t);
     end
 endfunction
 if execstr("t.b=null()","errcatch")<>0 then pause,end
index 7bc5cdc..4f75e4a 100644 (file)
@@ -6,13 +6,20 @@
 // =============================================================================
 // <-- CLI SHELL MODE -->
 l = list(1, "string", %s);
-setfield(2, "newString", l);
+l = setfield(2, "newString", l);
 assert_checkequal(l, list(1, "newString", %s));
-setfield(0, "front", l);
+l = setfield(0, "front", l);
 assert_checkequal(l, list("front", 1, "newString", %s));
 // b must not be modified
 a = list(2);
 b = a;
-setfield(1, 15, a);
+a = setfield(1, 15, a);
 assert_checkequal(a, list(15));
 assert_checkequal(b, list(2));
+// error
+assert_checkfalse(execstr("setfield()"   ,"errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "setfield", 3);
+assert_checkerror("setfield()", refMsg);
+assert_checkfalse(execstr("[c,d] = setfield(1,10,a)"   ,"errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong number of output argument(s): %d expected.\n"), "setfield", 1);
+assert_checkerror("[c,d] = setfield(1,10,a)", refMsg);
index 5109a1d..fc2a45e 100644 (file)
@@ -8,14 +8,23 @@
 // <-- CLI SHELL MODE -->
 
 l = list(1, "string", %s);
-setfield(2, "newString", l);
+l = setfield(2, "newString", l);
 assert_checkequal(l, list(1, "newString", %s));
-setfield(0, "front", l);
+l = setfield(0, "front", l);
 assert_checkequal(l, list("front", 1, "newString", %s));
 
 // b must not be modified
 a = list(2);
 b = a;
-setfield(1, 15, a);
+a = setfield(1, 15, a);
 assert_checkequal(a, list(15));
 assert_checkequal(b, list(2));
+
+// error
+assert_checkfalse(execstr("setfield()"   ,"errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "setfield", 3);
+assert_checkerror("setfield()", refMsg);
+
+assert_checkfalse(execstr("[c,d] = setfield(1,10,a)"   ,"errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong number of output argument(s): %d expected.\n"), "setfield", 1);
+assert_checkerror("[c,d] = setfield(1,10,a)", refMsg);