mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-31 19:40:33 +08:00
1a9f95d894
Since 4e7817498efc, we're just running the tests against the installed DLL. We're arranging to put the build directory on the path, but since it doesn't contain cygwin1.dll (since it's built with a different name and renamed on installation), that doesn't have any effect. Arrange to place the just-built DLL into a directory which the testsuite can place on it's path (while running the test, but not while compiling it). Also fix any remaining references to cygwin0.dll in testsuite, documentation and comments. Fixes: 4e7817498efc ("Cygwin: Makefile: Drop all the "test dll" considerations")
98 lines
2.3 KiB
Plaintext
98 lines
2.3 KiB
Plaintext
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 "$ltp_libs"
|
|
|
|
set add_includes $ltp_includes
|
|
set add_libs $ltp_libs
|
|
|
|
set orig_path "$env(PATH)"
|
|
|
|
set test_filter ""
|
|
|
|
if { [info exists env(CYGWIN_TESTSUITE_TESTS)] } {
|
|
set test_filter "$env(CYGWIN_TESTSUITE_TESTS)"
|
|
}
|
|
|
|
proc ws_spawn {cmd} {
|
|
global rv
|
|
verbose "running $cmd\n"
|
|
try {
|
|
set msg [exec -ignorestderr {*}$cmd "2>@1"]
|
|
set rv 0
|
|
} trap CHILDSTATUS {results options} {
|
|
verbose "returned $::errorCode\n"
|
|
set msg $results
|
|
set rv 1
|
|
}
|
|
verbose -log "$msg"
|
|
return $rv
|
|
}
|
|
|
|
verbose "Filter: $test_filter"
|
|
|
|
foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c $srcdir/$subdir/*/*.{cc,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
|
|
}
|
|
|
|
if [ file exists "$srcdir/$subdir/$basename.exp" ] then {
|
|
source "$srcdir/$subdir/$basename.exp"
|
|
} else {
|
|
ws_spawn "$CC -nodefaultlibs -mwin32 $CFLAGS $src $add_includes $add_libs $libdir/binmode.o -lgcc $libdir/libcygwin.a -lkernel32 -luser32 -o $base.exe"
|
|
if { $rv } {
|
|
fail "$testcase (compile)"
|
|
} else {
|
|
if { $verbose } {
|
|
set redirect_output "./$base.log"
|
|
} else {
|
|
set redirect_output /dev/null
|
|
}
|
|
file mkdir $tmpdir/$base
|
|
set env(PATH) "$runtime_root:$env(PATH)"
|
|
ws_spawn "$cygrun ./$base.exe $testdll_tmpdir/$base > $redirect_output"
|
|
file delete -force $tmpdir/$base
|
|
set env(PATH) "$orig_path"
|
|
if { $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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|