blob: 76c9c604ca575c57d93e1b6ba2ccd72839d96257 [file]
// Copyright 2023 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLEX_HWIS_TELEMETRY_FOR_TESTING_H_
#define FLEX_HWIS_TELEMETRY_FOR_TESTING_H_
#include <string>
#include <utility>
#include <vector>
#include <diagnostics/mojom/public/cros_healthd_probe.mojom.h>
inline constexpr char kSystemVersion[] = "LENOVO";
inline constexpr char kSystemProductName[] = "20HQS1MX00";
inline constexpr char kSystemProductVersion[] = "ThinkPad X1 Carbon 5th";
inline constexpr char kSystemBiosVersion[] = "N1MET37W";
inline constexpr ash::cros_healthd::mojom::BootMode kBootMode =
ash::cros_healthd::mojom::BootMode::kCrosEfiSecure;
inline constexpr bool kSystemUefi = true;
inline constexpr bool kSystemSecureboot = true;
inline constexpr char kSystemUefiStr[] = "true";
inline constexpr char kSystemSecurebootStr[] = "true";
inline constexpr char kCpuModelName[] = "Mock CPU Model";
inline constexpr int kMemoryKib = 16131552;
inline constexpr char kMemoryKibStr[] = "16131552";
inline constexpr char kPciId[] = "pci:0bda:8153";
inline constexpr char kSecondPciId[] = "pci:8086:2a43";
inline constexpr char kUsbId[] = "usb:0bda:8153";
inline constexpr char kBusPciName[] = "Mock PCI Vendor I219-LM";
inline constexpr char kBusUsbName[] = "Mock USB Vendor I219-LM";
inline constexpr char kDriver[] = "r8152";
inline constexpr char kGraphicsVersion[] = "OpenGL ES 3.2 Mesa 22.3.3";
inline constexpr char kGraphicsVendor[] = "Intel";
inline constexpr char kGraphicsRenderer[] = "Mesa Intel(R) HD Graphics 620";
inline constexpr char kGraphicsShadingVer[] = "OpenGL ES GLSL ES 3.20";
inline constexpr char kGraphicsExtension1[] = "GL_EXT_blend_minmax";
inline constexpr char kGraphicsExtension2[] = "GL_EXT_multi_draw_arrays";
inline constexpr char kGraphicsExtension3[] = "GL_MESA_bgra";
inline constexpr char kTouchpadLibraryName[] = "gestures";
inline constexpr char kTouchpadDriverName[] = "hid-multitouch";
inline constexpr char kTouchpadVendorId[] = "0x000";
inline constexpr char kTouchpadProductId[] = "0x001";
inline constexpr int kTpmFamily = 0x322e3000;
inline constexpr char kTpmFamilyStr[] = "2.0";
inline constexpr int kTpmSpecLevel = 0;
inline constexpr char kTpmSpecLevelStr[] = "0";
inline constexpr int kTpmManufacturer = 0;
inline constexpr char kTpmManufacturerStr[] = "0";
inline constexpr char kTpmDidVid[] = "test";
inline constexpr char kPciVendorName[] = "Mock PCI Vendor";
inline constexpr char kUsbVendorName[] = "Mock USB Vendor";
inline constexpr char kBusProductName[] = "I219-LM";
inline constexpr int kPciBusVendorId = 0x0bda;
inline constexpr int kPciBusDeviceId = 0x8153;
inline constexpr int kSecondPciBusVendorId = 0x8086;
inline constexpr int kSecondPciBusDeviceId = 0x2a43;
inline constexpr char kPciBusDriver[] = "r8152";
inline constexpr bool kTpmIsAllowed = true;
inline constexpr char kTpmIsAllowedStr[] = "true";
inline constexpr bool kTpmOwned = true;
inline constexpr char kTpmOwnedStr[] = "true";
namespace flex_hwis {
namespace mojom = ::ash::cros_healthd::mojom;
// Builds a mojom::TelemetryInfoPtr for use in tests.
class TelemetryForTesting {
public:
// Fill in default fake system information.
void AddSystemInfo();
// Fill in default fake cpu information.
void AddCpuInfo();
// Fill in default fake memory information.
void AddMemoryInfo();
// Fill in default fake pci bus information with a specified device class.
void AddPciBusInfo(const mojom::BusDeviceClass dev_class);
// Fill in fake pci bus information.
void AddPciBusInfo(const mojom::BusDeviceClass dev_class,
const std::string& vendor,
const std::string& product,
uint16_t vendor_id,
uint16_t device_id,
const std::string& driver);
// Fill in default fake usb bus information with a specified device class.
void AddUsbBusInfo(const mojom::BusDeviceClass dev_class);
// Fill in fake usb bus information.
void AddUsbBusInfo(const mojom::BusDeviceClass dev_class,
const std::string& vendor,
const std::string& product,
uint16_t vendor_id,
uint16_t product_id,
const std::vector<std::string>& drivers);
// Fill in default fake graphics information.
void AddGraphicsInfo();
// Fill in default fake input information.
void AddInputInfo();
// Fill in default fake tpm information.
void AddTpmInfo();
// Returns a copy of the TelemetryInfoPtr we've been building.
mojom::TelemetryInfoPtr Get() const;
private:
mojom::TelemetryInfoPtr info_ = mojom::TelemetryInfo::New();
// Manipulating the bus_result directly is difficult.
// Collect devices to add at the last minute.
std::vector<mojom::BusDevicePtr> devices_;
};
} // namespace flex_hwis
#endif // FLEX_HWIS_TELEMETRY_FOR_TESTING_H_