blob: 4351e2ca6f73dfee87c993c724fd031f077f687e [file] [log] [blame]
Alex Deymo42432912013-07-12 20:21:15 -07001// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_FAKE_HARDWARE_H__
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_FAKE_HARDWARE_H__
7
8#include "update_engine/hardware_interface.h"
9
Alex Deymo42432912013-07-12 20:21:15 -070010namespace chromeos_update_engine {
11
12// Implements a fake hardware interface used for testing.
13class FakeHardware : public HardwareInterface {
14 public:
J. Richard Barnette4da2cc12013-10-28 16:11:10 -070015 FakeHardware()
J. Richard Barnette522d36f2013-10-28 17:22:12 -070016 : boot_device_("/dev/sdz5"),
J. Richard Barnette056b0ab2013-10-29 15:24:56 -070017 is_official_build_(true),
18 is_normal_boot_mode_(true),
J. Richard Barnette522d36f2013-10-28 17:22:12 -070019 hardware_class_("Fake HWID BLAH-1234"),
20 firmware_version_("Fake Firmware v1.0.1"),
21 ec_version_("Fake EC v1.0a") {}
Alex Deymo42432912013-07-12 20:21:15 -070022
23 // HardwareInterface methods.
24 virtual const std::string BootDevice() { return boot_device_; }
J. Richard Barnette056b0ab2013-10-29 15:24:56 -070025 virtual bool IsOfficialBuild() { return is_official_build_; }
26 virtual bool IsNormalBootMode() { return is_normal_boot_mode_; }
J. Richard Barnette522d36f2013-10-28 17:22:12 -070027 virtual std::string GetHardwareClass() { return hardware_class_; }
28 virtual std::string GetFirmwareVersion() { return firmware_version_; }
29 virtual std::string GetECVersion() { return ec_version_; }
Alex Deymo42432912013-07-12 20:21:15 -070030
31 // Setters
32 void SetBootDevice(const std::string boot_device) {
33 boot_device_ = boot_device;
34 }
Alex Deymo42432912013-07-12 20:21:15 -070035
J. Richard Barnette056b0ab2013-10-29 15:24:56 -070036 void SetIsOfficialBuild(bool is_official_build) {
37 is_official_build_ = is_official_build;
38 }
39
40 void SetIsNormalBootMode(bool is_normal_boot_mode) {
41 is_normal_boot_mode_ = is_normal_boot_mode;
42 }
43
J. Richard Barnette522d36f2013-10-28 17:22:12 -070044 void SetHardwareClass(std::string hardware_class) {
45 hardware_class_ = hardware_class;
46 }
47
48 void SetFirmwareVersion(std::string firmware_version) {
49 firmware_version_ = firmware_version;
50 }
51
52 void SetECVersion(std::string ec_version) {
53 ec_version_ = ec_version;
54 }
55
Alex Deymo42432912013-07-12 20:21:15 -070056 private:
57 std::string boot_device_;
J. Richard Barnette056b0ab2013-10-29 15:24:56 -070058 bool is_official_build_;
59 bool is_normal_boot_mode_;
J. Richard Barnette522d36f2013-10-28 17:22:12 -070060 std::string hardware_class_;
61 std::string firmware_version_;
62 std::string ec_version_;
Alex Deymo42432912013-07-12 20:21:15 -070063
64 DISALLOW_COPY_AND_ASSIGN(FakeHardware);
65};
66
67} // namespace chromeos_update_engine
68
69#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_FAKE_HARDWARE_H__