summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor@chromium.org>2018-08-27 11:34:20 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-08-31 05:22:52 -0700
commitcaa2e5a4ac45c5e107b6802db99c158083321bc4 (patch)
tree2338efb6819d29bba1b3553656c40d40fa8d18d2 /tests
parent9dec40e2420d5faf170fea328b331f9e695cf7d9 (diff)
downloadcrosvm-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.rs7
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;