Re-land "Add ability to check /etc/lsb-release for HWID"
This reverts commit 33ab35b140d9d0da49d971cad26fb2f1b52215b0.
Add ability to check /etc/lsb-release for HWID
This is enabled by a compile-time option, only.
On certain boards HWID may not be available via normal means.
This functionality allows a compile-time choice to enable
behavior that will check /etc/lsb-release for an
HWID_OVERRIDE=<id> entry instead.
CQ-DEPEND=CL:186482
BUG=None
TEST=unit tests
Change-Id: I75a7bcf7219fbb19670647746735c814dacf7879
Reviewed-on: https://chromium-review.googlesource.com/187040
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/hwid_override_unittest.cc b/hwid_override_unittest.cc
new file mode 100644
index 0000000..01c9fa0
--- /dev/null
+++ b/hwid_override_unittest.cc
@@ -0,0 +1,55 @@
+// Copyright (c) 2012 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 "update_engine/hwid_override.h"
+
+#include <string>
+
+#include <base/file_path.h>
+#include <base/file_util.h>
+#include <base/files/scoped_temp_dir.h>
+#include <gtest/gtest.h>
+
+namespace chromeos_update_engine {
+
+class HwidOverrideTest : public ::testing::Test {
+ public:
+ HwidOverrideTest() {}
+ virtual ~HwidOverrideTest() {}
+
+ virtual void SetUp() {
+ ASSERT_TRUE(tempdir_.CreateUniqueTempDir());
+ ASSERT_TRUE(file_util::CreateDirectory(tempdir_.path().Append("etc")));
+ }
+
+ protected:
+ base::ScopedTempDir tempdir_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(HwidOverrideTest);
+};
+
+TEST_F(HwidOverrideTest, ReadGood) {
+ std::string expected_hwid("expected");
+ std::string keyval(HwidOverride::kHwidOverrideKey);
+ keyval += ("=" + expected_hwid);
+ ASSERT_EQ(file_util::WriteFile(tempdir_.path().Append("etc/lsb-release"),
+ keyval.c_str(), keyval.length()),
+ keyval.length());
+ EXPECT_EQ(expected_hwid, HwidOverride::Read(tempdir_.path()));
+}
+
+TEST_F(HwidOverrideTest, ReadNothing) {
+ std::string keyval("SOMETHING_ELSE=UNINTERESTING");
+ ASSERT_EQ(file_util::WriteFile(tempdir_.path().Append("etc/lsb-release"),
+ keyval.c_str(), keyval.length()),
+ keyval.length());
+ EXPECT_EQ(std::string(), HwidOverride::Read(tempdir_.path()));
+}
+
+TEST_F(HwidOverrideTest, ReadFailure) {
+ EXPECT_EQ(std::string(), HwidOverride::Read(tempdir_.path()));
+}
+
+} // namespace chromeos_update_engine