Blame SOURCES/kvm-tests-arm-cpu-features-Check-feature-default-values.patch

902636
From 323889aa2182bf39df10f1caf43f22daea2d7d37 Mon Sep 17 00:00:00 2001
902636
From: Andrew Jones <drjones@redhat.com>
902636
Date: Fri, 31 Jan 2020 14:23:12 +0000
902636
Subject: [PATCH 10/15] tests/arm-cpu-features: Check feature default values
902636
MIME-Version: 1.0
902636
Content-Type: text/plain; charset=UTF-8
902636
Content-Transfer-Encoding: 8bit
902636
902636
RH-Author: Andrew Jones <drjones@redhat.com>
902636
Message-id: <20200131142314.13175-4-drjones@redhat.com>
902636
Patchwork-id: 93626
902636
O-Subject: [RHEL-AV-8.2.0 qemu-kvm PATCH 3/5] tests/arm-cpu-features: Check feature default values
902636
Bugzilla: 1647366
902636
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
902636
RH-Acked-by: Auger Eric <eric.auger@redhat.com>
902636
RH-Acked-by: Gavin Shan <gshan@redhat.com>
902636
902636
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1647366
902636
902636
Author: Andrew Jones <drjones@redhat.com>
902636
Date:   Thu, 30 Jan 2020 16:02:06 +0000
902636
902636
    tests/arm-cpu-features: Check feature default values
902636
902636
    If we know what the default value should be then we can test for
902636
    that as well as the feature existence.
902636
902636
    Signed-off-by: Andrew Jones <drjones@redhat.com>
902636
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
902636
    Message-id: 20200120101023.16030-5-drjones@redhat.com
902636
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
902636
902636
(cherry picked from commit 789a35efb583464f9fcd5d871a7fd6164318bb91)
902636
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
902636
---
902636
 tests/arm-cpu-features.c | 37 ++++++++++++++++++++++++++++---------
902636
 1 file changed, 28 insertions(+), 9 deletions(-)
902636
902636
diff --git a/tests/arm-cpu-features.c b/tests/arm-cpu-features.c
902636
index 6e99aa9..89285ca 100644
902636
--- a/tests/arm-cpu-features.c
902636
+++ b/tests/arm-cpu-features.c
902636
@@ -159,6 +159,25 @@ static bool resp_get_feature(QDict *resp, const char *feature)
902636
     qobject_unref(_resp);                                              \
902636
 })
902636
 
902636
+#define assert_feature(qts, cpu_type, feature, expected_value)         \
902636
+({                                                                     \
902636
+    QDict *_resp, *_props;                                             \
902636
+                                                                       \
902636
+    _resp = do_query_no_props(qts, cpu_type);                          \
902636
+    g_assert(_resp);                                                   \
902636
+    g_assert(resp_has_props(_resp));                                   \
902636
+    _props = resp_get_props(_resp);                                    \
902636
+    g_assert(qdict_get(_props, feature));                              \
902636
+    g_assert(qdict_get_bool(_props, feature) == (expected_value));     \
902636
+    qobject_unref(_resp);                                              \
902636
+})
902636
+
902636
+#define assert_has_feature_enabled(qts, cpu_type, feature)             \
902636
+    assert_feature(qts, cpu_type, feature, true)
902636
+
902636
+#define assert_has_feature_disabled(qts, cpu_type, feature)            \
902636
+    assert_feature(qts, cpu_type, feature, false)
902636
+
902636
 static void assert_type_full(QTestState *qts)
902636
 {
902636
     const char *error;
902636
@@ -405,16 +424,16 @@ static void test_query_cpu_model_expansion(const void *data)
902636
     assert_error(qts, "host", "The CPU type 'host' requires KVM", NULL);
902636
 
902636
     /* Test expected feature presence/absence for some cpu types */
902636
-    assert_has_feature(qts, "max", "pmu");
902636
-    assert_has_feature(qts, "cortex-a15", "pmu");
902636
+    assert_has_feature_enabled(qts, "max", "pmu");
902636
+    assert_has_feature_enabled(qts, "cortex-a15", "pmu");
902636
     assert_has_not_feature(qts, "cortex-a15", "aarch64");
902636
 
902636
     if (g_str_equal(qtest_get_arch(), "aarch64")) {
902636
-        assert_has_feature(qts, "max", "aarch64");
902636
-        assert_has_feature(qts, "max", "sve");
902636
-        assert_has_feature(qts, "max", "sve128");
902636
-        assert_has_feature(qts, "cortex-a57", "pmu");
902636
-        assert_has_feature(qts, "cortex-a57", "aarch64");
902636
+        assert_has_feature_enabled(qts, "max", "aarch64");
902636
+        assert_has_feature_enabled(qts, "max", "sve");
902636
+        assert_has_feature_enabled(qts, "max", "sve128");
902636
+        assert_has_feature_enabled(qts, "cortex-a57", "pmu");
902636
+        assert_has_feature_enabled(qts, "cortex-a57", "aarch64");
902636
 
902636
         sve_tests_default(qts, "max");
902636
 
902636
@@ -451,8 +470,8 @@ static void test_query_cpu_model_expansion_kvm(const void *data)
902636
         QDict *resp;
902636
         char *error;
902636
 
902636
-        assert_has_feature(qts, "host", "aarch64");
902636
-        assert_has_feature(qts, "host", "pmu");
902636
+        assert_has_feature_enabled(qts, "host", "aarch64");
902636
+        assert_has_feature_enabled(qts, "host", "pmu");
902636
 
902636
         assert_error(qts, "cortex-a15",
902636
             "We cannot guarantee the CPU type 'cortex-a15' works "
902636
-- 
902636
1.8.3.1
902636