#include "pmu.h"
 #include "pmu-hybrid.h"
 
+/*
+ * Except x86_64/i386 and Arm64, other archs don't support TSC in perf.  Just
+ * enable the test for x86_64/i386 and Arm64 archs.
+ */
+#if defined(__x86_64__) || defined(__i386__) || defined(__aarch64__)
+#define TSC_IS_SUPPORTED 1
+#else
+#define TSC_IS_SUPPORTED 0
+#endif
+
 #define CHECK__(x) {                           \
        while ((x) < 0) {                       \
                pr_debug(#x " failed!\n");      \
        u64 test_time, comm1_time = 0, comm2_time = 0;
        struct mmap *md;
 
+       if (!TSC_IS_SUPPORTED) {
+               pr_debug("Test not supported on this architecture");
+               return TEST_SKIP;
+       }
+
        threads = thread_map__new(-1, getpid(), UINT_MAX);
        CHECK_NOT_NULL__(threads);
 
        return err;
 }
 
-static bool test__tsc_is_supported(void)
-{
-       /*
-        * Except x86_64/i386 and Arm64, other archs don't support TSC in perf.
-        * Just enable the test for x86_64/i386 and Arm64 archs.
-        */
-#if defined(__x86_64__) || defined(__i386__) || defined(__aarch64__)
-       return true;
-#else
-       return false;
-#endif
-}
-
-static struct test_case perf_time_to_tsc_tests[] = {
-       TEST_CASE("Convert perf time to TSC", perf_time_to_tsc),
-       { .name = NULL, }
-};
-
-struct test_suite suite__perf_time_to_tsc = {
-       .desc = "Convert perf time to TSC",
-       .test_cases = perf_time_to_tsc_tests,
-       .is_supported = test__tsc_is_supported,
-};
+DEFINE_SUITE("Convert perf time to TSC", perf_time_to_tsc);