summaryrefslogtreecommitdiffstats
path: root/init/util_test.cpp
diff options
context:
space:
mode:
authorTom Cherry <tomcherry@google.com>2017-04-12 14:27:51 -0700
committerTom Cherry <tomcherry@google.com>2017-04-12 16:36:44 -0700
commit060b74baad7c366cb6c74042bf307f1548a8331f (patch)
treeaaeb383886ad59150ca8acab19725c392d8f2389 /init/util_test.cpp
parent780a71e779e8e41681c3f0ee12d7f559dc52b7a7 (diff)
downloadsystem_core-060b74baad7c366cb6c74042bf307f1548a8331f.tar.gz
system_core-060b74baad7c366cb6c74042bf307f1548a8331f.tar.bz2
system_core-060b74baad7c366cb6c74042bf307f1548a8331f.zip
ueventd: convert mkdir_recursive() to std::string
Bug: 36250207 Test: Boot bullhead Test: Boot sailfish, observe no boot time regression Test: init unit tests Change-Id: I5a2ac369d846e044230b709fd07eb21ad12d47bb
Diffstat (limited to 'init/util_test.cpp')
-rw-r--r--init/util_test.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/init/util_test.cpp b/init/util_test.cpp
index 0c0350a60..b8b409a1a 100644
--- a/init/util_test.cpp
+++ b/init/util_test.cpp
@@ -120,3 +120,39 @@ TEST(util, decode_uid) {
EXPECT_EQ(UINT_MAX, decode_uid("toot"));
EXPECT_EQ(123U, decode_uid("123"));
}
+
+TEST(util, is_dir) {
+ TemporaryDir test_dir;
+ EXPECT_TRUE(is_dir(test_dir.path));
+ TemporaryFile tf;
+ EXPECT_FALSE(is_dir(tf.path));
+}
+
+// sehandle is needed for make_dir()
+// TODO: Remove once sehandle is encapsulated
+#include <selinux/label.h>
+selabel_handle* sehandle;
+
+TEST(util, mkdir_recursive) {
+ TemporaryDir test_dir;
+ std::string path = android::base::StringPrintf("%s/three/directories/deep", test_dir.path);
+ EXPECT_EQ(0, mkdir_recursive(path, 0755));
+ std::string path1 = android::base::StringPrintf("%s/three", test_dir.path);
+ EXPECT_TRUE(is_dir(path1.c_str()));
+ std::string path2 = android::base::StringPrintf("%s/three/directories", test_dir.path);
+ EXPECT_TRUE(is_dir(path1.c_str()));
+ std::string path3 = android::base::StringPrintf("%s/three/directories/deep", test_dir.path);
+ EXPECT_TRUE(is_dir(path1.c_str()));
+}
+
+TEST(util, mkdir_recursive_extra_slashes) {
+ TemporaryDir test_dir;
+ std::string path = android::base::StringPrintf("%s/three////directories/deep//", test_dir.path);
+ EXPECT_EQ(0, mkdir_recursive(path, 0755));
+ std::string path1 = android::base::StringPrintf("%s/three", test_dir.path);
+ EXPECT_TRUE(is_dir(path1.c_str()));
+ std::string path2 = android::base::StringPrintf("%s/three/directories", test_dir.path);
+ EXPECT_TRUE(is_dir(path1.c_str()));
+ std::string path3 = android::base::StringPrintf("%s/three/directories/deep", test_dir.path);
+ EXPECT_TRUE(is_dir(path1.c_str()));
+}