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