aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeandro Nunes <Leandro.Nunes@arm.com>2017-12-20 10:25:45 +0000
committerLeandro Nunes <Leandro.Nunes@arm.com>2017-12-20 10:25:45 +0000
commita25741a824c041b26ac8923cf8ce74476138c23a (patch)
tree7b576d125f0ae841f067b8995b6bbaee501a0f13
parent176fb88df7afd8a872f8f0effdcaeebd8b28da3f (diff)
[LNT] Provide a way to reliably point to results page
Makes the database ID to be reused when submitting data for an existing order with "--merge replace". https://reviews.llvm.org/D41115 git-svn-id: https://llvm.org/svn/llvm-project/lnt/trunk@321160 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lnt/server/db/testsuitedb.py11
-rw-r--r--tests/lnttool/submit.shtest5
-rw-r--r--tests/server/db/CreateV4TestSuiteInstance.py2
-rw-r--r--tests/server/ui/change_processing.py4
4 files changed, 16 insertions, 6 deletions
diff --git a/lnt/server/db/testsuitedb.py b/lnt/server/db/testsuitedb.py
index dd18096..0031dca 100644
--- a/lnt/server/db/testsuitedb.py
+++ b/lnt/server/db/testsuitedb.py
@@ -363,8 +363,8 @@ class TestSuiteDB(object):
class_dict[iname] = item.column = make_run_column(iname)
- def __init__(self, machine, order, start_time, end_time):
- self.id = None
+ def __init__(self, new_id, machine, order, start_time, end_time):
+ self.id = new_id
self.machine = machine
self.order = order
self.start_time = start_time
@@ -962,6 +962,7 @@ class TestSuiteDB(object):
# Find the order record.
order = self._getOrCreateOrder(session, run_parameters)
+ new_id = None
if merge != 'append':
existing_runs = session.query(self.Run) \
@@ -977,6 +978,10 @@ class TestSuiteDB(object):
logger.info("Duplicate submission for order %r: "
"deleting previous run %r" %
(order, previous_run))
+
+ # Keep the latest ID so the URL is still valid on replace
+ new_id = previous_run.id
+
session.delete(previous_run)
else:
raise ValueError('Invalid Run mergeStrategy %r' % merge)
@@ -996,7 +1001,7 @@ class TestSuiteDB(object):
"%Y-%m-%d %H:%M:%S")
run_parameters.pop('end_time')
- run = self.Run(machine, order, start_time, end_time)
+ run = self.Run(new_id, machine, order, start_time, end_time)
# First, extract all of the specified run fields.
for item in self.run_fields:
diff --git a/tests/lnttool/submit.shtest b/tests/lnttool/submit.shtest
index b919e7a..2c2fe0e 100644
--- a/tests/lnttool/submit.shtest
+++ b/tests/lnttool/submit.shtest
@@ -36,6 +36,11 @@ lnt submit "http://localhost:9091/db_default/submitRun" --commit=1 "${SHARED_INP
# RUN: FileCheck %s --check-prefix=CHECK-SUBMIT0 < %t.tmp/submit0.txt
# CHECK-SUBMIT0: http://localhost:9091/db_default/v4/nts/4
+# Submit sample-report1.json again and check it keeps the same URL
+lnt submit "http://localhost:9091/db_default/submitRun" --commit=1 "${SHARED_INPUTS}/sample-report1.json" > "${OUTPUT_DIR}/submit0-resubmit.txt"
+# RUN: FileCheck %s --check-prefix=CHECK-RESUBMIT0 < %t.tmp/submit0-resubmit.txt
+# CHECK-RESUBMIT0: http://localhost:9091/db_default/v4/nts/4
+
lnt submit "http://localhost:9091/db_default/submitRun" --commit 1 "${SHARED_INPUTS}/sample-report2.json" > "${OUTPUT_DIR}/submit1.txt"
# RUN: FileCheck %s --check-prefix=CHECK-SUBMIT1 < %t.tmp/submit1.txt
# CHECK-SUBMIT1: http://localhost:9091/db_default/v4/nts/5
diff --git a/tests/server/db/CreateV4TestSuiteInstance.py b/tests/server/db/CreateV4TestSuiteInstance.py
index 895c358..ba6bbf4 100644
--- a/tests/server/db/CreateV4TestSuiteInstance.py
+++ b/tests/server/db/CreateV4TestSuiteInstance.py
@@ -36,7 +36,7 @@ order3 = ts_db.Order()
order3.llvm_project_revision = "1236"
-run = ts_db.Run(machine, order, start_time, end_time)
+run = ts_db.Run(None, machine, order, start_time, end_time)
test = ts_db.Test("test-a")
sample = ts_db.Sample(run, test, compile_time=1.0, score=4.2, code_size=100)
diff --git a/tests/server/ui/change_processing.py b/tests/server/ui/change_processing.py
index 692c4b3..9b50115 100644
--- a/tests/server/ui/change_processing.py
+++ b/tests/server/ui/change_processing.py
@@ -60,11 +60,11 @@ class ChangeProcessingTests(unittest.TestCase):
test2 = self.test2 = ts_db.Test("bar")
session.add(test2)
- run = self.run = ts_db.Run(machine, order1235, start_time,
+ run = self.run = ts_db.Run(None, machine, order1235, start_time,
end_time)
session.add(run)
- run2 = self.run2 = ts_db.Run(machine2, order1235, start_time,
+ run2 = self.run2 = ts_db.Run(None, machine2, order1235, start_time,
end_time)
session.add(run2)