Use os.devnull instead of '/dev/null' in the testsuite driver.

The later caused issues on windows by being translated into
"\\dev\\null" and python then trying to open this non-existant file.

So we now use os.devnull inside python and convert it to "/dev/null"
when calling out to the shell, which is bound to run in a unix like
environment.

This fixes an issue a test producing unexpected stderr output failed
with a framework failure instead of showing a diff of the output.
30 jobs for master in 777 minutes and 35 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Lint
passed #141838
lint
lint-linters

00:01:09

passed #141841
lint
lint-submods-branch

00:00:15

passed #141839
lint
lint-testsuite

00:01:07

passed #141840
lint
typecheck-testsuite

00:00:14

 
  Build
passed #141843
x86_64-linux
hadrian-ghc-in-ghci

00:12:13

passed #141845
x86_64-linux
release-x86_64-linux-deb9-dwarf

00:54:07

passed #141844
x86_64-linux
validate-x86_64-linux-deb9-debug

02:22:28

passed #141842
x86_64-linux
validate-x86_64-linux-deb9-hadrian

02:24:11

 
  Full Build
failed #141848
aarch64-linux allowed to fail
nightly-aarch64-linux-deb9

01:57:59

failed #141850
x86_64-linux
nightly-i386-linux-deb9

02:41:38

failed #141861
x86_64-windows allowed to fail
nightly-i386-windows

09:49:42

failed #141859
x86_64-windows allowed to fail
nightly-i386-windows-hadrian

00:41:59

failed #141856
x86_64-linux allowed to fail
nightly-x86_64-linux-alpine

01:33:46

passed #141851
x86_64-linux
nightly-x86_64-linux-deb9

02:05:53

passed #141854
x86_64-linux
nightly-x86_64-linux-deb9-integer-simple

02:22:18

failed #141852
x86_64-linux
nightly-x86_64-linux-deb9-llvm

02:04:48

failed #141847
aarch64-linux allowed to fail
validate-aarch64-linux-deb9

01:59:08

passed #141849
x86_64-linux
validate-i386-linux-deb9

00:54:27

passed #141846
x86_64-darwin
validate-x86_64-darwin

00:56:47

passed #141853
x86_64-linux
validate-x86_64-linux-deb9-integer-simple

01:26:24

failed #141855
x86_64-linux
validate-x86_64-linux-deb9-unreg

02:11:06

passed #141857
x86_64-linux
validate-x86_64-linux-fedora27

01:27:37

failed #141860
x86_64-windows allowed to fail
validate-x86_64-windows

02:39:15

failed #141858
x86_64-windows allowed to fail
validate-x86_64-windows-hadrian

02:39:36

 
  Cleanup
passed #141862
x86_64-darwin
cleanup-darwin

00:00:12

 
  Packaging
skipped #141863
x86_64-linux allowed to fail
doc-tarball
 
  Testing
skipped #141864
x86_64-linux allowed to fail manual
hackage
skipped #141865
x86_64-linux
nightly-hackage
skipped #141866
x86_64-linux
perf-nofib
 
  Deploy
skipped #141867
x86_64-linux allowed to fail
pages
 
Name Stage Failure
failed
nightly-i386-windows Full Build
junit.xml: found 1 matching files                  
WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=141861 responseStatus=201 Created token=za5L3Y7s
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=3336 revision=1f513601 version=11.10.1
junit.xml: found 1 matching files

WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=141861 responseStatus=201 Created token=za5L3Y7s
ERROR: Job failed: exit status 2
failed
nightly-i386-linux-deb9 Full Build
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
ghc-*.tar.xz: found 1 matching files
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok id=141850 responseStatus=201 Created token=ibKYtyFe
Uploading artifacts...
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok id=141850 responseStatus=201 Created token=ibKYtyFe
ERROR: Job failed: exit code 1
failed
validate-x86_64-windows-hadrian Full Build
junit.xml: found 1 matching files                  
WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=141858 responseStatus=201 Created token=-1MUEUWC
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=3064 revision=1f513601 version=11.10.1
junit.xml: found 1 matching files

WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=141858 responseStatus=201 Created token=-1MUEUWC
ERROR: Job failed: exit status 1
failed
validate-x86_64-windows Full Build
junit.xml: found 1 matching files                  
WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=141860 responseStatus=201 Created token=paXLUb7r
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=4720 revision=1f513601 version=11.10.1
junit.xml: found 1 matching files

WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=141860 responseStatus=201 Created token=paXLUb7r
ERROR: Job failed: exit status 2
failed
validate-x86_64-linux-deb9-unreg Full Build
make[1]: *** [test] Error 1
Makefile:224: recipe for target 'test' failed
make: *** [test] Error 2
Running after script...
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok id=141855 responseStatus=201 Created token=Wc7hFNKj
ERROR: Job failed: exit code 1
failed
nightly-x86_64-linux-deb9-llvm Full Build
make[1]: Leaving directory '/builds/ghc/ghc/testsuite/tests'
Makefile:224: recipe for target 'test' failed
make: *** [test] Error 2
Running after script...
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok id=141852 responseStatus=201 Created token=zMANWiX8
ERROR: Job failed: exit code 1
failed
validate-aarch64-linux-deb9 Full Build
cp: error writing 'cabal-cache/world': No space left on device
Uploading artifacts...
WARNING: ghc-*.tar.xz: no matching files
WARNING: junit.xml: no matching files
ERROR: No files to upload
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
nightly-aarch64-linux-deb9 Full Build
cp: error writing 'cabal-cache/packages/hackage.haskell.org/root.json': No space left on device
cp: error writing 'cabal-cache/packages/hackage.haskell.org/snapshot.json': No space left on device
cp: error writing 'cabal-cache/packages/hackage.haskell.org/timestamp.json': No space left on device
cp: cannot create directory 'cabal-cache/share': No space left on device
cp: error writing 'cabal-cache/world': No space left on device
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
nightly-x86_64-linux-alpine Full Build
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
ghc-*.tar.xz: found 1 matching files
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok id=141856 responseStatus=201 Created token=7UtCvsth
Uploading artifacts...
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok id=141856 responseStatus=201 Created token=7UtCvsth
ERROR: Job failed: exit code 1
failed
nightly-i386-windows-hadrian Full Build
Runtime platform                                    arch=amd64 os=windows pid=688 revision=1f513601 version=11.10.1
WARNING: ghc.tar.xz: no matching files
WARNING: junit.xml: no matching files
ERROR: No files to upload
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=4108 revision=1f513601 version=11.10.1
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit status 1