summaryrefslogtreecommitdiff
path: root/test/gtest-filepath_test.cc
diff options
context:
space:
mode:
authorshiqian <shiqian@861a406c-534a-0410-8894-cb66d6ee9925>2008-07-31 18:34:08 +0000
committershiqian <shiqian@861a406c-534a-0410-8894-cb66d6ee9925>2008-07-31 18:34:08 +0000
commitdd4a17bc20377d250ed116b1083d851adbe45f25 (patch)
tree4da8e8084682bbd9121ed76e450ee2074620b59f /test/gtest-filepath_test.cc
parent7ddde1bc28eb7ee5bc3663a9ea427f6ab39d02de (diff)
downloadgoogletest-dd4a17bc20377d250ed116b1083d851adbe45f25.tar.gz
Makes gtest work on Windows Mobile and Symbian. By Mika Raento.
git-svn-id: http://googletest.googlecode.com/svn/trunk@73 861a406c-534a-0410-8894-cb66d6ee9925
Diffstat (limited to 'test/gtest-filepath_test.cc')
-rw-r--r--test/gtest-filepath_test.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/gtest-filepath_test.cc b/test/gtest-filepath_test.cc
index 559b599..f4b70c3 100644
--- a/test/gtest-filepath_test.cc
+++ b/test/gtest-filepath_test.cc
@@ -51,7 +51,11 @@
#undef GTEST_IMPLEMENTATION
#ifdef GTEST_OS_WINDOWS
+#ifdef _WIN32_WCE
+#include <windows.h>
+#else
#include <direct.h>
+#endif // _WIN32_WCE
#define PATH_SEP "\\"
#else
#define PATH_SEP "/"
@@ -61,6 +65,32 @@ namespace testing {
namespace internal {
namespace {
+#ifdef _WIN32_WCE
+// Windows CE doesn't have the remove C function.
+int remove(const char* path) {
+ LPCWSTR wpath = String::AnsiToUtf16(path);
+ int ret = DeleteFile(wpath) ? 0 : -1;
+ delete [] wpath;
+ return ret;
+}
+// Windows CE doesn't have the _rmdir C function.
+int _rmdir(const char* path) {
+ FilePath filepath(path);
+ LPCWSTR wpath = String::AnsiToUtf16(
+ filepath.RemoveTrailingPathSeparator().c_str());
+ int ret = RemoveDirectory(wpath) ? 0 : -1;
+ delete [] wpath;
+ return ret;
+}
+
+#elif defined(GTEST_LINUX_GOOGLE3_MODE)
+// Creates a temporary directory and returns its path.
+const char* MakeTempDir() {
+ static char dir_name[] = "gtest-filepath_test_tmpXXXXXX";
+ return mkdtemp(dir_name);
+}
+#endif // _WIN32_WCE
+
// FilePath's functions used by UnitTestOptions::GetOutputFile.
// RemoveDirectoryName "" -> ""
@@ -102,8 +132,14 @@ TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileName) {
// RemoveFileName "" -> "./"
TEST(RemoveFileNameTest, EmptyName) {
+#ifdef _WIN32_WCE
+ // On Windows CE, we use the root as the current directory.
+ EXPECT_STREQ(PATH_SEP,
+ FilePath("").RemoveFileName().c_str());
+#else
EXPECT_STREQ("." PATH_SEP,
FilePath("").RemoveFileName().c_str());
+#endif
}
// RemoveFileName "adir/" -> "adir/"