use Cwd; use Cwd 'abs_path'; use File::Basename; # Go through all the files in the test folder my $root_path = abs_path(); my $test_path = "$root_path/bin/test/"; opendir (TESTAPPDIR, "$test_path") or die "Couldn't open test app dir"; @files = ; while ($testapp = readdir TESTAPPDIR) { # autotest is an executable beginning with "tst_" if (index($testapp, "tst_") == 0) { if (-x "$test_path$testapp") { my $cmd_postfix = ""; if ($^O == "darwin") { # On OSX the actual test binary is in a sub folder $cmd_postfix = "/Contents/MacOS/$testapp"; $cmd_postfix = substr($cmd_postfix, 0, rindex($cmd_postfix, ".app")); } # Generate path for test results my $test_result_path = "test-reports/$testapp.xml"; mkdir dirname($test_result_path); # Execute the actual auto test executeTestApp("$test_path$testapp$cmd_postfix", "-xunitxml -o $test_result_path"); } else { print "file $tst_executable not executable"; } } } closedir TESTAPPDIR; sub executeTestApp($) { my $test_app_path = $_[0]; my $parameters = $_[1]; print "executing: $cmd_prefix$test_app_path $parameters\n"; my $file_handle = system("$test_app_path $parameters"); my $exit_status = $? >> 8; # print "exit: $exit_status \n"; # print "handle: $file_handle\n"; }