source "site.exp" source "$srcdir/winsup.api/known_bugs.tcl" if { ! [isnative] } { verbose "skipping winsup.api because it's not native" return } set rv "" set ltp_includes "-I$ltp_includes" set ltp_libs "$rootme/libltp.a" set add_includes $ltp_includes set add_libs $ltp_libs set test_filter "" if { [info exists env(CYGWIN_TESTSUITE_TESTS)] } { set test_filter "$env(CYGWIN_TESTSUITE_TESTS)" } proc ws_spawn {cmd args} { global rv verbose "running $cmd\n" catch "exec $cmd" rv verbose send "catchCode = $rv\n" } verbose "Filter: $test_filter" foreach src [glob -nocomplain $srcdir/$subdir/*.c $srcdir/$subdir/*/*.c] { if { $test_filter != "" && ! [regexp $test_filter $src] } { verbose -log "Skipping $src" continue } regsub "^$srcdir/$subdir/" $src "" testcase regsub ".c$" $testcase "" base regsub ".*/" $base "" basename regsub "/" $base "-" base if { [lsearch -exact $xfail_list $basename] >= 0 } { set xfail_expected 1 setup_xfail "*-*-*" } else { set xfail_expected 0 clear_xfail } ws_spawn "$CC -nodefaultlibs -mwin32 $CFLAGS $src $add_includes $add_libs $runtime_root/binmode.o -lgcc $runtime_root/libcygwin0.a -lkernel32 -luser32 -o $base.exe" if { $rv != "" } { verbose -log "$rv" fail "$testcase (compile)" } else { if { $verbose } { set redirect_output "./$base.log" } else { set redirect_output /dev/null } ws_spawn "$rootme/cygrun ./$base.exe > $redirect_output" if { $rv != "" } { verbose -log "$testcase: $rv" fail "$testcase (execute)" if { $xfail_expected } { catch { file delete "$base.exe" } err if { $err != "" } { note "error deleting $base.exe: $err" } } } else { pass "$testcase" if { ! $xfail_expected } { catch { file delete "$base.exe" } err if { $err != "" } { note "error deleting $base.exe: $err" } } } } }