X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=unittests%2FSupport%2FPath.cpp;h=a7a6a4add7c9d867d516695b357a9112658b012a;hp=ebfd266ebbea53312a68ec3b8e557ce6bacfc38b;hb=6bd362c2d9d3e3284708ba5e55d8f3ccf7493313;hpb=dae382206cce8018e43e0743d908abfb9108532c;ds=inline diff --git a/unittests/Support/Path.cpp b/unittests/Support/Path.cpp index ebfd266ebbe..a7a6a4add7c 100644 --- a/unittests/Support/Path.cpp +++ b/unittests/Support/Path.cpp @@ -351,76 +351,6 @@ TEST(Support, UserCacheDirectory) { } } -TEST(Support, TempDirectory) { - SmallString<32> TempDir; - path::system_temp_directory(false, TempDir); - EXPECT_TRUE(!TempDir.empty()); - TempDir.clear(); - path::system_temp_directory(true, TempDir); - EXPECT_TRUE(!TempDir.empty()); -} - -static std::string path2regex(std::string Path) { - size_t Pos = 0; - while ((Pos = Path.find('\\', Pos)) != std::string::npos) { - Path.replace(Pos, 1, "\\\\"); - Pos += 2; - } - return Path; -} - -/// Helper for running temp dir test in separated process. See below. -#define EXPECT_TEMP_DIR(prepare, expected) \ - EXPECT_EXIT( \ - { \ - prepare; \ - SmallString<300> TempDir; \ - path::system_temp_directory(true, TempDir); \ - raw_os_ostream(std::cerr) << TempDir; \ - std::exit(0); \ - }, \ - ::testing::ExitedWithCode(0), path2regex(expected)) - -#ifdef LLVM_ON_WIN32 -TEST(SupportDeathTest, TempDirectoryOnWindows) { - // In this test we want to check how system_temp_directory responds to - // different values of specific env vars. To prevent corrupting env vars of - // the current process all checks are done in separated processes. - EXPECT_TEMP_DIR(_wputenv_s(L"TMP", L"C:\\OtherFolder"), "C:\\OtherFolder"); - EXPECT_TEMP_DIR(_wputenv_s(L"TMP", L"C:/Unix/Path/Seperators"), - "C:\\Unix\\Path\\Seperators"); - EXPECT_TEMP_DIR(_wputenv_s(L"TMP", L"Local Path"), ".+\\Local Path$"); - EXPECT_TEMP_DIR( - _wputenv_s(L"TMP", L"C:\\2\x03C0r-\x00B5\x00B3\\\x2135\x2080"), - "C:\\2\xCF\x80r-\xC2\xB5\xC2\xB3\\\xE2\x84\xB5\xE2\x82\x80"); - - // Test $TMP empty, $TEMP set. - EXPECT_TEMP_DIR( - { - _wputenv_s(L"TMP", L""); - _wputenv_s(L"TEMP", L"C:\\Valid\\Path"); - }, - "C:\\Valid\\Path"); - - // Test evn var / path with 260 chars. - SmallString<270> Expected{"C:\\Temp\\AB\\123456789"}; - while (Expected.size() < 260) - Expected.append("\\DirNameWith19Charss"); - ASSERT_EQ(260, Expected.size()); - EXPECT_TEMP_DIR(_putenv_s("TMP", Expected.c_str()), Expected.c_str()); - - // Test evn var 261 chars. - Expected.append("X"); - ASSERT_EQ(261, Expected.size()); - EXPECT_TEMP_DIR( - { - _putenv_s("TMP", Expected.c_str()); - _wputenv_s(L"TEMP", L"C:\\Short\\Path"); - }, - "C:\\Short\\Path"); -} -#endif - class FileSystemTest : public testing::Test { protected: /// Unique temporary directory in which all created filesystem entities must