Make using DejaGNU work for libgo testing on a native system.

From-SVN: r168729
This commit is contained in:
Ian Lance Taylor 2011-01-12 21:56:10 +00:00
parent a49b692a27
commit 86d013a7f0
5 changed files with 42 additions and 22 deletions

View File

@ -1237,12 +1237,16 @@ CHECK = \
rm -f $@-log; \
prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
test "$${prefix}" != "." || prefix="$(@D)"; \
if $(srcdir)/testsuite/gotest --dejagnu=$(use_dejagnu) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; then \
echo "PASS: $(@D)"; \
if test "$(use_dejagnu)" = "yes"; then \
$(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)"; \
else \
echo "FAIL: $(@D)"; \
cat $@-log; \
exit 1; \
if $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; then \
echo "PASS: $(@D)"; \
else \
echo "FAIL: $(@D)"; \
cat $@-log; \
exit 1; \
fi; \
fi
# Build all packages before checking any.

View File

@ -1583,12 +1583,16 @@ CHECK = \
rm -f $@-log; \
prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
test "$${prefix}" != "." || prefix="$(@D)"; \
if $(srcdir)/testsuite/gotest --dejagnu=$(use_dejagnu) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; then \
echo "PASS: $(@D)"; \
if test "$(use_dejagnu)" = "yes"; then \
$(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)"; \
else \
echo "FAIL: $(@D)"; \
cat $@-log; \
exit 1; \
if $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; then \
echo "PASS: $(@D)"; \
else \
echo "FAIL: $(@D)"; \
cat $@-log; \
exit 1; \
fi; \
fi

View File

@ -314,16 +314,26 @@ xno)
./a.out "$@"
;;
xyes)
# This is the only file which is optionally made.
# All others are overwritten on copying/building,
# but this may remain and cause conflicts if not
# deleted.
rm -rf ../testsuite/_xtest_.o
cp *.o _testmain.go ../testsuite
rm -rf ../testsuite/*.o
files=`echo *`
for f in $files; do
if test "$f" = "_obj" || test "$f" = "_test"; then
continue
fi
rm -rf ../testsuite/$f
if test -f $f; then
cp $f ../testsuite/
else
ln -s ../$DIR/$f ../testsuite/
fi
done
cd ../testsuite
rm -rf _obj _test
mkdir _obj _test
$MAKE check RUNTESTFLAGS="$RUNTESTFLAGS GOTEST_TMPDIR=$DIR"
# Useful when using make check-target-libgo
cat libgo.log >> libgo-all.log
cat libgo.sum >> libgo-all.sum
rm -rf $files
;;
esac

View File

@ -18,7 +18,7 @@ set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
if {$gccdir != ""} {
set gccdir [file dirname $gccdir]
}
set GO_UNDER_TEST "$gccdir/gccgo -B$gccdir/"
set GOC_UNDER_TEST "$gccdir/gccgo -B$gccdir/"
set TESTING_IN_BUILD_TREE 1
proc go_maybe_build_wrapper { args } {

View File

@ -17,7 +17,6 @@
load_lib libgo.exp
lappend options "additional_flags=-I. -w -g"
lappend ld_options "ldflags=-lgotesting"
if [istarget "*-*-rtems*"] {
global options
@ -44,9 +43,9 @@ if [istarget "*-*-rtems*"] {
}
set object_files [glob -nocomplain "*.o"]
regsub $gluefile $object_files "" object_files
lappend options $ld_options
if [info exists gluefile] {
regsub $gluefile $object_files "" object_files
}
set comp_output [go_target_compile "$object_files _testmain.go" \
"./a.exe" "executable" $options]
@ -55,4 +54,7 @@ if ![ string match "" $comp_output ] {
exit 1
}
libgo_load "./a.exe" "" ""
set result [libgo_load "./a.exe" "" ""]
set status [lindex $result 0]
$status go