[kvm-unit-tests PATCH] powerpc: Report missing features as "skip", not as "expected failure"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 powerpc/spapr_hcall.c |  6 ++++--
 powerpc/tm.c          | 26 ++++++++++++++++----------
 2 files changed, 20 insertions(+), 12 deletions(-)

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();
 }
-- 
1.8.3.1




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux