[llvm] r315697 - lit.py: Add new %{shared_output(LABEL)} substitution

Galina Kistanova via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 13 13:13:37 PDT 2017


Hello Jordan,

This commit broke tests on few our builders:

http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/5440

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast

. . .
Failing Tests (1):
    lit :: shared-output.py

Please have a look?

Thanks

Galina

On Fri, Oct 13, 2017 at 9:12 AM, Jordan Rose via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: jrose
> Date: Fri Oct 13 09:12:23 2017
> New Revision: 315697
>
> URL: http://llvm.org/viewvc/llvm-project?rev=315697&view=rev
> Log:
> lit.py: Add new %{shared_output(LABEL)} substitution
>
> This refers to a temporary path that can be shared across all tests,
> identified by a particular label. This can be used for things like
> caches.
>
> At the moment, the character set for the LABEL is limited to C
> identifier characters, plus '-', '+', '=', and '.'. This is the same
> set of characters currently allowed in REQUIRES clause identifiers.
>
> Added:
>     llvm/trunk/utils/lit/tests/Inputs/shared-output/
>     llvm/trunk/utils/lit/tests/Inputs/shared-output/lit.cfg
>     llvm/trunk/utils/lit/tests/Inputs/shared-output/primary.txt
>     llvm/trunk/utils/lit/tests/Inputs/shared-output/secondary.txt
>     llvm/trunk/utils/lit/tests/Inputs/shared-output/sub/
>     llvm/trunk/utils/lit/tests/Inputs/shared-output/sub/sub.txt
>     llvm/trunk/utils/lit/tests/shared-output.py
> Modified:
>     llvm/trunk/docs/CommandGuide/lit.rst
>     llvm/trunk/docs/TestingGuide.rst
>     llvm/trunk/utils/lit/lit/TestRunner.py
>     llvm/trunk/utils/lit/lit/run.py
>
> Modified: llvm/trunk/docs/CommandGuide/lit.rst
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/
> CommandGuide/lit.rst?rev=315697&r1=315696&r2=315697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/docs/CommandGuide/lit.rst (original)
> +++ llvm/trunk/docs/CommandGuide/lit.rst Fri Oct 13 09:12:23 2017
> @@ -395,17 +395,18 @@ PRE-DEFINED SUBSTITUTIONS
>  :program:`lit` provides various patterns that can be used with the RUN
> command.
>  These are defined in TestRunner.py. The base set of substitutions are:
>
> - ========== ==============
> -  Macro      Substitution
> - ========== ==============
> - %s         source path (path to the file currently being run)
> - %S         source dir (directory of the file currently being run)
> - %p         same as %S
> - %{pathsep} path separator
> - %t         temporary file name unique to the test
> - %T         temporary directory unique to the test
> - %%         %
> - ========== ==============
> + ======================= ==============
> +  Macro                   Substitution
> + ======================= ==============
> + %s                      source path (path to the file currently being
> run)
> + %S                      source dir (directory of the file currently
> being run)
> + %p                      same as %S
> + %{pathsep}              path separator
> + %t                      temporary file name unique to the test
> + %T                      temporary directory unique to the test
> + %{shared_output(LABEL)} temporary file name, identified by "LABEL",
> shared across all tests
> + %%                      %
> + ======================= ==============
>
>  Other substitutions are provided that are variations on this base set and
>  further substitution patterns can be defined by each test module. See the
>
> Modified: llvm/trunk/docs/TestingGuide.rst
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/
> TestingGuide.rst?rev=315697&r1=315696&r2=315697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/docs/TestingGuide.rst (original)
> +++ llvm/trunk/docs/TestingGuide.rst Fri Oct 13 09:12:23 2017
> @@ -464,6 +464,12 @@ RUN lines:
>
>     Example: ``/home/user/llvm.build/test/MC/ELF/Output``
>
> +``%{shared_output(LABEL)}``
> +   File path to a temporary file name shared across all tests, identified
> by
> +   LABEL. This is useful as a cache for generated resources.
> +
> +   Example: ``/home/user/llvm.build/test/Output/Shared/LABEL.tmp``
> +
>  ``%{pathsep}``
>
>     Expands to the path separator, i.e. ``:`` (or ``;`` on Windows).
>
> Modified: llvm/trunk/utils/lit/lit/TestRunner.py
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> lit/TestRunner.py?rev=315697&r1=315696&r2=315697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/lit/TestRunner.py (original)
> +++ llvm/trunk/utils/lit/lit/TestRunner.py Fri Oct 13 09:12:23 2017
> @@ -829,6 +829,9 @@ def getDefaultSubstitutions(test, tmpDir
>      sourcepath = test.getSourcePath()
>      sourcedir = os.path.dirname(sourcepath)
>
> +    sharedOutputDir = os.path.join(test.suite.exec_root, 'Output',
> 'Shared')
> +    sharedOutputDir += os.path.sep
> +
>      # Normalize slashes, if requested.
>      if normalize_slashes:
>          sourcepath = sourcepath.replace('\\', '/')
> @@ -849,6 +852,8 @@ def getDefaultSubstitutions(test, tmpDir
>                            ('%t', tmpName),
>                            ('%basename_t', baseName),
>                            ('%T', tmpDir),
> +                          ('%{shared_output\(([-+=._a-zA-Z0-9]+)\)}',
> +                           '%s\\1.tmp' % (sharedOutputDir,)),
>                            ('#_MARKER_#', '%')])
>
>      # "%/[STpst]" should be normalized.
>
> Modified: llvm/trunk/utils/lit/lit/run.py
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> lit/run.py?rev=315697&r1=315696&r2=315697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/lit/run.py (original)
> +++ llvm/trunk/utils/lit/lit/run.py Fri Oct 13 09:12:23 2017
> @@ -1,4 +1,5 @@
>  import os
> +import shutil
>  import sys
>  import threading
>  import time
> @@ -136,6 +137,13 @@ class Run(object):
>                  return True
>              win32api.SetConsoleCtrlHandler(console_ctrl_handler, True)
>
> +        # Make fresh shared output directories.
> +        suites = set(test.suite for test in self.tests)
> +        for suite in suites:
> +            shared_dir = os.path.join(suite.exec_root, 'Output', 'Shared')
> +            shutil.rmtree(shared_dir, ignore_errors=True)
> +            lit.util.mkdir_p(shared_dir)
> +
>          # Save the display object on the runner so that we can update it
> from
>          # our task completion callback.
>          self.display = display
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shared-output/lit.cfg
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> tests/Inputs/shared-output/lit.cfg?rev=315697&view=auto
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/tests/Inputs/shared-output/lit.cfg (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shared-output/lit.cfg Fri Oct 13
> 09:12:23 2017
> @@ -0,0 +1,5 @@
> +import lit.formats
> +config.name = 'shared-output'
> +config.suffixes = ['.txt']
> +config.test_format = lit.formats.ShTest()
> +config.test_source_root = os.path.dirname(os.path.realpath(__file__))
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shared-output/primary.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> tests/Inputs/shared-output/primary.txt?rev=315697&view=auto
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/tests/Inputs/shared-output/primary.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shared-output/primary.txt Fri Oct
> 13 09:12:23 2017
> @@ -0,0 +1,2 @@
> +RUN: echo "primary" >> %{shared_output(SHARED)}
> +RUN: echo "other" >> %{shared_output(OTHER)}
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shared-output/secondary.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> tests/Inputs/shared-output/secondary.txt?rev=315697&view=auto
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/tests/Inputs/shared-output/secondary.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shared-output/secondary.txt Fri Oct
> 13 09:12:23 2017
> @@ -0,0 +1 @@
> +RUN: echo "secondary" >> %{shared_output(SHARED)}
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shared-output/sub/sub.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> tests/Inputs/shared-output/sub/sub.txt?rev=315697&view=auto
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/tests/Inputs/shared-output/sub/sub.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shared-output/sub/sub.txt Fri Oct
> 13 09:12:23 2017
> @@ -0,0 +1 @@
> +RUN: echo "sub" >> %{shared_output(SHARED)}
>
> Added: llvm/trunk/utils/lit/tests/shared-output.py
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/
> tests/shared-output.py?rev=315697&view=auto
> ============================================================
> ==================
> --- llvm/trunk/utils/lit/tests/shared-output.py (added)
> +++ llvm/trunk/utils/lit/tests/shared-output.py Fri Oct 13 09:12:23 2017
> @@ -0,0 +1,13 @@
> +# RUN: rm -rf %t && mkdir -p %t
> +# RUN: echo 'lit_config.load_config(config, "%{inputs}/shared-output/lit.cfg")'
> > %t/lit.site.cfg
> +# RUN: %{lit} %t
> +# RUN: FileCheck %s < %t/Output/Shared/SHARED.tmp
> +# RUN: FileCheck -check-prefix=NEGATIVE %s < %t/Output/Shared/SHARED.tmp
> +# RUN: FileCheck -check-prefix=OTHER %s <  %t/Output/Shared/OTHER.tmp
> +
> +# CHECK-DAG: primary
> +# CHECK-DAG: secondary
> +# CHECK-DAG: sub
> +
> +# NEGATIVE-NOT: other
> +# OTHER: other
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171013/20652c83/attachment.html>


More information about the llvm-commits mailing list