
lonetiger@gmail.com writes:
Hi *,
I’m trying to understand a few pieces of code in the testsuite,
As it so happens quite a few tests randomly fail on newer msys2 and python installs:
r:/temp/ghctest-0u4c8o/test spaces/./th/T12407.run T12407 [ext-interp] ([Error 183] Cannot create a file when that file already exists: 'r:/temp/ghctest-0u4c8o/test spaces/./th/T12407.run') r:/temp/ghctest-0u4c8o/test spaces/./th/T11463.run T11463 [ext-interp] ([Error 183] Cannot create a file when that file already exists: 'r:/temp/ghctest-0u4c8o/test spaces/./th/T11463.run') r:/temp/ghctest-0u4c8o/test spaces/./th/T12478_4.run T12478_4 [ext-interp] ([Error 183] Cannot create a file when that file already exists: 'r:/temp/ghctest-0u4c8o/test spaces/./th/T12478_4.run') r:/temp/ghctest-0u4c8o/test spaces/./th/T12478_3.run T12478_3 [ext-interp] ([Error 183] Cannot create a file when that file already exists: 'r:/temp/ghctest-0u4c8o/test spaces/./th/T12478_3.run')
(I say random, but the set of tests seem to be the same ones, just within that group a few randomly pass every so often. It’s mostly TH tests.)
Anyone have any ideas? I’m not very familiar with the internals of the testsuite.
Secondly, I’ve noticed all paths in the testsuite are relative paths. And this hand me wondering, relative to what.
I see that in do_test we actually change directories
837 if opts.pre_cmd: 838 exit_code = runCmd('cd "{0}" && {1}'.format(opts.testdir, opts.pre_cmd))
If I understand this correctly, this is merely spawning off a child shell process which then moves its own cwd to opts.testdir. This should not affect the cwd of the testsuite driver, which means that it should be perfectly safe. Cheers, - Ben