diff options
author | Alec Theriault <alec.theriault@gmail.com> | 2018-12-11 13:47:35 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-12-11 14:23:22 -0500 |
commit | f582379de2c4ff7577235c926ad953debdae3cac (patch) | |
tree | df39b7a00d1730be04da120ca452517043478809 /testsuite/tests/driver | |
parent | 21339c9f6bfb952a3a0b8de5ee649d46dfbf0d9b (diff) | |
download | haskell-f582379de2c4ff7577235c926ad953debdae3cac.tar.gz |
Support generating HIE files
Adds a `-fenable-ide-info` flag which instructs GHC to generate `.hie`
files (see the wiki page:
https://ghc.haskell.org/trac/ghc/wiki/HIEFiles).
This is a rebased version of Zubin Duggal's (@wz1000) GHC changes for
his GSOC project, as posted here:
https://gist.github.com/wz1000/5ed4ddd0d3e96d6bc75e095cef95363d.
Test Plan: ./validate
Reviewers: bgamari, gershomb, nomeata, alanz, sjakobi
Reviewed By: alanz, sjakobi
Subscribers: alanz, hvr, sjakobi, rwbarton, wz1000, carter
Differential Revision: https://phabricator.haskell.org/D5239
Diffstat (limited to 'testsuite/tests/driver')
-rw-r--r-- | testsuite/tests/driver/recomp018/A.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp018/B.hs | 6 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp018/C.hs | 6 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp018/Makefile | 30 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp018/all.T | 5 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp018/recomp018.stdout | 7 |
6 files changed, 61 insertions, 0 deletions
diff --git a/testsuite/tests/driver/recomp018/A.hs b/testsuite/tests/driver/recomp018/A.hs new file mode 100644 index 0000000000..e9c922f03a --- /dev/null +++ b/testsuite/tests/driver/recomp018/A.hs @@ -0,0 +1,7 @@ +module A where + +import B +import C + +foo :: Int +foo = 4 diff --git a/testsuite/tests/driver/recomp018/B.hs b/testsuite/tests/driver/recomp018/B.hs new file mode 100644 index 0000000000..aa2dfcc38f --- /dev/null +++ b/testsuite/tests/driver/recomp018/B.hs @@ -0,0 +1,6 @@ +module B where + +data B a = B a + +b :: a -> B a +b = B diff --git a/testsuite/tests/driver/recomp018/C.hs b/testsuite/tests/driver/recomp018/C.hs new file mode 100644 index 0000000000..43bb9dd632 --- /dev/null +++ b/testsuite/tests/driver/recomp018/C.hs @@ -0,0 +1,6 @@ +module C where + +data C a = C a + +c :: a -> C a +c = C diff --git a/testsuite/tests/driver/recomp018/Makefile b/testsuite/tests/driver/recomp018/Makefile new file mode 100644 index 0000000000..fa18a54fe1 --- /dev/null +++ b/testsuite/tests/driver/recomp018/Makefile @@ -0,0 +1,30 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk + +# Recompilation tests for .hie files + +clean: + rm -f *.o *.hi *.hie + +recomp018: clean + echo 'first run' + '$(TEST_HC)' $(TEST_HC_OPTS) --make -fwrite-ide-info A.hs + sleep 1 + + # Check the .hie files have been created + test -f A.hie + test -f B.hie + test -f C.hie + + # Remove some of those files + rm A.hie B.hie + + # Recompile + echo 'second run' + '$(TEST_HC)' $(TEST_HC_OPTS) --make -fwrite-ide-info A.hs + + # Check the .hie files have been created + test -f A.hie + test -f B.hie + test -f C.hie diff --git a/testsuite/tests/driver/recomp018/all.T b/testsuite/tests/driver/recomp018/all.T new file mode 100644 index 0000000000..0d8faf70ca --- /dev/null +++ b/testsuite/tests/driver/recomp018/all.T @@ -0,0 +1,5 @@ +# Test for regenerating .hie files that are out of date or missing + +test('recomp018', + [extra_files(['A.hs', 'B.hs', 'C.hs'])], + run_command, ['$MAKE -s --no-print-directory recomp018']) diff --git a/testsuite/tests/driver/recomp018/recomp018.stdout b/testsuite/tests/driver/recomp018/recomp018.stdout new file mode 100644 index 0000000000..ff1b3c016d --- /dev/null +++ b/testsuite/tests/driver/recomp018/recomp018.stdout @@ -0,0 +1,7 @@ +first run +[1 of 3] Compiling B ( B.hs, B.o ) +[2 of 3] Compiling C ( C.hs, C.o ) +[3 of 3] Compiling A ( A.hs, A.o ) +second run +[1 of 3] Compiling B ( B.hs, B.o ) [HIE file is missing] +[3 of 3] Compiling A ( A.hs, A.o ) [HIE file is missing] |