Use different extension for smali test files.

The test infra just searches for and opens all .jar files.
The different extension effectively hides the test files from it.

Bug: 147817558
Bug: 160391839
Test: m test-art-host-gtest
Change-Id: Ida3c102008b772841076df4e374532f7845b8c61
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index 7764c7c..1a337cb 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -770,7 +770,7 @@
     self._checker.check_art_test_data('art-gtest-jars-Main.jar')
     self._checker.check_art_test_data('art-gtest-jars-ProtoCompare.jar')
     self._checker.check_art_test_data('art-gtest-jars-Transaction.jar')
-    self._checker.check_art_test_data('art-gtest-jars-VerifierDepsMulti.jar')
+    self._checker.check_art_test_data('art-gtest-jars-VerifierDepsMulti.dex')
     self._checker.check_art_test_data('art-gtest-jars-Nested.jar')
     self._checker.check_art_test_data('art-gtest-jars-MyClass.jar')
     self._checker.check_art_test_data('art-gtest-jars-ManyMethods.jar')
@@ -784,10 +784,10 @@
     self._checker.check_art_test_data('art-gtest-jars-DexToDexDecompiler.jar')
     self._checker.check_art_test_data('art-gtest-jars-HiddenApiSignatures.jar')
     self._checker.check_art_test_data('art-gtest-jars-ForClassLoaderB.jar')
-    self._checker.check_art_test_data('art-gtest-jars-LinkageTest.jar')
+    self._checker.check_art_test_data('art-gtest-jars-LinkageTest.dex')
     self._checker.check_art_test_data('art-gtest-jars-MethodTypes.jar')
     self._checker.check_art_test_data('art-gtest-jars-ErroneousInit.jar')
-    self._checker.check_art_test_data('art-gtest-jars-VerifierDeps.jar')
+    self._checker.check_art_test_data('art-gtest-jars-VerifierDeps.dex')
     self._checker.check_art_test_data('art-gtest-jars-StringLiterals.jar')
     self._checker.check_art_test_data('art-gtest-jars-XandY.jar')
     self._checker.check_art_test_data('art-gtest-jars-ExceptionHandle.jar')
@@ -804,7 +804,7 @@
     self._checker.check_art_test_data('art-gtest-jars-MultiDexUncompressedAligned.jar')
     self._checker.check_art_test_data('art-gtest-jars-StaticsFromCode.jar')
     self._checker.check_art_test_data('art-gtest-jars-ProfileTestMultiDex.jar')
-    self._checker.check_art_test_data('art-gtest-jars-VerifySoftFailDuringClinit.jar')
+    self._checker.check_art_test_data('art-gtest-jars-VerifySoftFailDuringClinit.dex')
     self._checker.check_art_test_data('art-gtest-jars-MainStripped.jar')
     self._checker.check_art_test_data('art-gtest-jars-ForClassLoaderA.jar')
     self._checker.check_art_test_data('art-gtest-jars-StaticLeafMethods.jar')
diff --git a/libartbase/base/common_art_test.cc b/libartbase/base/common_art_test.cc
index e327832..e0e44a8 100644
--- a/libartbase/base/common_art_test.cc
+++ b/libartbase/base/common_art_test.cc
@@ -488,7 +488,14 @@
   UniqueCPtr<char[]> executable_path(realpath(cmdline.c_str(), nullptr));
   CHECK(executable_path != nullptr);
   std::string executable_dir = dirname(executable_path.get());
-  return executable_dir + "/art-gtest-jars-" + name + ".jar";
+  for (auto ext : {".jar", ".dex"}) {
+    std::string path = executable_dir + "/art-gtest-jars-" + name + ext;
+    if (OS::FileExists(path.c_str())) {
+      return path;
+    }
+  }
+  LOG(FATAL) << "Test file " << name << " not found";
+  UNREACHABLE();
 }
 
 std::vector<std::unique_ptr<const DexFile>> CommonArtTestImpl::OpenDexFiles(const char* filename) {
diff --git a/test/Android.bp b/test/Android.bp
index 3e7b2b6..f977f3c 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -1410,30 +1410,35 @@
     ],
 }
 
+// Smali compiled files.
+// Since they are not compiled by javac, we use different extension for them.
+// The .jar extension for them would cause subtle failures in the test infra,
+// which finds and opens all jar files and expects them to be valid zip files.
+
 genrule {
     name: "art-gtest-jars-VerifierDeps",
     defaults: ["art-gtest-jars-smali-defaults"],
     srcs: ["VerifierDeps/**/*.smali"],
-    out: ["art-gtest-jars-VerifierDeps.jar"],
+    out: ["art-gtest-jars-VerifierDeps.dex"],
 }
 
 genrule {
     name: "art-gtest-jars-VerifierDepsMulti",
     defaults: ["art-gtest-jars-smali-defaults"],
     srcs: ["VerifierDepsMulti/**/*.smali"],
-    out: ["art-gtest-jars-VerifierDepsMulti.jar"],
+    out: ["art-gtest-jars-VerifierDepsMulti.dex"],
 }
 
 genrule {
     name: "art-gtest-jars-VerifySoftFailDuringClinit",
     defaults: ["art-gtest-jars-smali-defaults"],
     srcs: ["VerifySoftFailDuringClinit/**/*.smali"],
-    out: ["art-gtest-jars-VerifySoftFailDuringClinit.jar"],
+    out: ["art-gtest-jars-VerifySoftFailDuringClinit.dex"],
 }
 
 genrule {
     name: "art-gtest-jars-LinkageTest",
     defaults: ["art-gtest-jars-smali-defaults"],
     srcs: ["LinkageTest/*.smali"],
-    out: ["art-gtest-jars-LinkageTest.jar"],
+    out: ["art-gtest-jars-LinkageTest.dex"],
 }