diff options
author | Dan Albert <danalbert@google.com> | 2015-03-16 10:08:46 -0700 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2015-03-16 13:48:07 -0700 |
commit | a83ba64a238de57fa2d02c4ea20f4c8ff8ab1464 (patch) | |
tree | 0c4bf967c0cc52ccd6eca52564a1275ab2da33f2 /libutils/tests/file_test.cpp | |
parent | 778b9c84b81cba056f0b9a3ba05ecd88331df00a (diff) | |
download | system_core-a83ba64a238de57fa2d02c4ea20f4c8ff8ab1464.tar.gz system_core-a83ba64a238de57fa2d02c4ea20f4c8ff8ab1464.tar.bz2 system_core-a83ba64a238de57fa2d02c4ea20f4c8ff8ab1464.zip |
Revert "Revert "Create libbase.""
This reverts commit a7870d88167f619e758b5bcd15b410d16da7c16b.
(cherry picked from commit c007bc3856a4cf86b8f610eb045f26a9dedc2894)
Diffstat (limited to 'libutils/tests/file_test.cpp')
-rw-r--r-- | libutils/tests/file_test.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/libutils/tests/file_test.cpp b/libutils/tests/file_test.cpp deleted file mode 100644 index cea18b617..000000000 --- a/libutils/tests/file_test.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "utils/file.h" - -#include <errno.h> -#include <fcntl.h> -#include <unistd.h> -#include <gtest/gtest.h> - -class TemporaryFile { - public: - TemporaryFile() { - init("/data/local/tmp"); - if (fd == -1) { - init("/tmp"); - } - } - - ~TemporaryFile() { - close(fd); - unlink(filename); - } - - int fd; - char filename[1024]; - - private: - void init(const char* tmp_dir) { - snprintf(filename, sizeof(filename), "%s/TemporaryFile-XXXXXX", tmp_dir); - fd = mkstemp(filename); - } -}; - -TEST(file, ReadFileToString_ENOENT) { - std::string s("hello"); - errno = 0; - ASSERT_FALSE(android::ReadFileToString("/proc/does-not-exist", &s)); - EXPECT_EQ(ENOENT, errno); - EXPECT_EQ("", s); // s was cleared. -} - -TEST(file, ReadFileToString_success) { - std::string s("hello"); - ASSERT_TRUE(android::ReadFileToString("/proc/version", &s)) << errno; - EXPECT_GT(s.length(), 6U); - EXPECT_EQ('\n', s[s.length() - 1]); - s[5] = 0; - EXPECT_STREQ("Linux", s.c_str()); -} - -TEST(file, WriteStringToFile) { - TemporaryFile tf; - ASSERT_TRUE(tf.fd != -1); - ASSERT_TRUE(android::WriteStringToFile("abc", tf.filename)) << errno; - std::string s; - ASSERT_TRUE(android::ReadFileToString(tf.filename, &s)) << errno; - EXPECT_EQ("abc", s); -} - -TEST(file, WriteStringToFile2) { - TemporaryFile tf; - ASSERT_TRUE(tf.fd != -1); - ASSERT_TRUE(android::WriteStringToFile("abc", tf.filename, 0660, getuid(), getgid())) << errno; - struct stat sb; - ASSERT_EQ(0, stat(tf.filename, &sb)); - ASSERT_EQ(0660U, (sb.st_mode & ~S_IFMT)); - ASSERT_EQ(getuid(), sb.st_uid); - ASSERT_EQ(getgid(), sb.st_gid); - std::string s; - ASSERT_TRUE(android::ReadFileToString(tf.filename, &s)) << errno; - EXPECT_EQ("abc", s); -} - -TEST(file, WriteStringToFd) { - TemporaryFile tf; - ASSERT_TRUE(tf.fd != -1); - ASSERT_TRUE(android::WriteStringToFd("abc", tf.fd)); - - ASSERT_EQ(0, lseek(tf.fd, 0, SEEK_SET)) << errno; - - std::string s; - ASSERT_TRUE(android::ReadFdToString(tf.fd, &s)) << errno; - EXPECT_EQ("abc", s); -} |