summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHsin-Yi Chen <hsinyichen@google.com>2019-09-22 19:13:25 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-09-22 19:13:25 -0700
commit9439a4fbf4a33cda90d3c9b9ea1be8b30990bca6 (patch)
tree26c9b3309fafbc52e293fbacaafec52e68849b19
parent9682c3b371066466145d72940b0b89d1ff6e16e7 (diff)
parentb9668048f110a688879671efb5d1ca8b3bf6b975 (diff)
downloadvndk-9439a4fbf4a33cda90d3c9b9ea1be8b30990bca6.tar.gz
Merge "Show the library names in the assertion messages of vts-vndk"
am: b9668048f1 Change-Id: Ifb6bcca2795892f57c269e6ad4ac77d77d6caedb
-rw-r--r--abi/VtsVndkAbiTest.py18
-rw-r--r--dependency/VtsVndkDependencyTest.py18
-rw-r--r--files/VtsVndkFilesTest.py22
-rw-r--r--open_libraries/VtsVndkOpenLibrariesTest.py9
4 files changed, 49 insertions, 18 deletions
diff --git a/abi/VtsVndkAbiTest.py b/abi/VtsVndkAbiTest.py
index 89d12e2..1fcbd64 100644
--- a/abi/VtsVndkAbiTest.py
+++ b/abi/VtsVndkAbiTest.py
@@ -240,9 +240,9 @@ class VtsVndkAbiTest(base_test.BaseTestClass):
with the dump directories of the given version.
Returns:
- An integer, number of incompatible libraries.
+ A list of strings, the incompatible libraries.
"""
- error_count = 0
+ error_list = []
dump_paths = dict()
lib_paths = dict()
for parent_dir, dump_name in utils.iterate_files(dump_dir):
@@ -292,10 +292,10 @@ class VtsVndkAbiTest(base_test.BaseTestClass):
rel_path,
"\n".join(" ".join(e) for e in vtable_diff))
if (has_exception or missing_symbols or vtable_diff):
- error_count += 1
+ error_list.append(rel_path)
else:
logging.info("%s: Pass", rel_path)
- return error_count
+ return error_list
@staticmethod
def _GetLinkerSearchIndex(target_path):
@@ -343,9 +343,13 @@ class VtsVndkAbiTest(base_test.BaseTestClass):
for target_dir, host_dir in zip(target_dirs, host_dirs):
self._PullOrCreateDir(target_dir, host_dir)
- error_count = self._ScanLibDirs(dump_dir, host_dirs, dump_version)
- asserts.assertEqual(error_count, 0,
- "Total number of errors: " + str(error_count))
+ assert_lines = self._ScanLibDirs(dump_dir, host_dirs, dump_version)
+ if assert_lines:
+ error_count = len(assert_lines)
+ if error_count > 20:
+ assert_lines = assert_lines[:20] + ["..."]
+ assert_lines.append("Total number of errors: " + str(error_count))
+ asserts.fail("\n".join(assert_lines))
if __name__ == "__main__":
diff --git a/dependency/VtsVndkDependencyTest.py b/dependency/VtsVndkDependencyTest.py
index 0302220..81e22b5 100644
--- a/dependency/VtsVndkDependencyTest.py
+++ b/dependency/VtsVndkDependencyTest.py
@@ -451,18 +451,26 @@ class VtsVndkDependencyTest(base_test.BaseTestClass):
if self._dut.is64Bit:
dep_errors.extend(self._TestElfDependency(64, objs))
+ assert_lines = []
if read_errors:
- error_lines = ("%s: %s" % (x[0], x[1]) for x in read_errors)
+ error_lines = ["%s: %s" % (x[0], x[1]) for x in read_errors]
logging.error("%d read errors:\n%s",
len(read_errors), "\n".join(error_lines))
+ assert_lines.extend(error_lines[:20])
+
if dep_errors:
- error_lines = ("%s: %s" % (x[0], ", ".join(x[1]))
- for x in dep_errors)
+ error_lines = ["%s: %s" % (x[0], ", ".join(x[1]))
+ for x in dep_errors]
logging.error("%d disallowed dependencies:\n%s",
len(dep_errors), "\n".join(error_lines))
+ assert_lines.extend(error_lines[:20])
+
error_count = len(read_errors) + len(dep_errors)
- asserts.assertEqual(error_count, 0,
- "Total number of errors: " + str(error_count))
+ if error_count:
+ if error_count > len(assert_lines):
+ assert_lines.append("...")
+ assert_lines.append("Total number of errors: " + str(error_count))
+ asserts.fail("\n".join(assert_lines))
if __name__ == "__main__":
diff --git a/files/VtsVndkFilesTest.py b/files/VtsVndkFilesTest.py
index d88cd8a..41e6386 100644
--- a/files/VtsVndkFilesTest.py
+++ b/files/VtsVndkFilesTest.py
@@ -68,6 +68,22 @@ class VtsVndkFilesTest(base_test.BaseTestClass):
return target_file_utils.FindFiles(self._shell, dir_path, "*",
"! -type d")
+ @staticmethod
+ def _Fail(unexpected_paths):
+ """Logs error and fails current test.
+
+ Args:
+ unexpected_paths: A list of strings, the paths to be shown in the
+ log message.
+ """
+ logging.error("Unexpected files:\n%s", "\n".join(unexpected_paths))
+ assert_lines = unexpected_paths[:20]
+ if len(unexpected_paths) > 20:
+ assert_lines.append("...")
+ assert_lines.append(
+ "Total number of errors: %d" % len(unexpected_paths))
+ asserts.fail("\n".join(assert_lines))
+
def _TestVndkDirectory(self, vndk_dir, vndk_list_names):
"""Verifies that the VNDK directory doesn't contain extra files.
@@ -84,8 +100,7 @@ class VtsVndkFilesTest(base_test.BaseTestClass):
unexpected = [x for x in self._ListFiles(vndk_dir) if
path_utils.TargetBaseName(x) not in vndk_set]
if unexpected:
- logging.error("Unexpected files:\n%s", "\n".join(unexpected))
- asserts.fail("Total number of errors: %d" % len(unexpected))
+ self._Fail(unexpected)
def _TestNotInVndkDirecotory(self, vndk_dir, vndk_list_names, except_libs):
"""Verifies that VNDK directory doesn't contain specific files.
@@ -106,8 +121,7 @@ class VtsVndkFilesTest(base_test.BaseTestClass):
unexpected = [x for x in self._ListFiles(vndk_dir) if
path_utils.TargetBaseName(x) in vndk_set]
if unexpected:
- logging.error("Unexpected files:\n%s", "\n".join(unexpected))
- asserts.fail("Total number of errors: %d" % len(unexpected))
+ self._Fail(unexpected)
def testVndkCoreDirectory(self):
"""Verifies that VNDK-core directory doesn't contain extra files."""
diff --git a/open_libraries/VtsVndkOpenLibrariesTest.py b/open_libraries/VtsVndkOpenLibrariesTest.py
index 8dbfda6..5a7bc33 100644
--- a/open_libraries/VtsVndkOpenLibrariesTest.py
+++ b/open_libraries/VtsVndkOpenLibrariesTest.py
@@ -129,8 +129,13 @@ class VtsVndkOpenLibrariesTest(base_test.BaseTestClass):
error_lines = ["%s %s %s" % (pid, cmds[pid], libs)
for pid, libs in deps.iteritems()]
logging.error("pid command libraries\n%s", "\n".join(error_lines))
- asserts.fail("Number of vendor processes using system libraries: " +
- str(len(deps)))
+
+ assert_lines = ["pid command libraries"] + error_lines[:20]
+ if len(deps) > 20:
+ assert_lines.append("...")
+ assert_lines.append("Number of vendor processes using system "
+ "libraries: " + str(len(deps)))
+ asserts.fail("\n".join(assert_lines))
if __name__ == "__main__":