diff options
author | Dmitry Torokhov <dtor@chromium.org> | 2018-08-27 11:34:20 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-08-31 05:22:52 -0700 |
commit | caa2e5a4ac45c5e107b6802db99c158083321bc4 (patch) | |
tree | 2338efb6819d29bba1b3553656c40d40fa8d18d2 /tests | |
parent | 9dec40e2420d5faf170fea328b331f9e695cf7d9 (diff) | |
download | crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.tar crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.tar.gz crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.tar.bz2 crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.tar.lz crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.tar.xz crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.tar.zst crosvm-caa2e5a4ac45c5e107b6802db99c158083321bc4.zip |
plugin: do not fail crosvm_vcpu_get_msrs() if we failed to fetch some
KVM_GET_MSRS may return less MSRs that were requested; do not fail but instead let callers to know how many were fetched. BUG=None TEST=cargo test --features plugin Change-Id: Ie14a3d38b66bfe34f5279543bea9c6c78423527e Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1192232 Reviewed-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/plugins.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tests/plugins.rs b/tests/plugins.rs index 7d2d8ff..987b033 100644 --- a/tests/plugins.rs +++ b/tests/plugins.rs @@ -411,6 +411,7 @@ fn test_msrs() { #define KILL_ADDRESS 0x3000 int g_kill_evt; + uint32_t g_msr2_count; struct kvm_msr_entry g_msr2; int setup_vm(struct crosvm *crosvm, void *mem) { @@ -445,7 +446,7 @@ fn test_msrs() { { uint64_t dummy = 1; g_msr2.index = MSR2_INDEX; - crosvm_vcpu_get_msrs(vcpu, 1, &g_msr2); + crosvm_vcpu_get_msrs(vcpu, 1, &g_msr2, &g_msr2_count); write(g_kill_evt, &dummy, sizeof(dummy)); return 1; } @@ -458,6 +459,10 @@ fn test_msrs() { fprintf(stderr, "msr1 has unexpected value: 0x%x\n", msr1_data); return 1; } + if (g_msr2_count != 1) { + fprintf(stderr, "incorrect number of returned MSRSs: %d\n", g_msr2_count); + return 1; + } if (g_msr2.data != MSR2_DATA) { fprintf(stderr, "msr2 has unexpected value: 0x%x\n", g_msr2.data); return 1; |