Skip to content
Snippets Groups Projects
Commit 07dffaaa authored by Vitaly Kuznetsov's avatar Vitaly Kuznetsov
Browse files

selftests: KVM: Provide descriptive assertions in kvm_binary_stats_test

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2119111



commit 7eebae78
Author: Oliver Upton <oupton@google.com>
Date:   Tue Jul 19 14:31:33 2022 +0000

    selftests: KVM: Provide descriptive assertions in kvm_binary_stats_test

    As it turns out, tests sometimes fail. When that is the case, packing
    the test assertion with as much relevant information helps track down
    the problem more quickly.

    Sharpen up the stat descriptor assertions in kvm_binary_stats_test to
    more precisely describe the reason for the test assertion and which
    stat is to blame.

Signed-off-by: default avatarOliver Upton <oupton@google.com>
Reviewed-by: default avatarAndrew Jones <andrew.jones@linux.dev>
    Message-Id: <20220719143134.3246798-3-oliver.upton@linux.dev>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>

Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
parent 00e976dc
No related merge requests found
......@@ -31,6 +31,7 @@ static void stats_test(int stats_fd)
struct kvm_stats_desc *stats_desc;
u64 *stats_data;
struct kvm_stats_desc *pdesc;
u32 type, unit, base;
/* Read kvm stats header */
read_stats_header(stats_fd, &header);
......@@ -72,18 +73,21 @@ static void stats_test(int stats_fd)
/* Sanity check for fields in descriptors */
for (i = 0; i < header.num_desc; ++i) {
pdesc = get_stats_descriptor(stats_desc, i, &header);
type = pdesc->flags & KVM_STATS_TYPE_MASK;
unit = pdesc->flags & KVM_STATS_UNIT_MASK;
base = pdesc->flags & KVM_STATS_BASE_MASK;
/* Check name string */
TEST_ASSERT(strlen(pdesc->name) < header.name_size,
"KVM stats name (index: %d) too long", i);
/* Check type,unit,base boundaries */
TEST_ASSERT((pdesc->flags & KVM_STATS_TYPE_MASK) <= KVM_STATS_TYPE_MAX,
"Unknown KVM stats type");
TEST_ASSERT((pdesc->flags & KVM_STATS_UNIT_MASK) <= KVM_STATS_UNIT_MAX,
"Unknown KVM stats unit");
TEST_ASSERT((pdesc->flags & KVM_STATS_BASE_MASK) <= KVM_STATS_BASE_MAX,
"Unknown KVM stats base");
TEST_ASSERT(type <= KVM_STATS_TYPE_MAX,
"Unknown KVM stats (%s) type: %u", pdesc->name, type);
TEST_ASSERT(unit <= KVM_STATS_UNIT_MAX,
"Unknown KVM stats (%s) unit: %u", pdesc->name, unit);
TEST_ASSERT(base <= KVM_STATS_BASE_MAX,
"Unknown KVM stats (%s) base: %u", pdesc->name, base);
/*
* Check exponent for stats unit
......@@ -97,10 +101,14 @@ static void stats_test(int stats_fd)
case KVM_STATS_UNIT_NONE:
case KVM_STATS_UNIT_BYTES:
case KVM_STATS_UNIT_CYCLES:
TEST_ASSERT(pdesc->exponent >= 0, "Unsupported KVM stats unit");
TEST_ASSERT(pdesc->exponent >= 0,
"Unsupported KVM stats (%s) exponent: %i",
pdesc->name, pdesc->exponent);
break;
case KVM_STATS_UNIT_SECONDS:
TEST_ASSERT(pdesc->exponent <= 0, "Unsupported KVM stats unit");
TEST_ASSERT(pdesc->exponent <= 0,
"Unsupported KVM stats (%s) exponent: %i",
pdesc->name, pdesc->exponent);
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment