This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[testsuite] Include gdc.test prefix in test names (PR testsuite/88041)

As reported in the PR, the test names of DejaGnu tests should be the
path relative to the respective testsuite directory, a convention the
gdc.test tests currently don't follow.

The patch below fixes this.  After a few false starts (some described in
the PR and several more) I came up with the following minimally
intrusive solution.  This way, the gdc.test prefix is included in the
test names but stripped out again in gdc-dg-test so all path names in
the upstream testsuite (which don't include the prefix) continue to
work.  The link from gdc.test to . in the gdc* dirs is still needed
because e.g. scanning the sources for dg- directives happens in
dg-runtest before entering dg-test and thus still needs the prefixed

I'm omitting the changes (also mentioned in the PR) to
compilable/ddoc9676a.d and compilable/depsOutput9948.d which contain
absolute path names in EXTRA_SOURCES because those need to go upstream

Bootstrapped without regressions on i386-pc-solaris2.11 and
x86_64-pc-linux-gnu.  Ok for mainline?


Rainer Orth, Center for Biotechnology, Bielefeld University

	PR testsuite/88041
	* lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix.
	* gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link.
	Include $subdir in filename.
	Cleanup generated source.

# HG changeset patch
# Parent  10a25e7dfa1774247c9accc8f36c21dabdf72c44
Fix various gdc.test issues

diff --git a/gcc/testsuite/gdc.test/gdc-test.exp b/gcc/testsuite/gdc.test/gdc-test.exp
--- a/gcc/testsuite/gdc.test/gdc-test.exp
+++ b/gcc/testsuite/gdc.test/gdc-test.exp
@@ -180,6 +180,7 @@ proc dmd2dg { base test } {
     global DEFAULT_DFLAGS
     global PERMUTE_ARGS
     global GDC_EXECUTE_ARGS
+    global subdir
     set GDC_EXECUTE_ARGS ""
@@ -360,6 +361,9 @@ proc gdc-do-test { } {
     # Initialize `dg'.
+    # Create gdc.test link so test names include that subdir.
+    catch { file link $subdir . }
     # Main loop.
     # set verbose 1
@@ -380,7 +384,8 @@ proc gdc-do-test { } {
         # Convert to DG test.
         set imports [format "-I%s/%s" $base $dir]
-        set filename [dmd2dg $base $dir/$name.$ext]
+        # Include $subdir prefix so test names follow DejaGnu conventions.
+        set filename "$subdir/[dmd2dg $base $dir/$name.$ext]"
         if { $dir == "runnable" } {
             append PERMUTE_ARGS " $SHARED_OPTION"
@@ -423,7 +428,7 @@ proc gdc-do-test { } {
         # Cleanup
-        #file delete $filename
+        file delete $filename
     # All done.
diff --git a/gcc/testsuite/lib/gdc-dg.exp b/gcc/testsuite/lib/gdc-dg.exp
--- a/gcc/testsuite/lib/gdc-dg.exp
+++ b/gcc/testsuite/lib/gdc-dg.exp
@@ -32,6 +32,10 @@ proc gdc-dg-test { prog do_what extra_to
+    # Strip gdc.test prefix off test names to avoid pathname failures in
+    # some tests.
+    set prog [dg-trim-dirname gdc.test $prog]
     set result \
         [gcc-dg-test-1 gdc_target_compile $prog $do_what $extra_tool_flags]

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]