diff options
author | 2019-03-29 19:08:56 +0000 | |
---|---|---|
committer | 2019-04-08 16:40:00 +0000 | |
commit | 1ea8a62e320cb53b65910093b35240b3139b2cfa (patch) | |
tree | 1a596634a00b144f3e8fbd07fee30f9f6866d4d8 /libartbase/base/file_utils_test.cc | |
parent | eaa4831142fa58f176ddad52c0d5e9c288e26b81 (diff) |
Add art::GetAndroidRuntimeRootSafe and art::GetAndroidRuntimeRoot.
Test: m test-art-host-gtest-file_utils_test
Change-Id: Ib1f188e448b46891ae6fea713a5e92f5e160f060
Diffstat (limited to 'libartbase/base/file_utils_test.cc')
-rw-r--r-- | libartbase/base/file_utils_test.cc | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/libartbase/base/file_utils_test.cc b/libartbase/base/file_utils_test.cc index c9173076d1..0a5a7a76b7 100644 --- a/libartbase/base/file_utils_test.cc +++ b/libartbase/base/file_utils_test.cc @@ -66,14 +66,14 @@ TEST_F(FileUtilsTest, GetAndroidRootSafe) { // CommonArtTest sets ANDROID_ROOT, so expect this to be the same. std::string android_root = GetAndroidRootSafe(&error_msg); std::string android_root_env = getenv("ANDROID_ROOT"); - EXPECT_EQ(android_root, android_root_env); + EXPECT_EQ(android_root, android_root_env) << error_msg; // Set ANDROID_ROOT to something else (but the directory must exist). So use dirname. UniqueCPtr<char> root_dup(strdup(android_root_env.c_str())); char* dir = dirname(root_dup.get()); ASSERT_EQ(0, setenv("ANDROID_ROOT", dir, /* overwrite */ 1)); std::string android_root2 = GetAndroidRootSafe(&error_msg); - EXPECT_STREQ(dir, android_root2.c_str()); + EXPECT_STREQ(dir, android_root2.c_str()) << error_msg; // Set a bogus value for ANDROID_ROOT. This should be an error. ASSERT_EQ(0, setenv("ANDROID_ROOT", "/this/is/obviously/bogus", /* overwrite */ 1)); @@ -88,15 +88,40 @@ TEST_F(FileUtilsTest, GetAndroidRootSafe) { UniqueCPtr<char> real_root3(realpath(android_root3.c_str(), nullptr)); #if !defined(__BIONIC__ ) || defined(__ANDROID__) UniqueCPtr<char> real_root(realpath(android_root.c_str(), nullptr)); - EXPECT_STREQ(real_root.get(), real_root3.get()); + EXPECT_STREQ(real_root.get(), real_root3.get()) << error_msg; #else - EXPECT_STRNE(real_root3.get(), ""); + EXPECT_STRNE(real_root3.get(), "") << error_msg; #endif // Reset ANDROID_ROOT, as other things may depend on it. ASSERT_EQ(0, setenv("ANDROID_ROOT", android_root_env.c_str(), /* overwrite */ 1)); } +TEST_F(FileUtilsTest, GetAndroidRuntimeRootSafe) { + std::string error_msg; + + // We don't expect null returns for most cases, so don't check and let std::string crash. + + // CommonArtTest sets ANDROID_RUNTIME_ROOT, so expect this to be the same. + std::string android_runtime_root = GetAndroidRuntimeRootSafe(&error_msg); + std::string android_runtime_root_env = getenv("ANDROID_RUNTIME_ROOT"); + EXPECT_EQ(android_runtime_root, android_runtime_root_env) << error_msg; + + // Set ANDROID_RUNTIME_ROOT to something else (but the directory must exist). So use dirname. + UniqueCPtr<char> root_dup(strdup(android_runtime_root_env.c_str())); + char* dir = dirname(root_dup.get()); + ASSERT_EQ(0, setenv("ANDROID_RUNTIME_ROOT", dir, /* overwrite */ 1)); + std::string android_runtime_root2 = GetAndroidRuntimeRootSafe(&error_msg); + EXPECT_STREQ(dir, android_runtime_root2.c_str()) << error_msg; + + // Set a bogus value for ANDROID_RUNTIME_ROOT. This should be an error. + ASSERT_EQ(0, setenv("ANDROID_RUNTIME_ROOT", "/this/is/obviously/bogus", /* overwrite */ 1)); + EXPECT_EQ(GetAndroidRuntimeRootSafe(&error_msg), ""); + + // Reset ANDROID_RUNTIME_ROOT, as other things may depend on it. + ASSERT_EQ(0, setenv("ANDROID_RUNTIME_ROOT", android_runtime_root_env.c_str(), /* overwrite */ 1)); +} + TEST_F(FileUtilsTest, ReplaceFileExtension) { EXPECT_EQ("/directory/file.vdex", ReplaceFileExtension("/directory/file.oat", "vdex")); EXPECT_EQ("/.directory/file.vdex", ReplaceFileExtension("/.directory/file.oat", "vdex")); |