mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Documentation: add a section to prevent spurious test failures like the one
fixed in r171243. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171258 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
94e94b3506
commit
0d80c9c8c7
@ -262,6 +262,43 @@ recommended way to examine output to figure out if the test passes it using the
|
|||||||
:doc:`FileCheck tool <CommandGuide/FileCheck>`. The usage of ``grep`` in RUN
|
:doc:`FileCheck tool <CommandGuide/FileCheck>`. The usage of ``grep`` in RUN
|
||||||
lines is discouraged.
|
lines is discouraged.
|
||||||
|
|
||||||
|
Fragile tests
|
||||||
|
-------------
|
||||||
|
|
||||||
|
It is easy to write a fragile test that would fail spuriously if the tool being
|
||||||
|
tested outputs a full path to the input file. For example, :program:`opt` by
|
||||||
|
default outputs a ``ModuleID``:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ cat example.ll
|
||||||
|
define i32 @main() nounwind {
|
||||||
|
ret i32 0
|
||||||
|
}
|
||||||
|
|
||||||
|
$ opt -S /path/to/example.ll
|
||||||
|
; ModuleID = '/path/to/example.ll'
|
||||||
|
|
||||||
|
define i32 @main() nounwind {
|
||||||
|
ret i32 0
|
||||||
|
}
|
||||||
|
|
||||||
|
``ModuleID`` can unexpetedly match against ``CHECK`` lines. For example:
|
||||||
|
|
||||||
|
.. code-block:: llvm
|
||||||
|
|
||||||
|
; RUN: opt -S %s | FileCheck
|
||||||
|
|
||||||
|
define i32 @main() nounwind {
|
||||||
|
; CHECK-NOT: load
|
||||||
|
ret i32 0
|
||||||
|
}
|
||||||
|
|
||||||
|
This test will fail if placed into a ``download`` directory.
|
||||||
|
|
||||||
|
To make your tests robust, always use ``opt ... < %s`` in the RUN line.
|
||||||
|
:program:`opt` does not output a ``ModuleID`` when input comes from stdin.
|
||||||
|
|
||||||
The FileCheck utility
|
The FileCheck utility
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user