Test cases and missing RTS linker

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Test cases and missing RTS linker

Stefan Schulze Frielinghaus
Hi all,

How is a test case supposed to be marked if it makes use of the RTS linker
which itself is not supported on some architectures?

For example, some test cases are marked for a particular architecutre like
PowerPC64 that it fails because of a missing RTS linker.

Style (A)

  test('T10052', [when(arch('powerpc64') or arch('powerpc64le'),
                  expect_broken(11259)), req_interp],
       makefile_test, ['T10052'])

Whereas another test case is marked to be skipped if RTS linker is missing.

Style (B)

  test('static-plugins',
       [extra_files(['simple-plugin/']),
        unless(config.have_RTS_linker, skip),
        expect_broken_for(16803, prof_ways),
        extra_run_opts('"' + config.libdir + '"')],
       compile_and_run,
       ['-package ghc -isimple-plugin/'])

If style (A) is the way to go, then for every architecture which does not
support the RTS linker a when-clause must be added.

If style (B) is the way to go, then shouldn't we change all test cases of style
(A) to style (B)?

Personally I prefer style (B) over (A) because it makes it easier to add an
architecture where the RTS linker is not provided. Even if the RTS linker is
provided after some time, then the test case must not be changed. Once
PowerPC64 supports the RTS linker all when-clauses must be removed.

Any thoughts which style to use?

Cheers,
Stefan
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs