The refactoring of tool PMU events to have a PMU then adding the expr
literals to the tool PMU made it so that the literal system_tsc_freq
was only supported on x86. Update the test expectations to match -
namely the parsing is x86 specific and only yields a non-zero value on
Intel.

Fixes: 609aa2667f67 ("perf tool_pmu: Switch to standard pmu functions and json 
descriptions")
Reported-by: Athira Rajeev <atraj...@linux.vnet.ibm.com>
Closes: 
https://lore.kernel.org/linux-perf-users/20241022140156.98854-1-atraj...@linux.vnet.ibm.com/
Co-developed-by: Athira Rajeev <atraj...@linux.vnet.ibm.com>
Signed-off-by: Ian Rogers <irog...@google.com>
---
 tools/perf/tests/expr.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c
index 41ff1affdfcd..726cf8d4da28 100644
--- a/tools/perf/tests/expr.c
+++ b/tools/perf/tests/expr.c
@@ -75,14 +75,12 @@ static int test__expr(struct test_suite *t __maybe_unused, 
int subtest __maybe_u
        double val, num_cpus_online, num_cpus, num_cores, num_dies, 
num_packages;
        int ret;
        struct expr_parse_ctx *ctx;
-       bool is_intel = false;
        char strcmp_cpuid_buf[256];
        struct perf_cpu cpu = {-1};
        char *cpuid = get_cpuid_allow_env_override(cpu);
        char *escaped_cpuid1, *escaped_cpuid2;
 
        TEST_ASSERT_VAL("get_cpuid", cpuid);
-       is_intel = strstr(cpuid, "Intel") != NULL;
 
        TEST_ASSERT_EQUAL("ids_union", test_ids_union(), 0);
 
@@ -245,12 +243,19 @@ static int test__expr(struct test_suite *t 
__maybe_unused, int subtest __maybe_u
        if (num_dies) // Some platforms do not have CPU die support, for 
example s390
                TEST_ASSERT_VAL("#num_dies >= #num_packages", num_dies >= 
num_packages);
 
-       TEST_ASSERT_VAL("#system_tsc_freq", expr__parse(&val, ctx, 
"#system_tsc_freq") == 0);
-       if (is_intel)
-               TEST_ASSERT_VAL("#system_tsc_freq > 0", val > 0);
-       else
-               TEST_ASSERT_VAL("#system_tsc_freq == 0", fpclassify(val) == 
FP_ZERO);
 
+       if (expr__parse(&val, ctx, "#system_tsc_freq") == 0) {
+               bool is_intel = strstr(cpuid, "Intel") != NULL;
+
+               if (is_intel)
+                       TEST_ASSERT_VAL("#system_tsc_freq > 0", val > 0);
+               else
+                       TEST_ASSERT_VAL("#system_tsc_freq == 0", 
fpclassify(val) == FP_ZERO);
+       } else {
+#if defined(__i386__) || defined(__x86_64__)
+               TEST_ASSERT_VAL("#system_tsc_freq unsupported", 0);
+#endif
+       }
        /*
         * Source count returns the number of events aggregating in a leader
         * event including the leader. Check parsing yields an id.
-- 
2.47.0.338.g60cca15819-goog


Reply via email to