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"],
}