[kvm-unit-tests,PULL,4/4] powerpc: Report missing features as "skip", not as "expected failure"
diff mbox

Message ID 1530007279-26545-5-git-send-email-thuth@redhat.com
State New
Headers show

Commit Message

Thomas Huth June 26, 2018, 10:01 a.m. UTC
Missing CPU or hypervisor features are not a real error, so we should
rather report a "skip" here than an "expected failure".

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 powerpc/spapr_hcall.c |  6 ++++--
 powerpc/tm.c          | 26 ++++++++++++++++----------
 2 files changed, 20 insertions(+), 12 deletions(-)

Patch
diff mbox

diff --git a/powerpc/spapr_hcall.c b/powerpc/spapr_hcall.c
index ce495f4..524d896 100644
--- a/powerpc/spapr_hcall.c
+++ b/powerpc/spapr_hcall.c
@@ -118,9 +118,11 @@  static void test_h_random(int argc, char **argv)
 
 	/* H_RANDOM is optional - so check for sane return values first */
 	rc = h_random(&rval);
-	report_xfail("h-call available", rc == H_FUNCTION, rc == H_SUCCESS);
-	if (rc != H_SUCCESS)
+	if (rc == H_FUNCTION) {
+		report_skip("h-call is not available");
 		return;
+	}
+	report("h-call can be used successfully", rc == H_SUCCESS);
 
 	val0 = 0ULL;
 	val1 = ~0ULL;
diff --git a/powerpc/tm.c b/powerpc/tm.c
index ff7b2f9..bd56baa 100644
--- a/powerpc/tm.c
+++ b/powerpc/tm.c
@@ -35,15 +35,17 @@  static void cpu_has_tm(int fdtnode, u64 regval __unused, void *ptr)
 		*(int *)ptr += 1;
 }
 
-/* Check whether all CPU nodes have the TM flag */
-static bool all_cpus_have_tm(void)
+/* Check amount of CPUs nodes that have the TM flag */
+static int count_cpus_with_tm(void)
 {
 	int ret;
 	int available = 0;
 
 	ret = dt_for_each_cpu_node(cpu_has_tm, &available);
+	if (ret < 0)
+		return ret;
 
-	return ret == 0 && available == nr_cpus;
+	return available;
 }
 
 static int h_cede(void)
@@ -136,16 +138,18 @@  struct {
 
 int main(int argc, char **argv)
 {
-	bool all, has_tm;
-	int i;
+	bool all;
+	int i, cpus_with_tm;
 
 	report_prefix_push("tm");
 
-	has_tm = all_cpus_have_tm();
-	report_xfail("TM available in 'ibm,pa-features' property",
-		     !has_tm, has_tm);
-	if (!has_tm)
-		return report_summary();
+	cpus_with_tm = count_cpus_with_tm();
+	if (cpus_with_tm == 0) {
+		report_skip("TM is not available");
+		goto done;
+	}
+	report("TM available in all 'ibm,pa-features' properties",
+	       cpus_with_tm == nr_cpus);
 
 	all = argc == 1 || !strcmp(argv[1], "all");
 
@@ -157,5 +161,7 @@  int main(int argc, char **argv)
 		}
 	}
 
+done:
+	report_prefix_pop();
 	return report_summary();
 }