swig/Examples/test-suite/scilab/swigtest.start
2022-02-21 10:02:03 +01:00

64 lines
1.7 KiB
Text

lines(0);
warning('off');
ilib_verbose(0);
ver = getversion('scilab');
// Get test name (used in swigtest.quit file)
[units, typ, names] = file(1);
swigtestname = strsubst(fileparts(names, "fname"), "_runme", "");
// Does the library exists? If not then exit!
libname = "lib" + swigtestname + getdynlibext();
if ~isfile(libname) then
mfprintf(0, "*** LIBRARY NOT FOUND: %s ***\n", libname);
exit(1)
end
// Load library
try
exec("loader.sce", -1);
catch
mfprintf(0, "*** LOADER EXECUTION FAILED ***\n");
exit(1)
end
// Module initialization
try
if ver(1) < 6 then
entry = stripblanks(part(swigtestname, 1:24-5));
else
entry = swigtestname;
end
moduleInit = sprintf("%s_Init()", entry);
execstr(moduleInit);
catch
mfprintf(0, "*** MODULE INIT FAILED ***\n");
exit(1)
end
// Error management function
function swigtesterror(msg)
[lines, names] = where();
if size(lines, '*') > 0
mfprintf(0, "*** TEST FAILED (at line %d) ***\n", lines($));
if argn(2) >= 1 then disp(msg); end
else
mfprintf(0, "*** TEST FAILED ***\n");
end;
exit(1)
endfunction
// Check equal function
function checkequal(returned, expected, message)
if typeof(returned) <> typeof(expected) then
returned_type_msg = ["returned type:"; typeof(returned)];
expected_type_msg = ["expected type:"; typeof(expected)];
swigtesterror([message; returned_type_msg; expected_type_msg]);
end
if ~isequal(returned, expected) then
returned_value_msg = ["returned value:"; string(returned)];
expected_value_msg = ["expected value:"; string(expected)];
swigtesterror([message; returned_value_msg; expected_value_msg]);
end
endfunction