[LLVMdev] QEMU testing for LIT execution tests

Jonathan Roelofs jonathan at codesourcery.com
Mon Sep 8 12:49:34 PDT 2014



On 9/8/14, 12:39 PM, Greg Fitzgerald wrote:
> Hi Jon,
>
> Compiler-rt, libcxx, libcxxabi should all use the same
> cross-compilation testing strategy.  Compiler-rt already has a working
> solution.  If it is inadequate for libcxx or libcxxabi, can we start
> by addressing those deficiencies?
One issue to start with is that none of the libcxx/libcxxabi tests have RUN 
lines. All of the tests are either: *.fail.cpp ones that fail to compile, or 
*.pass.cpp ones that are expected to exit with a return status of 0 without 
failing an asserts. Granted, this is more of a test semantic issue, but there 
are a *lot* of tests to update in order to converge on compiler_rt's 'RUN: ' format.

[Sidenote: I don't see any 'RUN:' lines on the builtins unit tests. How does it 
work for those ones?]

Another issue, which Dan Albert recently pointed out to me, is that there are 
several libcxx tests which would require copying in of test data (in addition to 
test executables).  I think that this necessitates inventing a new LIT syntax, 
something like '// DEPENDS-ON: filename.dat' in order to inform the lit.cfg that 
the dependent file also needs to be copied to the remote target.

A third issue is that I don't think the current '%run' solution works for full 
Canadian cross testing (i.e. run lit on BUILD, clang/llvm/whatever on HOST, and 
the tests themselves on TARGET, where {BUILD,HOST,TARGET} are all different 
machines).  This use case is of particular interest to me. I suppose %run could 
be renamed %run_target, add %run_host, and then have an implied no-op %run_build 
on commands that don't have %run_target or %run_host. Perhaps someone might want 
to have BUILD be a different machine than where LIT runs, in which case 
%run_build would have to be explicit (but I'm not really interested in that use 
case).


Cheers,
Jon
>
> Thanks,
> Greg
>
>

-- 
Jon Roelofs
jonathan at codesourcery.com
CodeSourcery / Mentor Embedded



More information about the llvm-dev mailing list