Merge "Show the library names in the assertion messages of vts-vndk"
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 @@
                           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 @@
                               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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
             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__":