From: <pki...@pr...> - 2004-01-30 19:16:01
|
Update of /cvsroot/octave/octave-forge/extra/testfun In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv702/extra/testfun Modified Files: fail.m Log Message: Better argument checking and error reporting. Index: fail.m =================================================================== RCS file: /cvsroot/octave/octave-forge/extra/testfun/fail.m,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- fail.m 29 Jan 2004 21:09:44 -0000 1.2 +++ fail.m 29 Jan 2004 22:03:42 -0000 1.3 @@ -13,19 +13,26 @@ ## PKG_ADD mark_as_command fail function ret=fail(code,pattern) + if nargin < 1 || nargin > 2 + usage("fail('code' [, 'pattern'])"); + end + ## allow assert(fail()) if nargout, ret=1; end ## don't test failure if evalin doesn't exist - if !exists('evalin'), return; end + if !exist('evalin'), return; end ## perform the test try evalin("caller",[code,";"]); msg = "expected error but got none"; catch - msg = sprintf("expected %s\nbut got %s",pattern,lasterr); - if !isempty(regexp(pattern,lasterr)), return; end + err=lasterr; + ## allow fail('code') + if nargin<2 || isempty(pattern), return; end + msg = sprintf("expected message <%s>\nbut got <%s>",pattern,err(1:end-1)); + if !isempty(regexp(pattern,err(1:end-1))), return; end end ## if we get here, then code didn't fail or error didn't match @@ -36,7 +43,7 @@ %! a = [1,2]; %!test fail ('a*[2,3]','nonconformant') %!test fail ("fail('a*[2;3]','nonconformant')","expected error but got none") -%!test fail ("fail('a*[2,3]','usage:')","expected usage:.*but got.*nonconformant") +%!test fail ("fail('a*[2,3]','usage:')","expected .*usage:.*but got.*nonconformant") ## Comment out the following tests if you don't want to see what ## errors look like |