[LNT] r317658 - lnttool: Fix lnt submit error handling

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 7 17:51:39 PST 2017


Author: matze
Date: Tue Nov  7 17:51:39 2017
New Revision: 317658

URL: http://llvm.org/viewvc/llvm-project?rev=317658&view=rev
Log:
lnttool: Fix lnt submit error handling

- Show message instead of backtrace for bad URLs
- Exit with returncode 1 on submission failures

Added:
    lnt/trunk/tests/lnttool/submit_badurl.shtest
Modified:
    lnt/trunk/lnt/lnttool/main.py
    lnt/trunk/lnt/util/ServerUtil.py
    lnt/trunk/tests/lnttool/submit.shtest

Modified: lnt/trunk/lnt/lnttool/main.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/lnttool/main.py?rev=317658&r1=317657&r2=317658&view=diff
==============================================================================
--- lnt/trunk/lnt/lnttool/main.py (original)
+++ lnt/trunk/lnt/lnttool/main.py Tue Nov  7 17:51:39 2017
@@ -187,14 +187,16 @@ def action_submit(url, files, select_mac
     from lnt.util import ServerUtil
     import lnt.util.ImportData
 
-    files = ServerUtil.submitFiles(url, files, verbose,
+    results = ServerUtil.submitFiles(url, files, verbose,
                                    select_machine=select_machine,
                                    merge_run=merge)
-    for submitted_file in files:
+    for submitted_file in results:
         if verbose:
             lnt.util.ImportData.print_report_result(
                 submitted_file, sys.stdout, sys.stderr, True)
         _print_result_url(submitted_file, verbose)
+    if len(files) != len(results):
+        sys.exit(1)
 
 
 @click.command("update")

Modified: lnt/trunk/lnt/util/ServerUtil.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/util/ServerUtil.py?rev=317658&r1=317657&r2=317658&view=diff
==============================================================================
--- lnt/trunk/lnt/util/ServerUtil.py (original)
+++ lnt/trunk/lnt/util/ServerUtil.py Tue Nov  7 17:51:39 2017
@@ -46,6 +46,10 @@ def submitFileToServer(url, file, select
     except urllib2.HTTPError as e:
         _show_json_error(e.read())
         return
+    except urllib2.URLError as e:
+        sys.stderr.write("error: could not resolve '%s': %s\n" %
+                         (url, e))
+        return
     result_data = response.read()
 
     # The result is expected to be a JSON object.

Modified: lnt/trunk/tests/lnttool/submit.shtest
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/tests/lnttool/submit.shtest?rev=317658&r1=317657&r2=317658&view=diff
==============================================================================
--- lnt/trunk/tests/lnttool/submit.shtest (original)
+++ lnt/trunk/tests/lnttool/submit.shtest Tue Nov  7 17:51:39 2017
@@ -1,3 +1,4 @@
+#!/bin/bash
 # RUN: rm -rf %t.instance
 # RUN: rm -rf %t.tmp && mkdir -p %t.tmp
 # RUN: python %{shared_inputs}/create_temp_instance.py \
@@ -5,6 +6,8 @@
 # RUN: %{shared_inputs}/server_wrapper.sh --fail-on-error %t.instance 9091 \
 # RUN:    /bin/sh %s %t.tmp %S/Inputs %{shared_inputs} %{src_root}
 
+set -eux
+
 OUTPUT_DIR="$1"
 INPUTS="$2"
 SHARED_INPUTS="$3"
@@ -86,20 +89,20 @@ lnt submit "http://localhost:9091/db_def
 
 # Check some error handling/reporting
 rm -f "${OUTPUT_DIR}/submit_errors.txt"
-lnt submit "http://localhost:9091/db_default/v4/badsuite/submitRun" "${INPUTS}/compile_submission.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
+not lnt submit "http://localhost:9091/db_default/v4/badsuite/submitRun" "${INPUTS}/compile_submission.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
 # RUN: FileCheck %s --check-prefix=CHECK-ERRORS < %t.tmp/submit_errors.txt
 # CHECK-ERRORS: error: lnt server: Unknown test suite 'badsuite'!
-lnt submit "http://localhost:9091/db_baddb/v4/compile/submitRun" "${INPUTS}/compile_submission.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
+not lnt submit "http://localhost:9091/db_baddb/v4/compile/submitRun" "${INPUTS}/compile_submission.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
 # CHECK-ERRORS: error: lnt server: The page you are looking for does not exist.
-lnt submit "http://localhost:9091/db_default/v4/compile/submitRun" "${INPUTS}/invalid_submission0.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
+not lnt submit "http://localhost:9091/db_default/v4/compile/submitRun" "${INPUTS}/invalid_submission0.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
 # CHECK-ERRORS: error: lnt server: could not parse input format
 # ...
 # CHECK-ERRORS: SystemExit: unable to guess input format for
-lnt submit "http://localhost:9091/db_default/v4/compile/submitRun" "${INPUTS}/invalid_submission1.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
+not lnt submit "http://localhost:9091/db_default/v4/compile/submitRun" "${INPUTS}/invalid_submission1.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
 # CHECK-ERRORS: error: lnt server: import failure: machine
 # ...
 # CHECK-ERRORS: KeyError: 'machine'
-lnt submit "http://localhost:9091/db_default/v4/compile/submitRun" "${INPUTS}/compile_submission_machine_diff_reject.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
+not lnt submit "http://localhost:9091/db_default/v4/compile/submitRun" "${INPUTS}/compile_submission_machine_diff_reject.json" >> "${OUTPUT_DIR}/submit_errors.txt" 2>&1
 # CHECK-ERRORS: error: lnt server: import failure: 'hw.activecpu' on machine 'some-compile-suite-machine' changed.
 # ...
 # CHECK-ERRORS: MachineInfoChanged: 'hw.activecpu' on machine 'some-compile-suite-machine' changed.

Added: lnt/trunk/tests/lnttool/submit_badurl.shtest
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/tests/lnttool/submit_badurl.shtest?rev=317658&view=auto
==============================================================================
--- lnt/trunk/tests/lnttool/submit_badurl.shtest (added)
+++ lnt/trunk/tests/lnttool/submit_badurl.shtest Tue Nov  7 17:51:39 2017
@@ -0,0 +1,2 @@
+# RUN: not lnt submit "http://doesnotexist.invalid/db_default/submitRun" %{shared_inputs}/sample-report.json 2>&1 | FileCheck %s
+# CHECK: error: could not resolve 'http://doesnotexist.invalid/db_default/submitRun':




More information about the llvm-commits mailing list