| /* Copyright 2021 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 "hardware_verifier/cli.h" |
| #include "hardware_verifier/dbus_adaptor.h" |
| #include "hardware_verifier/hardware_verifier.pb.h" |
| #include "hardware_verifier/hw_verification_report_getter.h" |
| #include "hardware_verifier/hw_verification_report_getter_impl.h" |
| |
| namespace hardware_verifier { |
| |
| namespace { |
| |
| using ReportGetterErrorCode = HwVerificationReportGetter::ErrorCode; |
| |
| } // namespace |
| |
| void DBusAdaptor::VerifyComponents(VerifyComponentsResponseCallback callback) { |
| VerifyComponentsReply reply; |
| ReportGetterErrorCode vr_getter_error; |
| auto report = vr_getter_->Get("", "", &vr_getter_error); |
| ErrorCode error; |
| switch (vr_getter_error) { |
| case ReportGetterErrorCode::kErrorCodeNoError: |
| error = ERROR_OK; |
| break; |
| case ReportGetterErrorCode::kErrorCodeMissingDefaultHwVerificationSpecFile: |
| error = ERROR_SKIPPED; |
| break; |
| case ReportGetterErrorCode::kErrorCodeInvalidHwVerificationSpecFile: |
| error = ERROR_INVALID_HW_VERIFICATION_SPEC_FILE; |
| break; |
| case ReportGetterErrorCode::kErrorCodeInvalidProbeResultFile: |
| error = ERROR_INVALID_PROBE_RESULT_FILE; |
| break; |
| case ReportGetterErrorCode::kErrorCodeProbeFail: |
| error = ERROR_PROBE_FAIL; |
| break; |
| case ReportGetterErrorCode:: |
| kErrorCodeProbeResultHwVerificationSpecMisalignment: |
| error = ERROR_PROBE_RESULT_HW_VERIFICATION_SPEC_MISALIGNMENT; |
| break; |
| default: |
| error = ERROR_OTHER_ERROR; |
| break; |
| } |
| reply.set_error(error); |
| if (report) |
| reply.mutable_hw_verification_report()->Swap(&*report); |
| callback->Return(reply); |
| } |
| |
| } // namespace hardware_verifier |