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 numberfn()15int numberfn() 16 { 17 return 0x5a; 18 } 19 20 int main(int argc,char const * argv[])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