aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/CommandLineTest.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-06-13 14:29:26 +0000
committerHans Wennborg <hans@hanshq.net>2018-06-13 14:29:26 +0000
commit12ba9ec929c31977d6295cb89e0dbaf3d326a1af (patch)
treefdfe4ac13c8fca98139e163d012e53823caa1525 /llvm/unittests/Support/CommandLineTest.cpp
parentb391f2430378cd4d1bba41d04e6f60d890748f20 (diff)
downloadllvm-12ba9ec929c31977d6295cb89e0dbaf3d326a1af.zip
llvm-12ba9ec929c31977d6295cb89e0dbaf3d326a1af.tar.gz
llvm-12ba9ec929c31977d6295cb89e0dbaf3d326a1af.tar.bz2
Do not enforce absolute path argv0 in windows
Even if we support no-canonical-prefix on clang-cl(https://reviews.llvm.org/D47480), argv0 becomes absolute path in clang-cl and that embeds absolute path in /showIncludes. This patch removes such full path normalization from InitLLVM on windows, and that removes absolute path from clang-cl output (obj/stdout/stderr) when debug flag is disabled. Patch by Takuto Ikuta! Differential Revision https://reviews.llvm.org/D47578 llvm-svn: 334602
Diffstat (limited to 'llvm/unittests/Support/CommandLineTest.cpp')
-rw-r--r--llvm/unittests/Support/CommandLineTest.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/unittests/Support/CommandLineTest.cpp b/llvm/unittests/Support/CommandLineTest.cpp
index ba12c84..a296912 100644
--- a/llvm/unittests/Support/CommandLineTest.cpp
+++ b/llvm/unittests/Support/CommandLineTest.cpp
@@ -13,6 +13,7 @@
#include "llvm/ADT/Triple.h"
#include "llvm/Config/config.h"
#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/StringSaver.h"
@@ -821,4 +822,22 @@ TEST(CommandLineTest, PositionalEatArgsError) {
EXPECT_TRUE(Errs.empty());
}
+#ifdef _WIN32
+TEST(CommandLineTest, GetCommandLineArguments) {
+ int argc = __argc;
+ char **argv = __argv;
+
+ // GetCommandLineArguments is called in InitLLVM.
+ llvm::InitLLVM X(argc, argv);
+
+ EXPECT_EQ(llvm::sys::path::is_absolute(argv[0]),
+ llvm::sys::path::is_absolute(__argv[0]));
+
+ EXPECT_TRUE(llvm::sys::path::filename(argv[0])
+ .equals_lower("supporttests.exe"))
+ << "Filename of test executable is "
+ << llvm::sys::path::filename(argv[0]);
+}
+#endif
+
} // anonymous namespace