changeset 18370:7994d3ce6e8e stable

assert.m: Fix regression and accept more than 3 arguments for certain cases (bug #41332). * assert.m: Accept more than 3 arguments when one of the arguments is a format string for error() and the extra arguments are passed on. Add %!tests to verify this works.
author Rik <rik@octave.org>
date Fri, 24 Jan 2014 10:14:57 -0800
parents 4b32677b6229
children ac664a250eab
files scripts/testfun/assert.m
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/testfun/assert.m	Fri Jan 24 09:32:55 2014 -0800
+++ b/scripts/testfun/assert.m	Fri Jan 24 10:14:57 2014 -0800
@@ -56,7 +56,7 @@
 
 function assert (cond, varargin)
 
-  if (nargin == 0 || nargin > 3)
+  if (nargin == 0)
     print_usage ();
   endif
 
@@ -84,8 +84,10 @@
     expected = varargin{1};
     if (nargin < 3)
       tol = 0;
+    elseif (nargin == 3)
+      tol = varargin{2};
     else
-      tol = varargin{2};
+      print_usage ();
     endif
 
     ## Add to list as the errors accumulate.  If empty at end then no errors.
@@ -396,6 +398,8 @@
 %!error assert ([1,0,1])
 %!error assert ([1;1;0])
 %!error assert ([1,0;1,1])
+%!error <2-part error> assert (false, "%s %s", "2-part", "error")
+%!error <2-part error> assert (false, "TST:msg_id", "%s %s", "2-part", "error")
 
 ## scalars
 %!error <Dimensions don't match> assert (3, [3,3])