From b57e1621eb76ba80c949ad098829aa8171a8c4ab Mon Sep 17 00:00:00 2001
From: Iain Buclaw <ibuclaw@gdcproject.org>
Date: Tue, 14 Apr 2020 18:27:49 +0200
Subject: testsuite: Disable gdc standard runtime tests if phobos is not built.

The current check_effective_target_d_runtime procedure returns false if
the target is built without any core runtime library for D being
available (--disable-libphobos).  This additional procedure is for
targets where the core runtime library exists, but without the higher
level standard library.

gcc/ChangeLog:

	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document d_runtime_has_std_library.

gcc/testsuite/ChangeLog:

	* gdc.dg/link.d: Use d_runtime_has_std_library effective target.
	* gdc.dg/runnable.d: Move phobos tests to...
	* gdc.dg/runnable2.d: ...here.  New test.
	* lib/target-supports.exp
	(check_effective_target_d_runtime_has_std_library): New.

libphobos/ChangeLog:

	* testsuite/libphobos.phobos/phobos.exp: Skip if effective target is
	not d_runtime_has_std_library.
	* testsuite/libphobos.phobos_shared/phobos_shared.exp: Likewise.
---
 libphobos/ChangeLog                                           | 6 ++++++
 libphobos/testsuite/libphobos.phobos/phobos.exp               | 5 +++++
 libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp | 5 +++++
 3 files changed, 16 insertions(+)

(limited to 'libphobos')

diff --git a/libphobos/ChangeLog b/libphobos/ChangeLog
index e6eec48..838544e 100644
--- a/libphobos/ChangeLog
+++ b/libphobos/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* testsuite/libphobos.phobos/phobos.exp: Skip if effective target is
+	not d_runtime_has_std_library.
+	* testsuite/libphobos.phobos_shared/phobos_shared.exp: Likewise.
+
 2020-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	* libdruntime/core/stdc/stdarg.d: Remove run-time va_list template.
diff --git a/libphobos/testsuite/libphobos.phobos/phobos.exp b/libphobos/testsuite/libphobos.phobos/phobos.exp
index 3d876ac..aad877c 100644
--- a/libphobos/testsuite/libphobos.phobos/phobos.exp
+++ b/libphobos/testsuite/libphobos.phobos/phobos.exp
@@ -19,6 +19,11 @@ if { ![isnative] || ![is-effective-target static] } {
     return
 }
 
+# Skip running test if phobos was not built on the target.
+if { ![is-effective-target d_runtime_has_std_library] } {
+    return
+}
+
 # Gather a list of all tests.
 set tests [lsort [filter_libphobos_unittests [find $srcdir/../src "*.d"]]]
 
diff --git a/libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp b/libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
index 43b9772d6..a00ecf11 100644
--- a/libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
+++ b/libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
@@ -19,6 +19,11 @@ if { ![isnative] || ![is-effective-target shared] } {
     return
 }
 
+# Skip running test if phobos was not built on the target.
+if { ![is-effective-target d_runtime_has_std_library] } {
+    return
+}
+
 # Gather a list of all tests.
 set tests [lsort [filter_libphobos_unittests [find $srcdir/../src "*.d"]]]
 
-- 
cgit v1.1