1//===-- main.cpp ------------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#include <cstdlib> 11#include <string> 12#include <fstream> 13#include <iostream> 14 15int numberfn() 16{ 17 return 0x5a; 18} 19 20int 21main(int argc, char const *argv[]) 22{ 23 // The program writes its output to the following file: 24 // 25 // o "output1.txt" for test_pass_host_env_vars() test case 26 // o "output2.txt" for test_run_args_and_env_vars_with_dsym() test case 27 // o "output2.txt" for test_run_args_and_env_vars_with_dwarf() test case 28 std::ofstream outfile; 29 if (argc == 1) 30 outfile.open("output1.txt"); 31 else 32 outfile.open("output2.txt"); 33 34 for (unsigned i = 0; i < argc; ++i) { 35 std::string theArg(argv[i]); 36 if (i == 1 && "A" == theArg) 37 outfile << "argv[1] matches\n"; 38 39 if (i == 2 && "B" == theArg) 40 outfile << "argv[2] matches\n"; 41 42 if (i == 3 && "C" == theArg) 43 outfile << "argv[3] matches\n"; 44 } 45 46 // For passing environment vars from the debugger to the launched process. 47 if (::getenv("MY_ENV_VAR")) { 48 std::string MY_ENV_VAR(getenv("MY_ENV_VAR")); 49 if ("YES" == MY_ENV_VAR) { 50 outfile << "Environment variable 'MY_ENV_VAR' successfully passed.\n"; 51 } 52 } 53 54 55 // For passing host environment vars to the launched process. 56 if (::getenv("MY_HOST_ENV_VAR1")) { 57 std::string MY_HOST_ENV_VAR1(getenv("MY_HOST_ENV_VAR1")); 58 if ("VAR1" == MY_HOST_ENV_VAR1) { 59 outfile << "The host environment variable 'MY_HOST_ENV_VAR1' successfully passed.\n"; 60 } 61 } 62 63 if (::getenv("MY_HOST_ENV_VAR2")) { 64 std::string MY_HOST_ENV_VAR2(getenv("MY_HOST_ENV_VAR2")); 65 if ("VAR2" == MY_HOST_ENV_VAR2) { 66 outfile << "The host environment variable 'MY_HOST_ENV_VAR2' successfully passed.\n"; 67 } 68 } 69 70 std::cerr << "This message should go to standard error.\n"; 71 std::cout << "This message should go to standard out.\n"; 72 73 outfile.close(); 74 return numberfn(); 75} 76