function test_suite=test_cosmo_skip_test_if_no_external
% tests for cosmo_align
%
% # For CoSMoMVPA's copyright information and license terms, #
% # see the COPYING file distributed with CoSMoMVPA. #
try % assignment of 'localfunctions' is necessary in Matlab >= 2016
test_functions=localfunctions();
catch % no problem; early Matlab versions can use initTestSuite fine
end
initTestSuite;
function s=randstr()
s=char(ceil(rand(1,10)*26+64));
function test_cosmo_skip_test_if_no_external_basics
notify_state=cosmo_notify_test_skipped();
warning_state=warning();
notify_resetter=onCleanup(@()cosmo_notify_test_skipped(notify_state));
warning_resetter=onCleanup(@()warning(warning_state));
% empty notified tests
cosmo_notify_test_skipped('on');
s=cosmo_notify_test_skipped();
assert(isempty(s));
% test for external that should not lead to skip
cosmo_skip_test_if_no_external('cosmo');
s=cosmo_notify_test_skipped();
assert(isempty(s));
% another test that should lead to skip
nonexistent_func_name=['unused_foo_' randstr()];
func_label=['!' nonexistent_func_name];
try
cosmo_skip_test_if_no_external(func_label);
catch
end
s=cosmo_notify_test_skipped();
assert(~isempty(s));