diff options
| author | 2017-11-09 05:26:21 +0000 | |
|---|---|---|
| committer | 2017-11-09 05:26:21 +0000 | |
| commit | e45918a82389c04d2624ebc020516154af1e4e8f (patch) | |
| tree | f661c6b92dfc265addcba67aed31cd3e90a4e04c | |
| parent | 51c18b89b1458195586bf8db88d3fdcc65f8e2fe (diff) | |
| parent | 4b3fdfe0919e8de954924ec6b785743eb4895e80 (diff) | |
Merge changes from topic "image_space_loading_test"
* changes:
ART: Disable part of ImageSpace loading test
ART: Add ImageSpace loading behavior test
| -rw-r--r-- | runtime/gc/space/image_space_test.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/runtime/gc/space/image_space_test.cc b/runtime/gc/space/image_space_test.cc index 7a380746a1..429abf3311 100644 --- a/runtime/gc/space/image_space_test.cc +++ b/runtime/gc/space/image_space_test.cc @@ -16,7 +16,10 @@ #include <gtest/gtest.h> +#include "android-base/stringprintf.h" + #include "dexopt_test.h" +#include "noop_compiler_callbacks.h" namespace art { namespace gc { @@ -106,6 +109,47 @@ TEST_F(DexoptTest, ValidateOatFile) { EXPECT_FALSE(ImageSpace::ValidateOatFile(*oat, &error_msg)); } +template <bool kImage, bool kRelocate, bool kPatchoat, bool kImageDex2oat> +class ImageSpaceLoadingTest : public CommonRuntimeTest { + protected: + void SetUpRuntimeOptions(RuntimeOptions* options) OVERRIDE { + if (kImage) { + options->emplace_back(android::base::StringPrintf("-Ximage:%s", GetCoreArtLocation().c_str()), + nullptr); + } + options->emplace_back(kRelocate ? "-Xrelocate" : "-Xnorelocate", nullptr); + if (!kPatchoat) { + options->emplace_back("-Xpatchoat:false", nullptr); + } + options->emplace_back(kImageDex2oat ? "-Ximage-dex2oat" : "-Xnoimage-dex2oat", nullptr); + + // We want to test the relocation behavior of ImageSpace. As such, don't pretend we're a + // compiler. + callbacks_.reset(); + } +}; + +using ImageSpacePatchoatTest = ImageSpaceLoadingTest<true, true, true, true>; +TEST_F(ImageSpacePatchoatTest, Test) { + EXPECT_FALSE(Runtime::Current()->GetHeap()->GetBootImageSpaces().empty()); +} + +using ImageSpaceDex2oatTest = ImageSpaceLoadingTest<false, true, false, true>; +TEST_F(ImageSpaceDex2oatTest, Test) { + EXPECT_FALSE(Runtime::Current()->GetHeap()->GetBootImageSpaces().empty()); +} + +// Disabled for b/63622587. +// using ImageSpaceNoDex2oatNoPatchoatTest = ImageSpaceLoadingTest<true, true, false, false>; +// TEST_F(ImageSpaceNoDex2oatNoPatchoatTest, Test) { +// EXPECT_TRUE(Runtime::Current()->GetHeap()->GetBootImageSpaces().empty()); +// } + +using ImageSpaceNoRelocateNoDex2oatNoPatchoatTest = ImageSpaceLoadingTest<true, false, false, false>; +TEST_F(ImageSpaceNoRelocateNoDex2oatNoPatchoatTest, Test) { + EXPECT_FALSE(Runtime::Current()->GetHeap()->GetBootImageSpaces().empty()); +} + } // namespace space } // namespace gc } // namespace art |