mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-05 02:02:52 +00:00
integration_tests: Simple backwards compatibility test
The goal is to detect (possibly backwards imcompatible) changes to the virtual hardware exposed to guests. To start with, it only checks the PCI devices. Example failure output when the iommu is removed: thread 'backcompat_test_simple_lspci' panicked at 'assertion failed: `(left == right)` left: `"00:00.0 0600: 8086:1237\n00:01.0 00ff: 1af4:1057 (rev 01)\n00:02.0 00ff: 1af4:1042 (rev 01)\n00:03.0 00ff: 1af4:1044 (rev 01)\n00:04.0 00ff: 1af4:1045 (rev 01)\n00:05.0 0c03: 1b73 :1000\n00:06.0 ffff: 1b36:0011 (rev 01)\n00:07.0 0604: 8086:3420"`, right: `"00:00.0 0600: 8086:1237\n00:01.0 00ff: 1af4:1042 (rev 01)\n00:02.0 00ff: 1af4:1044 (rev 01)\n00:03.0 00ff: 1af4:1045 (rev 01)\n00:04.0 0c03: 1b73:1000\n00:05.0 ffff: 1b36:0011 (re v 01)\n00:06.0 0604: 8086:3420"`: PCI Devices changed: <<< Expected <<< 00:00.0 0600: 8086:1237 00:01.0 00ff: 1af4:1057 (rev 01) 00:02.0 00ff: 1af4:1042 (rev 01) 00:03.0 00ff: 1af4:1044 (rev 01) 00:04.0 00ff: 1af4:1045 (rev 01) 00:05.0 0c03: 1b73:1000 00:06.0 ffff: 1b36:0011 (rev 01) 00:07.0 0604: 8086:3420 <<<<<<<<<<<<<<<< >>> Got >>> 00:00.0 0600: 8086:1237 00:01.0 00ff: 1af4:1042 (rev 01) 00:02.0 00ff: 1af4:1044 (rev 01) 00:03.0 00ff: 1af4:1045 (rev 01) 00:04.0 0c03: 1b73:1000 00:05.0 ffff: 1b36:0011 (rev 01) 00:06.0 0604: 8086:3420 >>>>>>>>>>>>>>>> ', integration_tests/tests/backcompat.rs:21:5 ... vm serial output ... `pub mod` is used to avoid deadcode warnings. Changed boot.rs to do the same for consistency and future proofing. BUG=b:231365736 TEST=./integration_tests/run Change-Id: Ia33d6631e3385ce3633cadff552a6253bb486f93 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3795888 Auto-Submit: Frederick Mayle <fmayle@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: David Stevens <stevensd@chromium.org> Reviewed-by: Dennis Kempin <denniskempin@google.com> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org> Tested-by: Frederick Mayle <fmayle@google.com>
This commit is contained in:
parent
4773b4db77
commit
bc927456ad
3 changed files with 39 additions and 1 deletions
31
integration_tests/tests/backcompat.rs
Normal file
31
integration_tests/tests/backcompat.rs
Normal file
|
@ -0,0 +1,31 @@
|
|||
// 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.
|
||||
pub mod fixture;
|
||||
use fixture::Config;
|
||||
use fixture::TestVm;
|
||||
|
||||
// Tests for possible backwards compatibility issues.
|
||||
//
|
||||
// There is no backwards compatibility policy yet, these are just "change detector" tests. If you
|
||||
// break a test, make sure the change is intended and then ask in go/crosvm-chat to see if anyone
|
||||
// objects to updating the golden file.
|
||||
|
||||
// Many changes to PCI devices can cause issues, e.g. some users depend on crosvm always choosing
|
||||
// the same PCI slots for particular devices.
|
||||
#[test]
|
||||
fn backcompat_test_simple_lspci() {
|
||||
let mut vm = TestVm::new(Config::new()).unwrap();
|
||||
let expected = include_str!("goldens/backcompat_test_simple_lspci.txt").trim();
|
||||
let result = vm
|
||||
.exec_in_guest("lspci -n")
|
||||
.unwrap()
|
||||
.trim()
|
||||
.replace("\r", "");
|
||||
assert_eq!(
|
||||
expected,
|
||||
result,
|
||||
"PCI Devices changed:\n<<< Expected <<<\n{}\n<<<<<<<<<<<<<<<<\n>>> Got >>>\n{}\n>>>>>>>>>>>>>>>>\n",
|
||||
expected, result
|
||||
);
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright 2020 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.
|
||||
mod fixture;
|
||||
pub mod fixture;
|
||||
use fixture::Config;
|
||||
use fixture::TestVm;
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
00:00.0 0600: 8086:1237
|
||||
00:01.0 00ff: 1af4:1042 (rev 01)
|
||||
00:02.0 00ff: 1af4:1044 (rev 01)
|
||||
00:03.0 00ff: 1af4:1045 (rev 01)
|
||||
00:04.0 0c03: 1b73:1000
|
||||
00:05.0 ffff: 1b36:0011 (rev 01)
|
||||
00:06.0 0604: 8086:3420
|
Loading…
Reference in a new issue