blob: d41cc8cd85f75cc443a775330b3e9b1db747370c [file] [log] [blame]
// Copyright 2022 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.
package factory
import (
"context"
"time"
"chromiumos/tast/remote/bundles/cros/factory/fixture"
"chromiumos/tast/ssh"
"chromiumos/tast/testing"
"chromiumos/tast/testing/hwdep"
)
func init() {
testing.AddTest(&testing.Test{
Func: HWIDDatabase,
LacrosStatus: testing.LacrosVariantUnneeded,
Desc: "Test the flow from collecting materials, generating HWID database, to verifing the database is valid",
Contacts: []string{"lschyi@google.com", "chromeos-factory-eng@google.com"},
Attr: []string{"group:mainline", "informational"},
Timeout: 2 * time.Minute,
Fixture: fixture.EnsureToolkit,
// Skip "nyan_kitty" due to slow reboot speed.
HardwareDeps: hwdep.D(hwdep.SkipOnModel("kitty")),
SoftwareDeps: append([]string{"factory_flow"}, fixture.EnsureToolkitSoftwareDeps...),
})
}
func HWIDDatabase(ctx context.Context, s *testing.State) {
conn := s.DUT().Conn()
buildDatabaseCmd := conn.CommandContext(ctx, "hwid", "build-database")
if err := buildDatabaseCmd.Run(ssh.DumpLogOnError); err != nil {
s.Fatal("Failed to build the HWID database: ", err)
}
// Only verifies the format, probed components. As the database is built
// locally and checksum is not the testing target, skip the check of
// checksum here.
verifyDatabaseCmd := conn.CommandContext(ctx, "hwid", "verify-database", "--no-verify-checksum")
if err := verifyDatabaseCmd.Run(ssh.DumpLogOnError); err != nil {
s.Fatal("Verify built HWID database failed: ", err)
}
}