[all-commits] [llvm/llvm-project] e010d1: [analyzer] SATest: Add initial docker infrastructure

Valeriy Savchenko via All-commits all-commits at lists.llvm.org
Thu Jun 25 02:28:56 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e010d1432fa15cff7a6d369f5e372d995e2eba5d
      https://github.com/llvm/llvm-project/commit/e010d1432fa15cff7a6d369f5e372d995e2eba5d
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    A clang/utils/analyzer/Dockerfile
    A clang/utils/analyzer/entrypoint.py

  Log Message:
  -----------
  [analyzer] SATest: Add initial docker infrastructure

Summary:
Static analysis is very sensitive to environment.
OS and libraries installed can affect the results.  This fact makes
it extremely hard to have a regression testing system that will
produce stable results.

For this very reason, this commit introduces a new dockerized testing
environment, so that every analyzer developer can check their changes
against previous analysis results.

Differential Revision: https://reviews.llvm.org/D81571


  Commit: 3770f5c9b98c5bae2f099f5c24e05eb4a0cca1d0
      https://github.com/llvm/llvm-project/commit/3770f5c9b98c5bae2f099f5c24e05eb4a0cca1d0
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/SATest.py

  Log Message:
  -----------
  [analyzer] SATest: Add convenience 'docker' command

Summary:
It provides a simpler interface for testing within docker.
This way the user is not required to no how to use `docker run` and
its options.

Differential Revision: https://reviews.llvm.org/D81572


  Commit: 8dc2802773ce3910f21689240c53839f1c7de0ad
      https://github.com/llvm/llvm-project/commit/8dc2802773ce3910f21689240c53839f1c7de0ad
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M .gitignore
    A clang/utils/analyzer/.dockerignore
    A clang/utils/analyzer/projects/box2d/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/box2d/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/cxxopts/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/cxxopts/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/libsoundio/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/libsoundio/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/oatpp/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/oatpp/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/projects.json
    A clang/utils/analyzer/projects/symengine/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/symengine/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/termbox/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/termbox/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/tinyexpr/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/tinyexpr/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/tinyspline/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/tinyspline/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/tinyvm/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/tinyvm/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/zstd/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/zstd/run_static_analyzer.cmd

  Log Message:
  -----------
  [analyzer] SATest: Add a set of initial projects for testing

Differential Revision: https://reviews.llvm.org/D81592


  Commit: e30706af2e145bbed81fca19c951695b2d598b77
      https://github.com/llvm/llvm-project/commit/e30706af2e145bbed81fca19c951695b2d598b77
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/SATest.py
    M clang/utils/analyzer/entrypoint.py

  Log Message:
  -----------
  [analyzer] SATest: Make docker interfaces transparent

Summary:
Forward results of every command executed in docker.  The actual commands
and their error codes are more informative than python stacktraces.

Differential Revision: https://reviews.llvm.org/D81593


  Commit: 94f0eb83a2e573f27d4d3e60ea1477a47b8847b9
      https://github.com/llvm/llvm-project/commit/94f0eb83a2e573f27d4d3e60ea1477a47b8847b9
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/SATest.py

  Log Message:
  -----------
  [analyzer] SATest: Make main script Python2 compatible

Summary:
If the user has only python2 installed and wants to use
the dockerized testing system, it is now totally OK.

Differential Revision: https://reviews.llvm.org/D81595


  Commit: 061b5bf914c6395fbd1b52aad7542289b8adb072
      https://github.com/llvm/llvm-project/commit/061b5bf914c6395fbd1b52aad7542289b8adb072
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/entrypoint.py

  Log Message:
  -----------
  [analyzer] SATest: Do not re-run CMake in Docker if not needed

Differential Revision: https://reviews.llvm.org/D81596


  Commit: 11f287826fb38be2a089d88b55c6b681d128ed02
      https://github.com/llvm/llvm-project/commit/11f287826fb38be2a089d88b55c6b681d128ed02
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/SATest.py
    M clang/utils/analyzer/entrypoint.py

  Log Message:
  -----------
  [analyzer] SATest: Add an easy option to connect to docker for debugging

Summary:
Docker on its own has a pretty convenient way to run shell.
This method, however, requires target container to be currently running,
which is not a usual scenario for the test system.  For this purpose,
it is better to have a simple way to run the container, shell it, and
clean up at the end of it all.  New option `--shell` does exactly this.

Differential Revision: https://reviews.llvm.org/D81598


  Commit: 6f55355c16b60dfb325fb92015444310e07c0b75
      https://github.com/llvm/llvm-project/commit/6f55355c16b60dfb325fb92015444310e07c0b75
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/Dockerfile
    M clang/utils/analyzer/SATestBuild.py
    A clang/utils/analyzer/projects/drogon/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/drogon/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/duckdb/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/duckdb/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/fmt/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/fmt/run_static_analyzer.cmd
    M clang/utils/analyzer/projects/projects.json
    A clang/utils/analyzer/projects/re2/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/re2/run_static_analyzer.cmd
    A clang/utils/analyzer/projects/simbody/cleanup_run_static_analyzer.sh
    A clang/utils/analyzer/projects/simbody/run_static_analyzer.cmd

  Log Message:
  -----------
  [analyzer] SATest: Add 5 more projects for testing

Differential Revision: https://reviews.llvm.org/D81599


  Commit: 7a84ab9f9bdbc14d8d068f680a511cd26471d906
      https://github.com/llvm/llvm-project/commit/7a84ab9f9bdbc14d8d068f680a511cd26471d906
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/Dockerfile

  Log Message:
  -----------
  [analyzer] SATest: Fix package versions for test dependencies

Summary:
Another possible difference between various users of the
testing system might be a change in dependencies installed on the
container.  This commit tries to prevent any problem related to
different versions of the libraries/headers used and fixes them to
currently installed versions.

Differential Revision: https://reviews.llvm.org/D81600


  Commit: 495fd64041909d07fe9ba57cbf4274a9db1a9ea3
      https://github.com/llvm/llvm-project/commit/495fd64041909d07fe9ba57cbf4274a9db1a9ea3
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2020-06-25 (Thu, 25 Jun 2020)

  Changed paths:
    M clang/utils/analyzer/SATestBuild.py

  Log Message:
  -----------
  [analyzer] SATest: Use logger in single-threaded mode as well

Summary:
It generalizes the way the output looks across any -jN.
Additionally it solves the buffering problems.

Differential Revision: https://reviews.llvm.org/D81601


Compare: https://github.com/llvm/llvm-project/compare/067c660ac99b...495fd6404190


More information about the All-commits mailing list