[testsuite] Mark gdc.dg/pr89042?.d as compile tests

Message ID yddpnsfzw07.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series
  • [testsuite] Mark gdc.dg/pr89042?.d as compile tests
Related show

Commit Message

Rainer Orth Jan. 29, 2019, 8:52 a.m.
I've seen the new gdc.dg/pr89042?.d tests FAIL in a parallel multilib
bootstrap on i386-pc-solaris2.11:

+FAIL: gdc.dg/pr89042a.d   -O0  (test for excess errors)
+UNRESOLVED: gdc.dg/pr89042a.d   -O0  compilation failed to produce executable
+FAIL: gdc.dg/pr89042a.d   -O0 -frelease  (test for excess errors)
+UNRESOLVED: gdc.dg/pr89042a.d   -O0 -frelease  compilation failed to produce executable
+FAIL: gdc.dg/pr89042a.d   -O0 -frelease -g  (test for excess errors)
+UNRESOLVED: gdc.dg/pr89042a.d   -O0 -frelease -g  compilation failed to produce executable
+FAIL: gdc.dg/pr89042a.d   -O0 -g  (test for excess errors)
+UNRESOLVED: gdc.dg/pr89042a.d   -O0 -g  compilation failed to produce executable
+FAIL: gdc.dg/pr89042a.d   -O1  (test for excess errors)
+UNRESOLVED: gdc.dg/pr89042a.d   -O1  compilation failed to produce executable
+FAIL: gdc.dg/pr89042a.d   -O1 -frelease  (test for excess errors)
[...]
+FAIL: gdc.dg/pr89042b.d   -O0  (test for excess errors)
+UNRESOLVED: gdc.dg/pr89042b.d   -O0  compilation failed to produce executable
+FAIL: gdc.dg/pr89042b.d   -O0 -frelease  (test for excess errors)
[...]

Undefined                       first referenced
 symbol                             in file
main                                /usr/lib/amd64/crt1.o
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status
compiler exited with status 1
FAIL: gdc.dg/pr89042a.d   -O0  (test for excess errors)

Although they are obviouly compile tests, an attempt is made to link
them which fails.

As an immediate fix, I've marked them as compile tests explicitly.
However, the underlying problem is that the gdc testsuite drivers
(gdc-test.exp in particular) don't save and restore dg-do-what-default
as they should.  So depending on what driver is run before in a parallel
make check, it can happen that dg-do-what-default is set to link or run
from a previous test.

Tested on i386-pc-solaris2.11, installed on mainline.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2019-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gdc.dg/pr89042a.d: Mark as compile test.
	* gdc.dg/pr89042b.d: Likewise.

Comments

Iain Buclaw Jan. 29, 2019, 10:08 a.m. | #1
On Tue, 29 Jan 2019 at 09:52, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>

> I've seen the new gdc.dg/pr89042?.d tests FAIL in a parallel multilib

> bootstrap on i386-pc-solaris2.11:

>

> +FAIL: gdc.dg/pr89042a.d   -O0  (test for excess errors)

> +UNRESOLVED: gdc.dg/pr89042a.d   -O0  compilation failed to produce executable

> +FAIL: gdc.dg/pr89042a.d   -O0 -frelease  (test for excess errors)

> +UNRESOLVED: gdc.dg/pr89042a.d   -O0 -frelease  compilation failed to produce executable

> +FAIL: gdc.dg/pr89042a.d   -O0 -frelease -g  (test for excess errors)

> +UNRESOLVED: gdc.dg/pr89042a.d   -O0 -frelease -g  compilation failed to produce executable

> +FAIL: gdc.dg/pr89042a.d   -O0 -g  (test for excess errors)

> +UNRESOLVED: gdc.dg/pr89042a.d   -O0 -g  compilation failed to produce executable

> +FAIL: gdc.dg/pr89042a.d   -O1  (test for excess errors)

> +UNRESOLVED: gdc.dg/pr89042a.d   -O1  compilation failed to produce executable

> +FAIL: gdc.dg/pr89042a.d   -O1 -frelease  (test for excess errors)

> [...]

> +FAIL: gdc.dg/pr89042b.d   -O0  (test for excess errors)

> +UNRESOLVED: gdc.dg/pr89042b.d   -O0  compilation failed to produce executable

> +FAIL: gdc.dg/pr89042b.d   -O0 -frelease  (test for excess errors)

> [...]

>

> Undefined                       first referenced

>  symbol                             in file

> main                                /usr/lib/amd64/crt1.o

> ld: fatal: symbol referencing errors

> collect2: error: ld returned 1 exit status

> compiler exited with status 1

> FAIL: gdc.dg/pr89042a.d   -O0  (test for excess errors)

>

> Although they are obviouly compile tests, an attempt is made to link

> them which fails.

>

> As an immediate fix, I've marked them as compile tests explicitly.

> However, the underlying problem is that the gdc testsuite drivers

> (gdc-test.exp in particular) don't save and restore dg-do-what-default

> as they should.  So depending on what driver is run before in a parallel

> make check, it can happen that dg-do-what-default is set to link or run

> from a previous test.

>

> Tested on i386-pc-solaris2.11, installed on mainline.

>


I'll have a look into that, this is OK in the meantime.

Thanks
-- 
Iain

Patch

# HG changeset patch
# Parent  4b1525dfaa492568a95a76642dff2640b0c188df
Mark gdc.dg/pr89042?.d as compile tests

diff --git a/gcc/testsuite/gdc.dg/pr89042a.d b/gcc/testsuite/gdc.dg/pr89042a.d
--- a/gcc/testsuite/gdc.dg/pr89042a.d
+++ b/gcc/testsuite/gdc.dg/pr89042a.d
@@ -1,2 +1,3 @@ 
 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89042
+// { dg-do compile }
 enum void[] a = void;
diff --git a/gcc/testsuite/gdc.dg/pr89042b.d b/gcc/testsuite/gdc.dg/pr89042b.d
--- a/gcc/testsuite/gdc.dg/pr89042b.d
+++ b/gcc/testsuite/gdc.dg/pr89042b.d
@@ -1,2 +1,3 @@ 
 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89042
+// { dg-do compile }
 enum void[2] a = void;