components/llvm/patches/027-solaris-LLVM-libsupport-unittests.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Sat, 14 Jan 2017 13:51:41 -0800
changeset 7578 0d6f61408e89
parent 6512 92717ce71105
permissions -rw-r--r--
25395691 cannot install new pulseaudio package with de_CH enabled (fix pkgfmt)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6512
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
# 24314638 LLVM CommandLine subsystem is busted
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
# 3.9.X for upstream. Command Aliasing is still broken.
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
--- unittests/Support/CommandLineTest.cpp	2015-11-17 11:00:52.000000000 -0800
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
+++ unittests/Support/CommandLineTest.cpp	2016-05-14 18:05:59.835319423 -0700
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
@@ -7,13 +7,23 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
 //
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
 //===----------------------------------------------------------------------===//
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
+#ifndef SKIP_ENVIRONMENT_TESTS
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
+#define SKIP_ENVIRONMENT_TESTS 1
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
+#endif
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
+#if defined(__sun) || defined(__sun__)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
+#define ALIAS_WITH_ARGUMENT_TESTS_ARE_BROKEN 1
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
+#endif
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
 #include "llvm/ADT/STLExtras.h"
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
 #include "llvm/Config/config.h"
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
 #include "llvm/Support/CommandLine.h"
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
 #include "llvm/Support/StringSaver.h"
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
 #include "gtest/gtest.h"
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
 #include <stdlib.h>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
 #include <string>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
+#include <vector>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
 using namespace llvm;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
@@ -48,25 +58,30 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
 template <typename T>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
 class StackOption : public cl::opt<T> {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
   typedef cl::opt<T> Base;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
 public:
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
   // One option...
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
-  template<class M0t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
-  explicit StackOption(const M0t &M0) : Base(M0) {}
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
+  template<typename M0t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
+  explicit StackOption(const M0t &M0)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
+  : cl::opt<T>(M0) { }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
   // Two options...
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
-  template<class M0t, class M1t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
-  StackOption(const M0t &M0, const M1t &M1) : Base(M0, M1) {}
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
+  template<typename M0t, typename M1t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
+  explicit StackOption(const M0t &M0, const M1t &M1)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
+  : cl::opt<T>(M0, M1) { }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
   // Three options...
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
-  template<class M0t, class M1t, class M2t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
-  StackOption(const M0t &M0, const M1t &M1, const M2t &M2) : Base(M0, M1, M2) {}
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
+  template<typename M0t, typename M1t, typename M2t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
+  explicit StackOption(const M0t &M0, const M1t &M1, const M2t &M2)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
+  : cl::opt<T>(M0, M1, M2) { }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
   // Four options...
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
-  template<class M0t, class M1t, class M2t, class M3t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
-  StackOption(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
-    : Base(M0, M1, M2, M3) {}
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
+  template<typename M0t, typename M1t, typename M2t, typename M3t>
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
+  explicit StackOption(const M0t &M0, const M1t &M1, const M2t &M2,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
+                       const M3t &M3)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
+  : cl::opt<T>(M0, M1, M2, M3) { }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
-  ~StackOption() override { this->removeArgument(); }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
+  ~StackOption<T>() override { this->removeArgument(); }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
 };
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
@@ -94,15 +109,15 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
     "Failed to modify option's option category.";
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
   Retrieved->setDescription(Description);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
-  ASSERT_STREQ(Retrieved->HelpStr.data(), Description)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
+  ASSERT_STREQ(Retrieved->HelpStr, Description)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
       << "Changing option description failed.";
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
   Retrieved->setArgStr(ArgString);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
-  ASSERT_STREQ(ArgString, Retrieved->ArgStr.data())
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
+  ASSERT_STREQ(ArgString, Retrieved->ArgStr)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
       << "Failed to modify option's Argument string.";
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
   Retrieved->setValueStr(ValueString);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
-  ASSERT_STREQ(Retrieved->ValueStr.data(), ValueString)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
+  ASSERT_STREQ(Retrieved->ValueStr, ValueString)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
       << "Failed to modify option's Value string.";
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
   Retrieved->setHiddenFlag(cl::Hidden);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
@@ -113,7 +128,7 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
 const char test_env_var[] = "LLVM_TEST_COMMAND_LINE_FLAGS";
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
-cl::opt<std::string> EnvironmentTestOption("env-test-opt");
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
+static cl::opt<std::string> EnvironmentTestOption("env-test-opt");
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
 TEST(CommandLineTest, ParseEnvironment) {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
   TempEnvVar TEV(test_env_var, "-env-test-opt=hello");
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
   EXPECT_EQ("", EnvironmentTestOption);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
@@ -148,12 +163,13 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
 }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
 typedef void ParserFunction(StringRef Source, StringSaver &Saver,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
-                            SmallVectorImpl<const char *> &NewArgv,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
+                            std::vector<const char *> &NewArgv,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
                             bool MarkEOLs);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
 void testCommandLineTokenizer(ParserFunction *parse, const char *Input,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
-                              const char *const Output[], size_t OutputSize) {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
-  SmallVector<const char *, 0> Actual;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
+                              std::vector<const char*> &Output,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
+                              size_t OutputSize) {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
+  std::vector<const char *> Actual;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
   BumpPtrAllocator A;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
   StringSaver Saver(A);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
   parse(Input, Saver, Actual, /*MarkEOLs=*/false);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
@@ -170,7 +186,12 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
   const char *const Output[] = { "foo bar", "foo bar", "foo bar", "foo\\bar",
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
                                  "foobarbaz", "C:\\src\\foo.cpp",
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
                                  "C:\\src\\foo.cpp" };
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   119
-  testCommandLineTokenizer(cl::TokenizeGNUCommandLine, Input, Output,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   120
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   121
+  std::vector<const char*> OutputVector;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   122
+  for (unsigned I = 0; I < array_lengthof(Output); ++I)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   123
+    OutputVector.push_back(Output[I]);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   124
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   125
+  testCommandLineTokenizer(cl::TokenizeGNUCommandLine, Input, OutputVector,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   126
                            array_lengthof(Output));
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   127
 }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   128
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   129
@@ -179,10 +200,17 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   130
                       "\"st \\\"u\" \\v";
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   131
   const char *const Output[] = { "a\\b", "c\\\\d", "e\\f g", "h\"i", "j\\\"k",
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   132
                                  "lmn", "o", "pqr", "st \"u", "\\v" };
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   133
-  testCommandLineTokenizer(cl::TokenizeWindowsCommandLine, Input, Output,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   134
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   135
+  std::vector<const char*> OutputVector;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   136
+  for (unsigned I = 0; I < array_lengthof(Output); ++I)
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   137
+    OutputVector.push_back(Output[I]);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   138
+
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   139
+  testCommandLineTokenizer(cl::TokenizeWindowsCommandLine, Input, OutputVector,
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   140
                            array_lengthof(Output));
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   141
 }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   142
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   143
+#ifndef ALIAS_WITH_ARGUMENT_TESTS_ARE_BROKEN
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   144
+// This test case is 100% broken.
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   145
 TEST(CommandLineTest, AliasesWithArguments) {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   146
   static const size_t ARGC = 3;
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   147
   const char *const Inputs[][ARGC] = {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   148
@@ -208,12 +236,12 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   149
 }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   150
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   151
 void testAliasRequired(int argc, const char *const *argv) {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   152
-  StackOption<std::string> Option("option", cl::Required);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   153
-  cl::alias Alias("o", llvm::cl::aliasopt(Option));
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   154
+  StackOption<std::string> O("option", cl::Required);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   155
+  cl::alias Alias("o", llvm::cl::aliasopt(O));
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   156
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   157
   cl::ParseCommandLineOptions(argc, argv);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   158
-  EXPECT_EQ("x", Option);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   159
-  EXPECT_EQ(1, Option.getNumOccurrences());
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   160
+  EXPECT_EQ("x", O);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   161
+  EXPECT_EQ(1, O.getNumOccurrences());
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   162
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   163
   Alias.removeArgument();
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   164
 }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   165
@@ -224,6 +252,7 @@
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   166
   testAliasRequired(array_lengthof(opts1), opts1);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   167
   testAliasRequired(array_lengthof(opts2), opts2);
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   168
 }
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   169
+#endif
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   170
 
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   171
 TEST(CommandLineTest, HideUnrelatedOptions) {
92717ce71105 24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   172
   StackOption<int> TestOption1("hide-option-1");