summaryrefslogtreecommitdiffstats
path: root/test/kvm-eviction.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2023-02-07 07:38:12 -0600
committerLouis Burda <quent.burda@gmail.com>2023-02-07 07:39:04 -0600
commita2cdd64c6f915d969dfa21e23049ff4b3836b13d (patch)
treecfb335e21f99cd584d4821991d526d56cc431d00 /test/kvm-eviction.c
parent546a50cb8bb80775c71e7469f2a2891ac1fa1b24 (diff)
downloadcachepc-a2cdd64c6f915d969dfa21e23049ff4b3836b13d.tar.gz
cachepc-a2cdd64c6f915d969dfa21e23049ff4b3836b13d.zip
Add combined testcase based on exit codes
Diffstat (limited to 'test/kvm-eviction.c')
-rw-r--r--test/kvm-eviction.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/test/kvm-eviction.c b/test/kvm-eviction.c
index 297c9da..ceb1abd 100644
--- a/test/kvm-eviction.c
+++ b/test/kvm-eviction.c
@@ -43,7 +43,7 @@ main(int argc, const char **argv)
uint8_t counts[2][SAMPLE_COUNT][L1_SETS];
uint8_t baseline[L1_SETS];
struct cpc_track_cfg cfg;
- int i, k, ret;
+ int i, k, ret, exitcode;
vmtype = "kvm";
if (argc > 1) vmtype = argv[1];
@@ -126,26 +126,35 @@ main(int argc, const char **argv)
}
/* check for measurment errors */
+ exitcode = 0;
for (i = 0; i < SAMPLE_COUNT; i++) {
for (k = 0; k < L1_SETS; k++) {
- if (counts[WITH][i][k] + baseline[k] > L1_ASSOC)
+ if (counts[WITH][i][k] + baseline[k] > L1_ASSOC) {
warnx("sample %i: With count OOB for set %i (=%i)",
i, k, counts[WITH][i][k] + baseline[k]);
+ exitcode = 1;
+ }
- if (counts[WITHOUT][i][k] + baseline[k] > L1_ASSOC)
+ if (counts[WITHOUT][i][k] + baseline[k] > L1_ASSOC) {
warnx("sample %i: Without count OOB for set %i (=%i)",
i, k, counts[WITHOUT][i][k] + baseline[k]);
+ exitcode = 1;
+ }
}
- if (!counts[WITH][i][TARGET_SET])
+ if (!counts[WITH][i][TARGET_SET]) {
warnx("sample %i: Missing eviction in target set %i (=%i,%i)",
i, TARGET_SET, counts[WITH][i][TARGET_SET],
counts[WITH][i][TARGET_SET] + baseline[TARGET_SET]);
+ exitcode = 1;
+ }
}
vm_deinit(&vms[WITH]);
vm_deinit(&vms[WITHOUT]);
kvm_setup_deinit();
+
+ return exitcode;
}