#include <iostream>
#include "base/command_line.h"
#include "base/notreached.h"
#include "remoting/host/base/host_exit_codes.h"
namespace {
constexpr char kEvaluateTest[] = "test";
constexpr char kEvaluateCrash[] = "crash";
constexpr char kEvaluateSuccess[] = "success";
constexpr char kEvaluateCapabilitySwitchName[] = "evaluate-type";
const int kInvalidCommandLineExitCode = 3;
int EvaluateTest() {
std::cout << "In EvaluateTest(): Line 1\n"
"In EvaluateTest(): Line 2";
std::cerr << "In EvaluateTest(): Error Line 1\n"
"In EvaluateTest(): Error Line 2";
return 234;
}
int EvaluateCrash() {
NOTREACHED();
}
int EvaluateSuccess() {
std::cout << "Success" << std::endl;
return 0;
}
int EvaluateCapabilityLocally(const std::string& type) {
if (type == kEvaluateTest) {
return EvaluateTest();
}
if (type == kEvaluateCrash) {
return EvaluateCrash();
}
if (type == kEvaluateSuccess) {
return EvaluateSuccess();
}
return kInvalidCommandLineExitCode;
}
}
int main(int argc, char** argv) {
base::CommandLine::Init(argc, argv);
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(kEvaluateCapabilitySwitchName)) {
return EvaluateCapabilityLocally(
command_line->GetSwitchValueASCII(kEvaluateCapabilitySwitchName));
}
return kInvalidCommandLineExitCode;
}