diff options
-rw-r--r-- | testsuite/driver/testglobals.py | 3 | ||||
-rw-r--r-- | testsuite/driver/testlib.py | 5 | ||||
-rw-r--r-- | testsuite/mk/ghc-config.hs | 1 | ||||
-rw-r--r-- | testsuite/mk/test.mk | 6 | ||||
-rw-r--r-- | testsuite/tests/ghci/should_run/T18064.script | 2 | ||||
-rw-r--r-- | testsuite/tests/ghci/should_run/T18064.stderr | 2 | ||||
-rw-r--r-- | testsuite/tests/ghci/should_run/T18064.stdout | 1 | ||||
-rw-r--r-- | testsuite/tests/ghci/should_run/all.T | 9 |
8 files changed, 29 insertions, 0 deletions
diff --git a/testsuite/driver/testglobals.py b/testsuite/driver/testglobals.py index 13e22d5329..c358a660d9 100644 --- a/testsuite/driver/testglobals.py +++ b/testsuite/driver/testglobals.py @@ -148,6 +148,9 @@ class TestConfig: # Is the compiler dynamically linked? self.ghc_dynamic = False + # Do symbols use leading underscores? + self.leading_underscore = False + # the timeout program self.timeout_prog = '' self.timeout = 300 diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py index 9d6fc27b95..a6ff229c06 100644 --- a/testsuite/driver/testlib.py +++ b/testsuite/driver/testlib.py @@ -501,6 +501,11 @@ def doing_ghci() -> bool: def ghc_dynamic() -> bool: return config.ghc_dynamic +# Symbols have a leading underscore +def leading_underscore() -> bool: + return config.leading_underscore + + def fast() -> bool: return config.speed == 2 diff --git a/testsuite/mk/ghc-config.hs b/testsuite/mk/ghc-config.hs index b0278bcfae..cfd6147cd0 100644 --- a/testsuite/mk/ghc-config.hs +++ b/testsuite/mk/ghc-config.hs @@ -23,6 +23,7 @@ main = do getGhcFieldOrFail fields "GhcUnregisterised" "Unregisterised" getGhcFieldOrFail fields "GhcWithSMP" "Support SMP" getGhcFieldOrFail fields "GhcRTSWays" "RTS ways" + getGhcFieldOrFail fields "GhcLeadingUnderscore" "Leading underscore" getGhcFieldOrDefault fields "GhcDynamicByDefault" "Dynamic by default" "NO" getGhcFieldOrDefault fields "GhcDynamic" "GHC Dynamic" "NO" getGhcFieldOrDefault fields "GhcProfiled" "GHC Profiled" "NO" diff --git a/testsuite/mk/test.mk b/testsuite/mk/test.mk index b2cdf78f5f..35d3122903 100644 --- a/testsuite/mk/test.mk +++ b/testsuite/mk/test.mk @@ -93,6 +93,12 @@ else RUNTEST_OPTS += -e ghc_with_native_codegen=False endif +ifeq "$(GhcLeadingUnderscore)" "YES" +RUNTEST_OPTS += -e "config.leading_underscore=True" +else +RUNTEST_OPTS += -e "config.leading_underscore=False" +endif + GHC_PRIM_LIBDIR := $(subst library-dirs: ,,$(shell "$(GHC_PKG)" field ghc-prim library-dirs --simple-output)) HAVE_VANILLA := $(shell if [ -f $(subst \,/,$(GHC_PRIM_LIBDIR))/GHC/PrimopWrappers.hi ]; then echo YES; else echo NO; fi) HAVE_DYNAMIC := $(shell if [ -f $(subst \,/,$(GHC_PRIM_LIBDIR))/GHC/PrimopWrappers.dyn_hi ]; then echo YES; else echo NO; fi) diff --git a/testsuite/tests/ghci/should_run/T18064.script b/testsuite/tests/ghci/should_run/T18064.script new file mode 100644 index 0000000000..da98c8e8ac --- /dev/null +++ b/testsuite/tests/ghci/should_run/T18064.script @@ -0,0 +1,2 @@ +import GHCi.ObjLink +lookupClosure "blah" diff --git a/testsuite/tests/ghci/should_run/T18064.stderr b/testsuite/tests/ghci/should_run/T18064.stderr new file mode 100644 index 0000000000..8edd219551 --- /dev/null +++ b/testsuite/tests/ghci/should_run/T18064.stderr @@ -0,0 +1,2 @@ +<interactive>: ^^ Could not load 'blah', dependency unresolved. See top entry above. + diff --git a/testsuite/tests/ghci/should_run/T18064.stdout b/testsuite/tests/ghci/should_run/T18064.stdout new file mode 100644 index 0000000000..4a584e4989 --- /dev/null +++ b/testsuite/tests/ghci/should_run/T18064.stdout @@ -0,0 +1 @@ +Nothing diff --git a/testsuite/tests/ghci/should_run/all.T b/testsuite/tests/ghci/should_run/all.T index fa4c78cdce..8130d512d4 100644 --- a/testsuite/tests/ghci/should_run/all.T +++ b/testsuite/tests/ghci/should_run/all.T @@ -66,3 +66,12 @@ test('T16012', just_ghci, ghci_script, ['T16012.script']) test('T16096', just_ghci, ghci_script, ['T16096.script']) test('T507', just_ghci, ghci_script, ['T507.script']) test('T18027', just_ghci, ghci_script, ['T18027.script']) +test('T18064', + [just_ghci, + when(leading_underscore(),skip) + # we need to skip otherwise the test fails on platforms prepending leading + # underscores to symbols (we get "Could not load '_blah'" instead of "Could + # not load 'blah'). + ], + ghci_script, + ['T18064.script']) |