[PATCH] D22802: [sanitizers] Make it possible to XFAIL on the effective target, not just the default.

Daniel Sanders via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 26 05:09:48 PDT 2016


dsanders created this revision.
dsanders added subscribers: samsonov, llvm-commits.
Herald added a subscriber: kubabrecka.

The triple is not the right thing to XFAIL on since LIT only sees the default
triple and not the effective triple chosen by any -target option in the RUN
directives. This discrepancy is shown in the table below:

Default Triple   | Options                           | XFAIL  | LIT's expected result | Desired expectation
=================+===================================+========+=======================+====================
mips-linux-gnu   | -target mips-linux-gnu            |        | Pass                  | Pass  
mips-linux-gnu   | -target mips64-linux-gnu -mabi=64 |        | Pass                  | Pass  
mips-linux-gnu   | -target mips-linux-gnu            | mips   | Fail                  | Fail  
mips-linux-gnu   | -target mips64-linux-gnu -mabi=64 | mips   | Fail                  | Fail/Pass* (debatable**)
mips-linux-gnu   | -target mips-linux-gnu            | mips-  | Fail                  | Fail  
mips-linux-gnu   | -target mips64-linux-gnu -mabi=64 | mips-  | Fail                  | Pass* 
mips-linux-gnu   | -target mips-linux-gnu            | mips64 | Pass                  | Pass  
mips-linux-gnu   | -target mips64-linux-gnu -mabi=64 | mips64 | Pass                  | Fail* 
mips64-linux-gnu | -target mips-linux-gnu            |        | Pass                  | Pass  
mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 |        | Pass                  | Pass  
mips64-linux-gnu | -target mips-linux-gnu            | mips   | Fail                  | Fail* 
mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips   | Fail                  | Fail/Pass (debatable**)
mips64-linux-gnu | -target mips-linux-gnu            | mips-  | Pass                  | Fail* 
mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips-  | Pass                  | Pass  
mips64-linux-gnu | -target mips-linux-gnu            | mips64 | Fail                  | Pass* 
mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips64 | Fail                  | Fail  
x64_64-linux-gnu | -target i386-linux-gnu            |        | Pass                  | Pass
x64_64-linux-gnu | -target x86_64-linux-gnu          |        | Pass                  | Pass
x64_64-linux-gnu | -target i386-linux-gnu            | i386   | Pass                  | Fail*
x64_64-linux-gnu | -target x86_64-linux-gnu          | i386   | Pass                  | Pass
x64_64-linux-gnu | -target i386-linux-gnu            | x86_64 | Fail                  | Pass
x64_64-linux-gnu | -target x86_64-linux-gnu          | x86_64 | Fail                  | Fail*
* These all differ from LIT's current behaviour.
** People's expectations vary depending on whether they know that LIT does a
   substring match on the default triple or think it's an exact match on an
   architecture.

This patch adds "target-is-${target_arch}" to the available features list and
updates the mips XFAIL's to use them. XFAIL'ing on these features will
correctly account for the target being tested. Making the table:

Options                           | XFAIL            | LIT's expected result
==================================+==================+======================
-target mips-linux-gnu            |                  | Pass
-target mips64-linux-gnu -mabi=64 |                  | Pass
-target mips-linux-gnu            | target-is-mips   | Fail
-target mips64-linux-gnu -mabi=64 | target-is-mips   | Pass
-target mips-linux-gnu            | target-is-mips64 | Pass
-target mips64-linux-gnu -mabi=64 | target-is-mips64 | Fail
-target i386-linux-gnu            |                  | Pass
-target x86_64-linux-gnu          |                  | Pass
-target i386-linux-gnu            | target-is-i386   | Fail
-target x86_64-linux-gnu          | target-is-i386   | Pass
-target i386-linux-gnu            | target-is-x86_64 | Pass
-target x86_64-linux-gnu          | target-is-x86_64 | Fail

https://reviews.llvm.org/D22802

Files:
  test/asan/TestCases/Linux/local_alias.cc
  test/asan/TestCases/Linux/odr-violation.cc
  test/lit.common.configured.in
  test/tsan/ignore_lib4.cc
  test/tsan/longjmp.cc
  test/tsan/longjmp2.cc
  test/tsan/longjmp3.cc
  test/tsan/longjmp4.cc
  test/tsan/map32bit.cc
  test/tsan/signal_longjmp.cc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22802.65498.patch
Type: text/x-patch
Size: 4538 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160726/bd81dbc4/attachment.bin>


More information about the llvm-commits mailing list