[PATCH kvm-unit-tests v2 06/12] x86/*: report skipped tests

Radim Krčmář
2015-12-17T17:54:13Z

No care to consistency or exhaustivity was given.

(svm-disabled test should be redone and it's weird that x86/hyperv_synic
is about the only one that does report_skip when unsupported.)

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
---
v2: remove double newline in enable_tsc_deadline_timer [Drew]

x86/apic.c | 7 +++----
x86/emulator.c | 2 +-
x86/hyperv_synic.c | 2 +-
x86/pku.c | 2 +-
x86/pmu.c | 2 +-
x86/smap.c | 2 +-
x86/svm.c | 2 +-
x86/tsc.c | 2 +-
8 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/x86/apic.c b/x86/apic.c
index d4eec529e535..a97fe5e5a6c5 100644
--- a/x86/apic.c
+++ b/x86/apic.c
@@ -27,7 +27,7 @@ static void tsc_deadline_timer_isr(isr_regs_t *regs)
++tdt_count;
}

-static void start_tsc_deadline_timer(void)
+static void __test_tsc_deadline_timer(void)
{
handle_irq(TSC_DEADLINE_TIMER_VECTOR, tsc_deadline_timer_isr);
irq_enable();
@@ -45,7 +45,6 @@ static int enable_tsc_deadline_timer(void)
if (cpuid(1).c & (1 << 24)) {
lvtt = TSC_DEADLINE_TIMER_MODE | TSC_DEADLINE_TIMER_VECTOR;
apic_write(APIC_LVTT, lvtt);
- start_tsc_deadline_timer();
return 1;
} else {
return 0;
@@ -55,9 +54,9 @@ static int enable_tsc_deadline_timer(void)
static void test_tsc_deadline_timer(void)
{
if(enable_tsc_deadline_timer()) {
- printf("tsc deadline timer enabled\n");
+ __test_tsc_deadline_timer();
} else {
- printf("tsc deadline timer not detected\n");
+ report_skip("tsc deadline timer not detected");
}
}

diff --git a/x86/emulator.c b/x86/emulator.c
index e5c1c6b9a2f3..b64a5fe0f3dc 100644
--- a/x86/emulator.c
+++ b/x86/emulator.c
@@ -1062,7 +1062,7 @@ static void illegal_movbe_handler(struct ex_regs *regs)
static void test_illegal_movbe(void)
{
if (!(cpuid(1).c & (1 << 22))) {
- printf("SKIP: illegal movbe\n");
+ report_skip("illegal movbe");
return;
}

diff --git a/x86/hyperv_synic.c b/x86/hyperv_synic.c
index 18d1295bfb37..602b79392bfd 100644
--- a/x86/hyperv_synic.c
+++ b/x86/hyperv_synic.c
@@ -228,7 +228,7 @@ int main(int ac, char **av)

report("Hyper-V SynIC test", ok);
} else {
- report("Hyper-V SynIC is not supported", true);
+ report_skip("Hyper-V SynIC is not supported");
}

return report_summary();
diff --git a/x86/pku.c b/x86/pku.c
index 0e00b9984d70..58971d21ed05 100644
--- a/x86/pku.c
+++ b/x86/pku.c
@@ -91,7 +91,7 @@ int main(int ac, char **av)

if (!(cpuid_indexed(7, 0).c & (1 << X86_FEATURE_PKU))) {
printf("PKU not enabled, exiting\n");
- exit(1);
+ return report_summary();
}

setup_vm();
diff --git a/x86/pmu.c b/x86/pmu.c
index 03f80190bb25..c68980044dee 100644
--- a/x86/pmu.c
+++ b/x86/pmu.c
@@ -387,7 +387,7 @@ int main(int ac, char **av)

if (!eax.split.version_id) {
printf("No pmu is detected!\n");
- return 1;
+ return report_summary();
}
printf("PMU version: %d\n", eax.split.version_id);
printf("GP counters: %d\n", eax.split.num_counters);
diff --git a/x86/smap.c b/x86/smap.c
index d8a7ae82dc00..0aa44054bd48 100644
--- a/x86/smap.c
+++ b/x86/smap.c
@@ -93,7 +93,7 @@ int main(int ac, char **av)

if (!(cpuid_indexed(7, 0).b & (1 << X86_FEATURE_SMAP))) {
printf("SMAP not enabled, exiting\n");
- exit(1);
+ return report_summary();
}

setup_vm();
diff --git a/x86/svm.c b/x86/svm.c
index 1046ddf73732..ff1a0f34b4bf 100644
--- a/x86/svm.c
+++ b/x86/svm.c
@@ -1064,7 +1064,7 @@ int main(int ac, char **av)

if (!(cpuid(0x80000001).c & 4)) {
printf("SVM not availble\n");
- return 0;
+ return report_summary();
}

setup_svm();
diff --git a/x86/tsc.c b/x86/tsc.c
index c71dc2a7abe0..ee247459fb42 100644
--- a/x86/tsc.c
+++ b/x86/tsc.c
@@ -43,5 +43,5 @@ int main()
test_rdtscp(0x100);
} else
printf("rdtscp not supported\n");
- return 0;
+ return report_summary();
}
--
2.6.4