Loading base/include/base/test_utils.h +0 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ class TemporaryFile { DISALLOW_COPY_AND_ASSIGN(TemporaryFile); }; #if !defined(_WIN32) class TemporaryDir { public: TemporaryDir(); Loading @@ -48,6 +47,5 @@ class TemporaryDir { DISALLOW_COPY_AND_ASSIGN(TemporaryDir); }; #endif #endif // TEST_UTILS_H base/stringprintf_test.cpp +0 −3 Original line number Diff line number Diff line Loading @@ -20,14 +20,11 @@ #include <string> // The z size sepcifier isn't supported on Windows, so this test isn't useful. #if !defined(_WIN32) TEST(StringPrintfTest, HexSizeT) { size_t size = 0x00107e59; EXPECT_EQ("00107e59", android::base::StringPrintf("%08zx", size)); EXPECT_EQ("0x00107e59", android::base::StringPrintf("0x%08zx", size)); } #endif TEST(StringPrintfTest, StringAppendF) { std::string s("a"); Loading base/test_utils.cpp +39 −17 Original line number Diff line number Diff line Loading @@ -14,7 +14,9 @@ * limitations under the License. */ #include "base/logging.h" #include "base/test_utils.h" #include "utils/Compat.h" // For OS_PATH_SEPARATOR. #include <fcntl.h> #include <stdio.h> Loading @@ -24,17 +26,47 @@ #if defined(_WIN32) #include <windows.h> #include <direct.h> #endif #include <string> #ifdef _WIN32 int mkstemp(char* template_name) { if (_mktemp(template_name) == nullptr) { return -1; } // Use open() to match the close() that TemporaryFile's destructor does. // Note that on Windows, this does CR/LF translation and _setmode() should // be used to change that if appropriate. return open(template_name, O_CREAT | O_EXCL | O_RDWR, S_IRUSR | S_IWUSR); } char* mkdtemp(char* template_name) { if (_mktemp(template_name) == nullptr) { return nullptr; } if (_mkdir(template_name) == -1) { return nullptr; } return template_name; } #endif static std::string GetSystemTempDir() { #if defined(__ANDROID__) return "/data/local/tmp"; #elif defined(_WIN32) char wd[MAX_PATH] = {}; _getcwd(wd, sizeof(wd)); return wd; char tmp_dir[MAX_PATH]; DWORD result = GetTempPathA(sizeof(tmp_dir), tmp_dir); CHECK_NE(result, 0ul) << "GetTempPathA failed, error: " << GetLastError(); CHECK_LT(result, sizeof(tmp_dir)) << "path truncated to: " << result; // GetTempPath() returns a path with a trailing slash, but init() // does not expect that, so remove it. CHECK_EQ(tmp_dir[result - 1], '\\'); tmp_dir[result - 1] = '\0'; return tmp_dir; #else return "/tmp"; #endif Loading @@ -50,21 +82,11 @@ TemporaryFile::~TemporaryFile() { } void TemporaryFile::init(const std::string& tmp_dir) { snprintf(path, sizeof(path), "%s/TemporaryFile-XXXXXX", tmp_dir.c_str()); #if !defined(_WIN32) snprintf(path, sizeof(path), "%s%cTemporaryFile-XXXXXX", tmp_dir.c_str(), OS_PATH_SEPARATOR); fd = mkstemp(path); #else // Windows doesn't have mkstemp, and tmpfile creates the file in the root // directory, requiring root (?!) permissions. We have to settle for mktemp. if (mktemp(path) == nullptr) { abort(); } fd = open(path, O_RDWR | O_NOINHERIT | O_CREAT, _S_IREAD | _S_IWRITE); #endif } #if !defined(_WIN32) TemporaryDir::TemporaryDir() { init(GetSystemTempDir()); } Loading @@ -74,7 +96,7 @@ TemporaryDir::~TemporaryDir() { } bool TemporaryDir::init(const std::string& tmp_dir) { snprintf(path, sizeof(path), "%s/TemporaryDir-XXXXXX", tmp_dir.c_str()); snprintf(path, sizeof(path), "%s%cTemporaryDir-XXXXXX", tmp_dir.c_str(), OS_PATH_SEPARATOR); return (mkdtemp(path) != nullptr); } #endif Loading
base/include/base/test_utils.h +0 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ class TemporaryFile { DISALLOW_COPY_AND_ASSIGN(TemporaryFile); }; #if !defined(_WIN32) class TemporaryDir { public: TemporaryDir(); Loading @@ -48,6 +47,5 @@ class TemporaryDir { DISALLOW_COPY_AND_ASSIGN(TemporaryDir); }; #endif #endif // TEST_UTILS_H
base/stringprintf_test.cpp +0 −3 Original line number Diff line number Diff line Loading @@ -20,14 +20,11 @@ #include <string> // The z size sepcifier isn't supported on Windows, so this test isn't useful. #if !defined(_WIN32) TEST(StringPrintfTest, HexSizeT) { size_t size = 0x00107e59; EXPECT_EQ("00107e59", android::base::StringPrintf("%08zx", size)); EXPECT_EQ("0x00107e59", android::base::StringPrintf("0x%08zx", size)); } #endif TEST(StringPrintfTest, StringAppendF) { std::string s("a"); Loading
base/test_utils.cpp +39 −17 Original line number Diff line number Diff line Loading @@ -14,7 +14,9 @@ * limitations under the License. */ #include "base/logging.h" #include "base/test_utils.h" #include "utils/Compat.h" // For OS_PATH_SEPARATOR. #include <fcntl.h> #include <stdio.h> Loading @@ -24,17 +26,47 @@ #if defined(_WIN32) #include <windows.h> #include <direct.h> #endif #include <string> #ifdef _WIN32 int mkstemp(char* template_name) { if (_mktemp(template_name) == nullptr) { return -1; } // Use open() to match the close() that TemporaryFile's destructor does. // Note that on Windows, this does CR/LF translation and _setmode() should // be used to change that if appropriate. return open(template_name, O_CREAT | O_EXCL | O_RDWR, S_IRUSR | S_IWUSR); } char* mkdtemp(char* template_name) { if (_mktemp(template_name) == nullptr) { return nullptr; } if (_mkdir(template_name) == -1) { return nullptr; } return template_name; } #endif static std::string GetSystemTempDir() { #if defined(__ANDROID__) return "/data/local/tmp"; #elif defined(_WIN32) char wd[MAX_PATH] = {}; _getcwd(wd, sizeof(wd)); return wd; char tmp_dir[MAX_PATH]; DWORD result = GetTempPathA(sizeof(tmp_dir), tmp_dir); CHECK_NE(result, 0ul) << "GetTempPathA failed, error: " << GetLastError(); CHECK_LT(result, sizeof(tmp_dir)) << "path truncated to: " << result; // GetTempPath() returns a path with a trailing slash, but init() // does not expect that, so remove it. CHECK_EQ(tmp_dir[result - 1], '\\'); tmp_dir[result - 1] = '\0'; return tmp_dir; #else return "/tmp"; #endif Loading @@ -50,21 +82,11 @@ TemporaryFile::~TemporaryFile() { } void TemporaryFile::init(const std::string& tmp_dir) { snprintf(path, sizeof(path), "%s/TemporaryFile-XXXXXX", tmp_dir.c_str()); #if !defined(_WIN32) snprintf(path, sizeof(path), "%s%cTemporaryFile-XXXXXX", tmp_dir.c_str(), OS_PATH_SEPARATOR); fd = mkstemp(path); #else // Windows doesn't have mkstemp, and tmpfile creates the file in the root // directory, requiring root (?!) permissions. We have to settle for mktemp. if (mktemp(path) == nullptr) { abort(); } fd = open(path, O_RDWR | O_NOINHERIT | O_CREAT, _S_IREAD | _S_IWRITE); #endif } #if !defined(_WIN32) TemporaryDir::TemporaryDir() { init(GetSystemTempDir()); } Loading @@ -74,7 +96,7 @@ TemporaryDir::~TemporaryDir() { } bool TemporaryDir::init(const std::string& tmp_dir) { snprintf(path, sizeof(path), "%s/TemporaryDir-XXXXXX", tmp_dir.c_str()); snprintf(path, sizeof(path), "%s%cTemporaryDir-XXXXXX", tmp_dir.c_str(), OS_PATH_SEPARATOR); return (mkdtemp(path) != nullptr); } #endif