add_param corrected. 04/12704/3
Cedric Delamarre [Fri, 27 Sep 2013 11:48:19 +0000 (13:48 +0200)]
launch the demo parameters.

test_run("parameters", "add_param", "no_check_error_output")
test_run("parameters", "bug_9395", "no_check_error_output")

Change-Id: I265b8cfc9ba016316ec2b74f87b979b1b1589bd5

scilab/modules/parameters/demos/params_demo.sce
scilab/modules/parameters/macros/add_param.sci
scilab/modules/parameters/tests/nonreg_tests/bug_9395.dia.ref
scilab/modules/parameters/tests/nonreg_tests/bug_9395.tst

index 8cd3314..09a3e34 100755 (executable)
@@ -76,4 +76,4 @@ function demo_param()
 endfunction
 
 demo_param();
-clear demo_params;
+clear demo_param;
index fd91e16..80964f9 100644 (file)
@@ -11,8 +11,8 @@ function [plist, err] = add_param(list_name, param_name, param_value)
 
     [nargout, nargin] = argn();
 
-    if nargin <> 3 then
-        error(sprintf(gettext("%s: Wrong number of input arguments: %d expected.\n"), "add_param", 3));
+    if nargin <> 2 & nargin <> 3 then
+        error(sprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"), "add_param", 2, 3));
     end
 
     if typeof(list_name) == "plist" then
index 7aecdc7..6a6244e 100644 (file)
 // <-- Short Description -->
 // add_params() did not check its input arguments.
 p = init_param();
-refMsg = msprintf(_("%s: Wrong number of input arguments: %d expected.\n"), "add_param", 3);
+refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "add_param", 2, 3);
 assert_checkerror("p = add_param();", refMsg);
 assert_checkerror("p = add_param(p);", refMsg);
-assert_checkerror("p = add_param(p, ''field1'');", refMsg);
+// set two times the same field.
+refMsg = msprintf(_("%s: Wrong value for input argument #%d: key ""%s"" already defined.\n"), "add_param", 2, "field1");
+p = add_param(p, "field1");
+assert_checkerror("p = add_param(p, ""field1"");", refMsg);
+// Input list must be a plist.
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: %s expected.\n"), "add_param", 1, "plist");
+l = list("field1");
+assert_checkerror("l = add_param(l, ""field1"");", refMsg);
index a861356..c9da2ec 100644 (file)
 // add_params() did not check its input arguments.
 
 p = init_param();
-refMsg = msprintf(_("%s: Wrong number of input arguments: %d expected.\n"), "add_param", 3);
+refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "add_param", 2, 3);
 assert_checkerror("p = add_param();", refMsg);
 assert_checkerror("p = add_param(p);", refMsg);
-assert_checkerror("p = add_param(p, ''field1'');", refMsg);
+
+// set two times the same field.
+refMsg = msprintf(_("%s: Wrong value for input argument #%d: key ""%s"" already defined.\n"), "add_param", 2, "field1");
+p = add_param(p, "field1");
+assert_checkerror("p = add_param(p, ""field1"");", refMsg);
+
+// Input list must be a plist.
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: %s expected.\n"), "add_param", 1, "plist");
+l = list("field1");
+assert_checkerror("l = add_param(l, ""field1"");", refMsg);