vsavchenko created this revision.
Herald added subscribers: cfe-commits, ASDenysPetrov, Charusso, dkrupp, 
donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, 
xazax.hun.
Herald added a project: clang.

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


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D81593

Files:
  clang/utils/analyzer/SATest.py
  clang/utils/analyzer/entrypoint.py

Index: clang/utils/analyzer/entrypoint.py
===================================================================
--- clang/utils/analyzer/entrypoint.py
+++ clang/utils/analyzer/entrypoint.py
@@ -1,9 +1,10 @@
 import argparse
 import os
+import sys
 
 from typing import List, Tuple
 
-from subprocess import check_call
+from subprocess import call, check_call, CalledProcessError
 
 
 def main():
@@ -12,7 +13,7 @@
         build_llvm()
     if settings.build_llvm_only:
         return
-    test(rest)
+    sys.exit(test(rest))
 
 
 def parse_arguments() -> Tuple[argparse.Namespace, List[str]]:
@@ -24,8 +25,12 @@
 
 def build_llvm() -> None:
     os.chdir('/build')
-    cmake()
-    ninja()
+    try:
+        cmake()
+        ninja()
+    except CalledProcessError:
+        print("Build failed!")
+        sys.exit(1)
 
 
 CMAKE_COMMAND = "cmake -G Ninja -DCMAKE_BUILD_TYPE=Release " \
@@ -43,9 +48,9 @@
     check_call("ninja install", shell=True)
 
 
-def test(args: List[str]):
+def test(args: List[str]) -> int:
     os.chdir("/projects")
-    check_call("/scripts/SATest.py " + " ".join(args), shell=True)
+    return call("/scripts/SATest.py " + " ".join(args), shell=True)
 
 
 if __name__ == '__main__':
Index: clang/utils/analyzer/SATest.py
===================================================================
--- clang/utils/analyzer/SATest.py
+++ clang/utils/analyzer/SATest.py
@@ -11,7 +11,7 @@
 import sys
 import os
 
-from subprocess import check_call
+from subprocess import call
 
 SCRIPTS_DIR = os.path.dirname(os.path.realpath(__file__))
 PROJECTS_DIR = os.path.join(SCRIPTS_DIR, "projects")
@@ -101,22 +101,25 @@
 
 
 def docker_build_image():
-    check_call("docker build --tag satest-image {}".format(SCRIPTS_DIR),
-               shell=True)
+    sys.exit(call("docker build --tag satest-image {}".format(SCRIPTS_DIR),
+                  shell=True))
 
 
 def docker_run(args):
-    check_call("docker run --rm --name satest "
-               "-v {llvm}:/llvm-project "
-               "-v {build}:/build "
-               "-v {clang}:/analyzer "
-               "-v {scripts}:/scripts "
-               "-v {projects}:/projects "
-               "satest-image:latest {args}"
-               .format(llvm=args.llvm_project_dir, build=args.build_dir,
-                       clang=args.clang_dir, scripts=SCRIPTS_DIR,
-                       projects=PROJECTS_DIR, args=' '.join(args.rest)),
-               shell=True)
+    sys.exit(call("docker run --rm --name satest "
+                  "-v {llvm}:/llvm-project "
+                  "-v {build}:/build "
+                  "-v {clang}:/analyzer "
+                  "-v {scripts}:/scripts "
+                  "-v {projects}:/projects "
+                  "satest-image:latest {args}"
+                  .format(llvm=args.llvm_project_dir,
+                          build=args.build_dir,
+                          clang=args.clang_dir,
+                          scripts=SCRIPTS_DIR,
+                          projects=PROJECTS_DIR,
+                          args=' '.join(args.rest)),
+                  shell=True))
 
 
 def main():
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D81593: [analyze... Valeriy Savchenko via Phabricator via cfe-commits

Reply via email to