blob: 42fd19d3ae3789fa20f8e503f6669ce3b480b4a5 [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <base/logging.h>
#include <base/message_loop/message_loop.h>
#include "diagnostics/diag/diag_routine_requester.h"
namespace {
// URI on which the gRPC interface exposed by the diagnosticsd daemon is
// listening.
constexpr char kDiagnosticsdGrpcUri[] =
"unix:/run/diagnostics/grpc_sockets/diagnosticsd_socket";
} // namespace
// 'diag' command-line tool:
//
// Test driver for libdiag. Only supports running a single diagnostic routine
// at a time.
int main(int argc, char** argv) {
logging::InitLogging(logging::LoggingSettings());
base::MessageLoopForIO message_loop;
diagnostics::DiagRoutineRequester routine_requester;
routine_requester.Connect(kDiagnosticsdGrpcUri);
std::vector<diagnostics::grpc_api::DiagnosticRoutine> available_routines =
routine_requester.GetAvailableRoutines();
if (available_routines.empty()) {
std::cout << "Failed to retrieve available routines." << std::endl;
return EXIT_FAILURE;
}
for (auto routine : available_routines)
std::cout << "Available routine: " << routine << std::endl;
return EXIT_SUCCESS;
}