return pmu_for_each_sys_metric(test__parsing_fake_callback, NULL);
 }
 
+static int test__parsing_threshold_callback(const struct pmu_metric *pm,
+                                       const struct pmu_metrics_table *table __maybe_unused,
+                                       void *data __maybe_unused)
+{
+       if (!pm->metric_threshold)
+               return 0;
+       return metric_parse_fake(pm->metric_name, pm->metric_threshold);
+}
+
+static int test__parsing_threshold(struct test_suite *test __maybe_unused,
+                             int subtest __maybe_unused)
+{
+       int err = 0;
+
+       err = pmu_for_each_core_metric(test__parsing_threshold_callback, NULL);
+       if (err)
+               return err;
+
+       return pmu_for_each_sys_metric(test__parsing_threshold_callback, NULL);
+}
+
 static struct test_case pmu_events_tests[] = {
        TEST_CASE("PMU event table sanity", pmu_event_table),
        TEST_CASE("PMU event map aliases", aliases),
        TEST_CASE_REASON("Parsing of PMU event table metrics", parsing,
                         "some metrics failed"),
        TEST_CASE("Parsing of PMU event table metrics with fake PMUs", parsing_fake),
+       TEST_CASE("Parsing of metric thresholds with fake PMUs", parsing_threshold),
        { .name = NULL, }
 };