summaryrefslogtreecommitdiff
path: root/libartbase/base/file_utils_test.cc
diff options
context:
space:
mode:
author Roland Levillain <rpl@google.com> 2019-03-29 19:08:56 +0000
committer Roland Levillain <rpl@google.com> 2019-04-08 16:40:00 +0000
commit1ea8a62e320cb53b65910093b35240b3139b2cfa (patch)
tree1a596634a00b144f3e8fbd07fee30f9f6866d4d8 /libartbase/base/file_utils_test.cc
parenteaa4831142fa58f176ddad52c0d5e9c288e26b81 (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.cc33
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"));