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