Fix OCaml bindings crash, PR8847.
[oota-llvm.git] / unittests / Support / CommandLineTest.cpp
index 70d6950f8b09922a04aea49249fee4def57c768f..72fa24a5ac0cd921a4153a8cf9ce632b4a6479d1 100644 (file)
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Config/config.h"
 
 #include "gtest/gtest.h"
 
@@ -24,17 +25,26 @@ class TempEnvVar {
       : name(name) {
     const char *old_value = getenv(name);
     EXPECT_EQ(NULL, old_value) << old_value;
+#if HAVE_SETENV
     setenv(name, value, true);
+#else
+#   define SKIP_ENVIRONMENT_TESTS
+#endif
   }
 
   ~TempEnvVar() {
+#if HAVE_SETENV
+    // Assume setenv and unsetenv come together.
     unsetenv(name);
+#endif
   }
 
  private:
   const char *const name;
 };
 
+#ifndef SKIP_ENVIRONMENT_TESTS
+
 const char test_env_var[] = "LLVM_TEST_COMMAND_LINE_FLAGS";
 
 cl::opt<std::string> EnvironmentTestOption("env-test-opt");
@@ -45,4 +55,6 @@ TEST(CommandLineTest, ParseEnvironment) {
   EXPECT_EQ("hello", EnvironmentTestOption);
 }
 
+#endif  // SKIP_ENVIRONMENT_TESTS
+
 }  // anonymous namespace