GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2019-07-07T18:00:56Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/16217check-api-annotations should check that an annotation does not precede its span2019-07-07T18:00:56ZAlan Zimmermancheck-api-annotations should check that an annotation does not precede its spanFor an API annotation to be useful, it must not occur before the span it is enclosed in.
So, for `check-api-annotation` output, a line such as
```
((Test16212.hs:3:22-36,AnnOpenP), [Test16212.hs:3:21]),
```
should be flagged as an err...For an API annotation to be useful, it must not occur before the span it is enclosed in.
So, for `check-api-annotation` output, a line such as
```
((Test16212.hs:3:22-36,AnnOpenP), [Test16212.hs:3:21]),
```
should be flagged as an error, as the `AnnOpenP` location of `3:21` precedes its enclosing span of `3:22-26`.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.3 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"check-api-annotations should check that an annotation does not precede its span","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"For an API annotation to be useful, it must not occur before the span it is enclosed in.\r\n\r\nSo, for `check-api-annotation` output, a line such as\r\n\r\n{{{\r\n((Test16212.hs:3:22-36,AnnOpenP), [Test16212.hs:3:21]),\r\n}}}\r\n\r\nshould be flagged as an error, as the `AnnOpenP` location of `3:21` precedes its enclosing span of `3:22-26`.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1https://gitlab.haskell.org/ghc/ghc/-/issues/15924Do not save performance test results if worktree is dirty2019-07-07T18:02:26ZdavideDo not save performance test results if worktree is dirtyThe test driver will automatically save performance results to git notes. Notes are attached to commits, but if the working tree is dirty, performance characteristics my be affected and the saved results will not be valid.
- Only save p...The test driver will automatically save performance results to git notes. Notes are attached to commits, but if the working tree is dirty, performance characteristics my be affected and the saved results will not be valid.
- Only save performance test results if work tree is dirty.
- Bonus: don't save to a git note if we have 0 results.
- Update wiki page.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Do not save performance test results if work tree is dirty","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"8.6.3","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.2","keywords":["git","notes","performance","tests"],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The test driver will automatically save performance results to git notes. Notes are attached to commits, but if the working tree is dirty, performance characteristics my be affected and the saved results will not be valid.\r\n\r\n* Only save performance test results if work tree is dirty.\r\n* Bonus: don't save to a git note if we have 0 results.\r\n* Update wiki page.","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1davidedavidehttps://gitlab.haskell.org/ghc/ghc/-/issues/15856GhostScript not available for hp2ps tests2019-07-07T18:02:42Zjrp2014GhostScript not available for hp2ps testsWhen I run `validate --slow` a number of tests fail, apparently erroneously, because `GhostScript not available for hp2ps tests`.
I don't know why this is the case (Ghostscript is installed on my ubuntu; perhaps there are some developer...When I run `validate --slow` a number of tests fail, apparently erroneously, because `GhostScript not available for hp2ps tests`.
I don't know why this is the case (Ghostscript is installed on my ubuntu; perhaps there are some developer libraries / headers that also need to be installed, but I don't recall seeing anything in the documentation about that).
The message "GhostScript not available for hp2ps tests" seems to come from a Python script that Simon Marlow produced in 2002. Unfortunately, there are two places where the message could have been generated.
There are probably 2 ways forward:
- a temporary bodge: taking the running of those tests that depend on hp2ps out of validation, in the same way that certain tests are not run when a dependent library is unavailable
- figuring out why the python script fails to understand that a ghostscript is actually present and fixing that
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.6.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | Simonmar |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"GhostScript not available for hp2ps tests","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.6.1","keywords":["ghostscript","gs","hp2ps","testsuite"],"differentials":[],"test_case":"","architecture":"","cc":["Simonmar"],"type":"Bug","description":"When I run `validate --slow` a number of tests fail, apparently erroneously, because `GhostScript not available for hp2ps tests`.\r\n\r\nI don't know why this is the case (Ghostscript is installed on my ubuntu; perhaps there are some developer libraries / headers that also need to be installed, but I don't recall seeing anything in the documentation about that).\r\n\r\nThe message \"GhostScript not available for hp2ps tests\" seems to come from a Python script that Simon Marlow produced in 2002. Unfortunately, there are two places where the message could have been generated.\r\n\r\nThere are probably 2 ways forward:\r\n\r\n - a temporary bodge: taking the running of those tests that depend on hp2ps out of validation, in the same way that certain tests are not run when a dependent library is unavailable\r\n\r\n- figuring out why the python script fails to understand that a ghostscript is actually present and fixing that","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1Krzysztof GogolewskiKrzysztof Gogolewskihttps://gitlab.haskell.org/ghc/ghc/-/issues/15363Do some cleaning up of the testsuite driver2019-07-07T18:12:59ZlanttiDo some cleaning up of the testsuite driverWhen trying to understand the GHC test suite I noticed some small improvements that I could do to it. This would probably work nicely as my first task on GHC:
Rewrite the timeout.hs in python, it is used for Windows runs but it doesn't ...When trying to understand the GHC test suite I noticed some small improvements that I could do to it. This would probably work nicely as my first task on GHC:
Rewrite the timeout.hs in python, it is used for Windows runs but it doesn't seem to do anything that would strictly need the Haskell libraries to be used and it is the only part of the test suite driver that is not written in python.
Or;
See if the timeout scripts could be eliminated altogether as the python subprocess module that we are using can now (since python 3.3) handle timeouts by itself and using the timeout scripts effectively doubles the number of processes we need to create for each test case. Notice that the timeout scripts do more than just generating the timeout.8.8.1lanttilanttihttps://gitlab.haskell.org/ghc/ghc/-/issues/15071:set usage in ghci tests breaks platform independence of output2019-07-07T18:14:24ZBen Gamari:set usage in ghci tests breaks platform independence of outputNumerous GHCi tests are currently failing on Windows due to the use of `:set`, which prints the default flag set, which is platform dependent. For instance:
```
--- "/tmp/ghctest-eo_ri0ye/test spaces/./ghci/scripts/ghci024.run/ghci024...Numerous GHCi tests are currently failing on Windows due to the use of `:set`, which prints the default flag set, which is platform dependent. For instance:
```
--- "/tmp/ghctest-eo_ri0ye/test spaces/./ghci/scripts/ghci024.run/ghci024.stdout.normalised" 2018-04-19 18:35:50.927278200 +0000
+++ "/tmp/ghctest-eo_ri0ye/test spaces/./ghci/scripts/ghci024.run/ghci024.run.stdout.normalised" 2018-04-19 18:35:50.927278200 +0000
@@ -7,7 +7,6 @@
GHCi-specific dynamic flag settings:
other dynamic, non-language, flag settings:
-fno-diagnostics-show-caret
- -fexternal-dynamic-refs
-fignore-optim-changes
-fignore-hpc-changes
-fno-ghci-history
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.2.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":":set usage in ghci tests breaks platform independence of output","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.2.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Numerous GHCi tests are currently failing on Windows due to the use of `:set`, which prints the default flag set, which is platform dependent. For instance:\r\n{{{\r\n--- \"/tmp/ghctest-eo_ri0ye/test spaces/./ghci/scripts/ghci024.run/ghci024.stdout.normalised\"\t2018-04-19 18:35:50.927278200 +0000\r\n+++ \"/tmp/ghctest-eo_ri0ye/test spaces/./ghci/scripts/ghci024.run/ghci024.run.stdout.normalised\"\t2018-04-19 18:35:50.927278200 +0000\r\n@@ -7,7 +7,6 @@\r\n GHCi-specific dynamic flag settings:\r\n other dynamic, non-language, flag settings:\r\n -fno-diagnostics-show-caret\r\n- -fexternal-dynamic-refs\r\n -fignore-optim-changes\r\n -fignore-hpc-changes\r\n -fno-ghci-history\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1Roland SennRoland Sennhttps://gitlab.haskell.org/ghc/ghc/-/issues/15059ghcpkg05 fails2019-07-07T18:14:29ZBen Gamarighcpkg05 failsSeveral people have noted that `ghcpkg05` seems to fail in some environments with (taken from CircleCI, https://circleci.com/gh/ghc/ghc/3654),
```
--- ./cabal/ghcpkg05.run/ghcpkg05.stderr.normalised 2018-04-19 14:14:29.043902308 +0000
+...Several people have noted that `ghcpkg05` seems to fail in some environments with (taken from CircleCI, https://circleci.com/gh/ghc/ghc/3654),
```
--- ./cabal/ghcpkg05.run/ghcpkg05.stderr.normalised 2018-04-19 14:14:29.043902308 +0000
+++ ./cabal/ghcpkg05.run/ghcpkg05.run.stderr.normalised 2018-04-19 14:14:29.043902308 +0000
@@ -10,6 +10,13 @@
cannot find any of ["C/D.hi","C/D.p_hi","C/D.dyn_hi"]
cannot find any of ["C/E.hi","C/E.p_hi","C/E.dyn_hi"]
cannot find any of ["libtestpkg-2.0-XXX.a","libtestpkg-2.0-XXX.p_a","libtestpkg-2.0-XXX-ghc<VERSION>.so","libtestpkg-2.0-XXX-ghc<VERSION>.dylib","testpkg-2.0-XXX-ghc<VERSION>.dll"] on library path
+Warning: include-dirs: /home/ghc/project/compiler/stage2/build/utils doesn't exist or isn't a directory
+Warning: include-dirs: /home/ghc/project/compiler/stage2/build/../rts/dist/build doesn't exist or isn't a directory
+Warning: include-dirs: /home/ghc/project/compiler/stage2/build/stage2 doesn't exist or isn't a directory
+Warning: include-dirs: /home/ghc/project/libraries/haskeline/dist-install/build/includes doesn't exist or isn't a directory
+Warning: include-dirs: /home/ghc/project/libraries/text/dist-install/build/include doesn't exist or isn't a directory
+Warning: include-dirs: /home/ghc/project/libraries/containers/dist-install/build/include doesn't exist or isn't a directory
+Warning: include-dirs: /home/ghc/project/libraries/bytestring/dist-install/build/include doesn't exist or isn't a directory
The following packages are broken, either because they have a problem
listed above, or because they depend on a broken package.
*** unexpected failure for ghcpkg05(normal)
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.2.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"ghcpkg05 fails","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.2.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Several people have noted that `ghcpkg05` seems to fail in some environments with (taken from CircleCI, https://circleci.com/gh/ghc/ghc/3654),\r\n{{{\r\n--- ./cabal/ghcpkg05.run/ghcpkg05.stderr.normalised\t2018-04-19 14:14:29.043902308 +0000\r\n+++ ./cabal/ghcpkg05.run/ghcpkg05.run.stderr.normalised\t2018-04-19 14:14:29.043902308 +0000\r\n@@ -10,6 +10,13 @@\r\n cannot find any of [\"C/D.hi\",\"C/D.p_hi\",\"C/D.dyn_hi\"]\r\n cannot find any of [\"C/E.hi\",\"C/E.p_hi\",\"C/E.dyn_hi\"]\r\n cannot find any of [\"libtestpkg-2.0-XXX.a\",\"libtestpkg-2.0-XXX.p_a\",\"libtestpkg-2.0-XXX-ghc<VERSION>.so\",\"libtestpkg-2.0-XXX-ghc<VERSION>.dylib\",\"testpkg-2.0-XXX-ghc<VERSION>.dll\"] on library path\r\n+Warning: include-dirs: /home/ghc/project/compiler/stage2/build/utils doesn't exist or isn't a directory\r\n+Warning: include-dirs: /home/ghc/project/compiler/stage2/build/../rts/dist/build doesn't exist or isn't a directory\r\n+Warning: include-dirs: /home/ghc/project/compiler/stage2/build/stage2 doesn't exist or isn't a directory\r\n+Warning: include-dirs: /home/ghc/project/libraries/haskeline/dist-install/build/includes doesn't exist or isn't a directory\r\n+Warning: include-dirs: /home/ghc/project/libraries/text/dist-install/build/include doesn't exist or isn't a directory\r\n+Warning: include-dirs: /home/ghc/project/libraries/containers/dist-install/build/include doesn't exist or isn't a directory\r\n+Warning: include-dirs: /home/ghc/project/libraries/bytestring/dist-install/build/include doesn't exist or isn't a directory\r\n \r\n The following packages are broken, either because they have a problem\r\n listed above, or because they depend on a broken package.\r\n*** unexpected failure for ghcpkg05(normal)\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1https://gitlab.haskell.org/ghc/ghc/-/issues/14534Split T12971 into its own Makefile2019-07-07T18:16:37ZDavid FeuerSplit T12971 into its own Makefile`testsuite/tests/driver/Makefile` includes the `T12971` target. This (intentionally) has non-ASCII characters in it. As a result, any change to that makefile will trigger a lint error. We should give that test its own makefile to isolate...`testsuite/tests/driver/Makefile` includes the `T12971` target. This (intentionally) has non-ASCII characters in it. As a result, any change to that makefile will trigger a lint error. We should give that test its own makefile to isolate it a bit.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.2.1 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | low |
| Resolution | Unresolved |
| Component | Test Suite |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Split T12971 into its own Makefile","status":"New","operating_system":"","component":"Test Suite","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.2.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"`testsuite/tests/driver/Makefile` includes the `T12971` target. This (intentionally) has non-ASCII characters in it. As a result, any change to that makefile will trigger a lint error. We should give that test its own makefile to isolate it a bit.","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1