From a25741a824c041b26ac8923cf8ce74476138c23a Mon Sep 17 00:00:00 2001 From: Leandro Nunes Date: Wed, 20 Dec 2017 10:25:45 +0000 Subject: [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 --- lnt/server/db/testsuitedb.py | 11 ++++++++--- tests/lnttool/submit.shtest | 5 +++++ tests/server/db/CreateV4TestSuiteInstance.py | 2 +- tests/server/ui/change_processing.py | 4 ++-- 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) -- cgit v1.2.3