Fix matrix combine logic for AIDL HALs.

Also, add loads of tests for matrix / manifest combine.
Fixes: 140590973
Test: libvintf_test
Test: vintf_object_test
Change-Id: Ifbf5026953d0e350834dc9a055d6528bb4bfcdc4
diff --git a/CompatibilityMatrix.cpp b/CompatibilityMatrix.cpp
index 0ecb82c..1e519e0 100644
--- a/CompatibilityMatrix.cpp
+++ b/CompatibilityMatrix.cpp
@@ -186,6 +186,11 @@
                                      const std::string& interface,
                                      const std::string& instanceOrPattern, bool isRegex) {
             for (auto* existingHal : existingHals) {
+                // Ignore HALs with different format.
+                if (halToAdd.format != existingHal->format) {
+                    continue;
+                }
+
                 MatrixHal* splitInstance =
                     this->splitInstance(existingHal, interface, instanceOrPattern, isRegex);
                 if (splitInstance != nullptr) {