Update CTS upload scripts to support v2 pipeline.
For unibuild model, model.board and for non unibuild ones board.board
BUG=b:130679085
TEST=./upload_cts.py <build_id> <results_dir_path>
Change-Id: Icfae143278a5a987d9c8422664e35976cb4db4ec
Reviewed-on: https://chromium-review.googlesource.com/1573198
Commit-Ready: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Nita Nair <nnita@chromium.org>
Tested-by: Rohit Makasana <rohitbm@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
diff --git a/provingground/cts/lib/upload_utils.py b/provingground/cts/lib/upload_utils.py
index 01e5835..1010297 100755
--- a/provingground/cts/lib/upload_utils.py
+++ b/provingground/cts/lib/upload_utils.py
@@ -56,14 +56,14 @@
def PrintObsoleteFolderCount(self):
"""Prints obsolete file count in case of build id mismatch."""
- if not self.build_mismatch_file_count == 0:
+ if self.build_mismatch_file_count != 0:
err_msg = ('Build ID Mismatch!Pushed {0} invalid files to BuildID'
' Mismatch Folder'.format(self.build_mismatch_file_count))
print(self.BOLD + self.C_RED + err_msg +self.BOLD+ self.C_END)
def PrintUntestedFolderCount(self):
"""Prints untested file count if untested tests exist."""
- if not self.untested_file_count == 0:
+ if self.untested_file_count != 0:
err_msg = ('Untested Test(s) Detected!Pushed {0} files to Untested'
' Tests Folder'.format(self.untested_file_count))
print(self.BOLD + self.C_RED + err_msg +self.BOLD+ self.C_END)
@@ -127,28 +127,28 @@
: relm : R62-9901.20.0 : 7.1_r9
Args:
- item: Information list to be printed to terminal.
+ item: Information list to be printed to terminal.
"""
print(('{:^%s}'%self.SPACE_COUNT_CTSV_BOARD_NAME).format(item[1]),
- ('{:>%s}'%self.SPACE_COUNT_CTSV_BUILD_VERSION).format(item[2]),
- ('{:>%s}'%self.SPACE_COUNT_VERIFIER_VERSION).format(item[3]))
+ ('{:>%s}'%self.SPACE_COUNT_CTSV_BUILD_VERSION).format(item[3]),
+ ('{:>%s}'%self.SPACE_COUNT_VERIFIER_VERSION).format(item[4]))
def SegregateCtsDataToPrint(self, item):
"""Segregates passed and failed results into two separate lists.
Args:
- item: Board information.
+ item: Board information.
"""
rerun = 0
- if ((item[7] == self.TEST_PASS and
- item[6] != self.TEST_FAIL) or
- item[7] == self.TEST_PASS_X86_64):
+ if ((item[8] == self.TEST_PASS and
+ item[7] != self.TEST_FAIL) or
+ item[8] == self.TEST_PASS_X86_64):
self.passed_list.append(item)
for i in range(len(self.passed_list)):
if(self.passed_list[i][1] == item[1] and
- self.passed_list[i][3] == item[3] and
- self.passed_list[i][5] == item[5]):
+ self.passed_list[i][4] == item[4] and
+ self.passed_list[i][6] == item[6]):
rerun = rerun + 1
if rerun > 1:
break
@@ -174,12 +174,12 @@
print(('{:<%i}'%self.SPACE_COUNT_ROW).format(self.row_count),
('{:>%s}'%self.SPACE_COUNT_TIMESTAMP).format(item[0]),
('{:^%s}'%self.SPACE_COUNT_CTS_BOARD_NAME).format(item[1]),
- ('{:^%s}'%self.SPACE_COUNT_CTS_BUILD_VERSION).format(item[2]),
- ('{:>%s}'%self.SPACE_COUNT_CTS_BOARD_ABI).format(item[3]),
- ('{:^%s}'%self.SPACE_COUNT_PACKAGE_NAME).format(item[4]),
- ('{:<%s}'%self.SPACE_COUNT_TEST_NAME).format(item[5]),
- ('{:<%s}'%self.SPACE_COUNT_FAILED_TESTS).format(item[6]),
- ('{:<%s}'%self.SPACE_COUNT_PASSED_TESTS).format(item[7]))
+ ('{:^%s}'%self.SPACE_COUNT_CTS_BUILD_VERSION).format(item[3]),
+ ('{:>%s}'%self.SPACE_COUNT_CTS_BOARD_ABI).format(item[4]),
+ ('{:^%s}'%self.SPACE_COUNT_PACKAGE_NAME).format(item[5]),
+ ('{:<%s}'%self.SPACE_COUNT_TEST_NAME).format(item[6]),
+ ('{:<%s}'%self.SPACE_COUNT_FAILED_TESTS).format(item[7]),
+ ('{:<%s}'%self.SPACE_COUNT_PASSED_TESTS).format(item[8]))
def GetXmlTagNamesCtsv(self):
"""Get xml tag names.
@@ -191,12 +191,14 @@
RESULT_XML_TAG = 'Result'
SUITE_VERSION_XML_TAG = 'suite_version'
BUILD_BOARD_XML_TAG = 'build_board'
+ BUILD_MODEL_XML_TAG = 'build_product'
BUILD_ID_N_XML_TAG = 'build_id'
TEST_XML_TAG = 'Test'
return [BUILD_N_XML_TAG,
RESULT_XML_TAG,
SUITE_VERSION_XML_TAG,
BUILD_BOARD_XML_TAG,
+ BUILD_MODEL_XML_TAG,
BUILD_ID_N_XML_TAG,
TEST_XML_TAG]
@@ -212,6 +214,7 @@
SUMMARY_XML_TAG = 'Summary'
BUILD_N_XML_TAG = 'Build'
BUILD_BOARD_VERSION_XML_TAG = 'build_board'
+ BUILD_MODEL_VERSION_XML_TAG = 'build_product'
BUILD_ID_N_XML_TAG = 'build_id'
TEST_PACKAGE_LIST_N_XML_TAG = 'Module'
TEST_PACKAGE_NAME_N_XML_TAG = 'name'
@@ -224,6 +227,7 @@
return [SUMMARY_XML_TAG,
BUILD_N_XML_TAG,
BUILD_BOARD_VERSION_XML_TAG,
+ BUILD_MODEL_VERSION_XML_TAG,
BUILD_ID_N_XML_TAG,
TEST_PACKAGE_LIST_N_XML_TAG,
TEST_PACKAGE_NAME_N_XML_TAG,
@@ -251,9 +255,10 @@
build_board = ''
split_file_list = self.SplitFileName(filename)
base = split_file_list[0]
+ build_model = self.build_info_list[-1][2]
build_board = self.build_info_list[-1][1]
- build_id_folder = self.build_info_list[-1][2]
- release_folder = '%s-release' % build_board
+ build_id_folder = self.build_info_list[-1][3]
+ release_folder = '%s.%s-release' % (build_model, build_board)
manual_folder = 'manual'
apfe_path = os.path.join(dir_path, release_folder, build_id_folder,
manual_folder)
@@ -272,8 +277,9 @@
split_file_list = self.SplitFileName(filename)
base = split_file_list[0]
build_board = self.build_info_list[-1][1]
- build_id_folder = self.build_info_list[-1][2]
- release_folder = '%s-release' % build_board
+ build_model = self.build_info_list[-1][2]
+ build_id_folder = self.build_info_list[-1][3]
+ release_folder = '%s.%s-release' %(build_model, build_board)
apfe_path = os.path.join(dir_path, release_folder, build_id_folder)
if not os.path.exists(apfe_path):
os.makedirs(apfe_path)
@@ -290,7 +296,7 @@
build_id = None
build_board = None
build_board = self.build_info_list[-1][1]
- build_id = self.build_info_list[-1][2]
+ build_id = self.build_info_list[-1][3]
split_file_list = self.SplitFileName(filename)
basename_xml_file = split_file_list[2]
basename_xml_gz_file = split_file_list[3]
diff --git a/provingground/cts/upload_cts.py b/provingground/cts/upload_cts.py
index e4914ef..418809c 100755
--- a/provingground/cts/upload_cts.py
+++ b/provingground/cts/upload_cts.py
@@ -103,16 +103,19 @@
def PrintGsutilLinks(self, dir_path):
"""Prints gsutil links to upload results to CTS and APFE buckets.
+ Sample APFE:board.board for non-unibuild.
+ Sample APFE:model.board for unibuild.
+
Args:
dir_path: Results directory path.
"""
for item in self.build_info_list:
if self.test_board_name != item[1]:
- print('gsutil cp -r {0}/{1}-release/ gs://chromeos-cts-apfe/'
- .format(dir_path, item[1]))
+ print('gsutil cp -r {0}/{1}.{2}-release/ gs://chromeos-cts-apfe/'
+ .format(dir_path, item[2], item[1]))
print('gsutil cp -r {0}/{1}_{2}/ '
'gs://chromeos-cts-results/manual'
- .format(dir_path, item[2], item[1]))
+ .format(dir_path, item[3], item[1]))
self.test_board_name = item[1]
@@ -137,14 +140,15 @@
summary = tag_list[0]
build_version = tag_list[1]
build_board_version = tag_list[2]
- build_id_type = tag_list[3]
- test_package_list = tag_list[4]
- test_package_v = tag_list[5]
- build_abi_type = tag_list[6]
- failed = tag_list[7]
- passed = tag_list[8]
- test = tag_list[9]
- name = tag_list[10]
+ build_model_version = tag_list[3]
+ build_id_type = tag_list[4]
+ test_package_list = tag_list[5]
+ test_package_v = tag_list[6]
+ build_abi_type = tag_list[7]
+ failed = tag_list[8]
+ passed = tag_list[9]
+ test = tag_list[10]
+ name = tag_list[11]
split_file_list = self.SplitFileName(abs_input_file_path)
basename = split_file_list[1]
full_base_name = os.path.join(dir_path, basename)
@@ -189,6 +193,7 @@
self.untested_tests_exist = True
else:
build_board = build_info[0].attributes[build_board_version].value
+ build_model = build_info[0].attributes[build_model_version].value
build_id = build_info[0].attributes[build_id_type].value
test_package = test_package_list[0].attributes[test_package_v].value
build_abi = test_package_list[0].attributes[build_abi_type].value
@@ -197,6 +202,7 @@
test = test[0].attributes[name].value
self.UpdateBuildInfoList([timestamp,
build_board,
+ build_model,
build_id,
build_abi,
test_package,
@@ -229,7 +235,7 @@
dir_path)
for item in self.build_info_list:
- build_id = item[2]
+ build_id = item[3]
if build_id == input_build_id:
self.valid_exist = True
diff --git a/provingground/cts/upload_cts_verifier.py b/provingground/cts/upload_cts_verifier.py
index cb85318..ea4a24f 100755
--- a/provingground/cts/upload_cts_verifier.py
+++ b/provingground/cts/upload_cts_verifier.py
@@ -65,16 +65,19 @@
def PrintGsutilLinks(self, dir_path):
"""Prints gsutil links to upload results to CTS dashboard and APFE buckets.
+ CTS-V APFE :model.board for unibuild.
+ CTS-V APFE :board.board for non-unibuild.
+
Args:
dir_path: Results directory path.
"""
for item in self.build_info_list:
- gsutil_msg_apfe = ('gsutil cp -r {0}/{1}-release/ '
+ gsutil_msg_apfe = ('gsutil cp -r {0}/{1}.{2}-release/ '
'gs://chromeos-ctsverifier-results/'
- .format(dir_path, item[1]))
+ .format(dir_path, item[2], item[1]))
gsutil_msg_cts = ('gsutil cp -r {0}/{1}_{2}/ '
'gs://chromeos-cts-results/ctsVerifier'
- .format(dir_path, item[2], item[1]))
+ .format(dir_path, item[3], item[1]))
print(self.BOLD +
self.C_PURPLE +
gsutil_msg_cts +
@@ -129,8 +132,9 @@
result = tag_list[1]
suite_version = tag_list[2]
build_board = tag_list[3]
- build_id_n = tag_list[4]
- test = tag_list[5]
+ build_model = tag_list[4]
+ build_id_n = tag_list[5]
+ test = tag_list[6]
split_file_list = self.SplitFileName(abs_input_file_path)
basename = split_file_list[1]
full_base_name = os.path.join(dir_path, basename)
@@ -145,10 +149,11 @@
verifier_info = xml_doc.getElementsByTagName(result)
suite_version = verifier_info[0].attributes[suite_version].value
build_board = build[0].attributes[build_board].value
+ build_model = build[0].attributes[build_model].value
build_id = build[0].attributes[build_id_n].value
tests = xml_doc.getElementsByTagName(test)
self.UpdateBuildInfoList(
- [basename, build_board, build_id, suite_version])
+ [basename, build_board, build_model, build_id, suite_version])
return tests
def ProcessFilesToUpload(self, input_build_id, dir_path):
@@ -171,7 +176,7 @@
self.ExtractZipFile(full_file, dir_path)
tests = self.ParseXmlFile(the_file, dir_path)
for item in self.build_info_list:
- build_id = item[2]
+ build_id = item[3]
if build_id == input_build_id:
self.valid_files_exist = True
self.failed_tests_exist = False