[llvm-commits] [llvm] r171258 - /llvm/trunk/docs/TestingGuide.rst

Rafael EspĂ­ndola rafael.espindola at gmail.com
Sun Dec 30 12:13:07 PST 2012


Thanks!

On 30 December 2012 09:51, Dmitri Gribenko <gribozavr at gmail.com> wrote:
> Author: gribozavr
> Date: Sun Dec 30 08:51:03 2012
> New Revision: 171258
>
> URL: http://llvm.org/viewvc/llvm-project?rev=171258&view=rev
> Log:
> Documentation: add a section to prevent spurious test failures like the one
> fixed in r171243.
>
> Modified:
>     llvm/trunk/docs/TestingGuide.rst
>
> Modified: llvm/trunk/docs/TestingGuide.rst
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TestingGuide.rst?rev=171258&r1=171257&r2=171258&view=diff
> ==============================================================================
> --- llvm/trunk/docs/TestingGuide.rst (original)
> +++ llvm/trunk/docs/TestingGuide.rst Sun Dec 30 08:51:03 2012
> @@ -262,6 +262,43 @@
>  :doc:`FileCheck tool <CommandGuide/FileCheck>`. The usage of ``grep`` in RUN
>  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
>  ---------------------
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list