xref: /llvm-project/lldb/test/API/commands/settings/main.cpp (revision fdea9a4ec9b0d9585b8fe8a612686d9f44f40ddc)
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 Rupprecht int 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 Rupprecht main(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