Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp264138pxb; Wed, 22 Sep 2021 01:23:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzGJEt0CrMsW/85DU1mdf9xi46Ma6EZWWF9INyoxrqrSsxR5ueaP8RDQ26oiSIfNZ8duThB X-Received: by 2002:a50:fa89:: with SMTP id w9mr41642579edr.113.1632299025689; Wed, 22 Sep 2021 01:23:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632299025; cv=none; d=google.com; s=arc-20160816; b=aMphz9Lh+Ub2QLWjV1HXY320r923azrxWbT7Bwb2QucF3sWL4mRpDdEpXTfJNOo8FB yphOMmXLKHhKZnC72gxMZTp5YblLa3ue5Bizs2bPEkWIkFazKYm2cQwcdZdHKQqM5DOq CuEnYSMG8sjqXBARYYHTQ2CmFZXa3WSTzJFtKNTknsjJQ4yfoInCv24wTRYGcWavlehU YSSHVPvwJj09oBc6eZDqqNjcyMEowWXLuXtRyNRwp1Yeqrx7+ik2Agbdp00t/zkyrrou BZP3D0421wV6SNZ31dez5EWP+xm8QOj0fLl86KB4q4qAEeQXaEBoapUoDWdiUwR6DyQS ozdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=jhtmBJ6Dc/tyF1h7HVlvMIPOJAIqW+/3wSXrZ6EDJkw=; b=QQw6UCJsC17FAo+0wPhXO65l9GX0bBgJTqfSwlGfOTYvPY7ln9bVmQ4N7+hzXuGWpJ +0mdfZUQfbVI9arW7jCA8ddLGnCDoWbzRPNN3cNteEXreBZnR+ayRsXW4Nrp+r+zOdih I2SUA7Br6iFoHAVorel9iUhaVz6Z/u4CkNJNooOCrfJIPvJw6U+H4xv1is5aFHW+m85J YteEvvv4XZns+U1TmcbMSbm9HzrH+v8Aev095TSo2mPtvM9JwMyPyhofVdEv9M20y/Xa Th21exSXAB1yHO01omLbgOdEqSDrNEn6aNJYHUFaeat3lKrhxeehX4+JS7lsTIVTg4Vm Zmpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=mY5WQJ3i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 5si1860171ejq.512.2021.09.22.01.23.22; Wed, 22 Sep 2021 01:23:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=mY5WQJ3i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233783AbhIVIVh (ORCPT + 99 others); Wed, 22 Sep 2021 04:21:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54612 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233731AbhIVIVg (ORCPT ); Wed, 22 Sep 2021 04:21:36 -0400 Received: from mail-qk1-x74a.google.com (mail-qk1-x74a.google.com [IPv6:2607:f8b0:4864:20::74a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0385BC061574 for ; Wed, 22 Sep 2021 01:20:07 -0700 (PDT) Received: by mail-qk1-x74a.google.com with SMTP id m6-20020a05620a24c600b004338e8a5a3cso8139377qkn.10 for ; Wed, 22 Sep 2021 01:20:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=jhtmBJ6Dc/tyF1h7HVlvMIPOJAIqW+/3wSXrZ6EDJkw=; b=mY5WQJ3imda4F5EgsCfyLnnoZl+iJiJvNzmirryxnF2X+WYis286hsRFsGAOg4cZy+ BO1lIeYbDYm6qN1H/xIqWS+HWI2hbD2wuteRaorJWIOA/K2hmSUlWfSjYDtaA3FhzV9p qqoHyuPyazhbAl6Z36rpzeZ09xU/ljmFcPKrokPE7S1r0srAdjGIBHYYERKZgopGsNsM /F18qsZHcQhiHAb0cZ0ZtERVdmn6NGVbd8uHmRfWZoINZtC9OeI2ryUlZ85LwltjeOCC tGqIpYkAjJ3/gZH7b1E9wgD1ILZg2J27iN6ddBhvWmBQpZMnhwgnpO2vUwoI0r/GwL3S jGaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=jhtmBJ6Dc/tyF1h7HVlvMIPOJAIqW+/3wSXrZ6EDJkw=; b=al5XNXuWTlBlEWz1fGwoGWV2G+WLEpImyQKg0rt3yxzFepI4yIBK7PPGsbm3jQujh6 tdNhEVvfJHYJRgpHARgSVPh4boPXCpyV5AUSTAO+yAPinoHMDqsnWg+d7bgVxr36FiQ0 ozHtHu08aHf1zphL27FPDnDeH5TjFD5dHGV8sl6sCvHB9F9dlbs8vC2ZX57q/DZPp7ef +Kv/PLMXFlQ37QA61x98n8g0si8WjAVdemgsmO/caeiwrFrGT7MseeyA6VCT5Ja5c+ex x+KbieXqA8mfdOnWNcDX6xrroEWBLf71s3y/R+Ty4dn6jmtgiw2zBC1UjZljwwFfonol cQ1Q== X-Gm-Message-State: AOAM530gag+GZrO37favs4piDg8lbM+rlA20WvctCF77iCnPf9w44UfA DwHOCCWlK7rqnu7Hq6cFsrcoFdHQRG4N X-Received: from irogers.svl.corp.google.com ([2620:15c:2cd:202:dffa:819a:f0e2:47e]) (user=irogers job=sendgmr) by 2002:a05:6214:13a3:: with SMTP id h3mr35401554qvz.26.1632298806171; Wed, 22 Sep 2021 01:20:06 -0700 (PDT) Date: Wed, 22 Sep 2021 01:19:54 -0700 In-Reply-To: <20210922081959.390059-1-irogers@google.com> Message-Id: <20210922081959.390059-2-irogers@google.com> Mime-Version: 1.0 References: <20210922081959.390059-1-irogers@google.com> X-Mailer: git-send-email 2.33.0.464.g1972c5931b-goog Subject: [RFC PATCH 1/5] perf test: Use macro for "suite" declarations From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Jin Yao , John Garry , "Paul A . Clarke" , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Brendan Higgins , Daniel Latypov , David Gow Cc: eranian@google.com, Ian Rogers Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently tests are setup in builtin-test with function pointers. Kunit exposes tests as a kunit_suite with a null terminated array of test cases. Use a macro to aid transition from one to the other in later changes. Signed-off-by: Ian Rogers --- tools/perf/tests/tests.h | 151 ++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 74 deletions(-) diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h index fe1306f58495..0846f66d67f9 100644 --- a/tools/perf/tests/tests.h +++ b/tools/perf/tests/tests.h @@ -40,94 +40,97 @@ struct test { void *priv; }; +#define DECLARE_SUITE(name) \ + int test__##name(struct test *test, int subtest) + /* Tests */ -int test__vmlinux_matches_kallsyms(struct test *test, int subtest); -int test__openat_syscall_event(struct test *test, int subtest); -int test__openat_syscall_event_on_all_cpus(struct test *test, int subtest); -int test__basic_mmap(struct test *test, int subtest); -int test__PERF_RECORD(struct test *test, int subtest); -int test__perf_evsel__roundtrip_name_test(struct test *test, int subtest); -int test__perf_evsel__tp_sched_test(struct test *test, int subtest); -int test__syscall_openat_tp_fields(struct test *test, int subtest); -int test__pmu(struct test *test, int subtest); -int test__pmu_events(struct test *test, int subtest); +DECLARE_SUITE(vmlinux_matches_kallsyms); +DECLARE_SUITE(openat_syscall_event); +DECLARE_SUITE(openat_syscall_event_on_all_cpus); +DECLARE_SUITE(basic_mmap); +DECLARE_SUITE(PERF_RECORD); +DECLARE_SUITE(perf_evsel__roundtrip_name_test); +DECLARE_SUITE(perf_evsel__tp_sched_test); +DECLARE_SUITE(syscall_openat_tp_fields); +DECLARE_SUITE(pmu); +DECLARE_SUITE(pmu_events); const char *test__pmu_events_subtest_get_desc(int subtest); const char *test__pmu_events_subtest_skip_reason(int subtest); int test__pmu_events_subtest_get_nr(void); -int test__attr(struct test *test, int subtest); -int test__dso_data(struct test *test, int subtest); -int test__dso_data_cache(struct test *test, int subtest); -int test__dso_data_reopen(struct test *test, int subtest); -int test__parse_events(struct test *test, int subtest); -int test__hists_link(struct test *test, int subtest); -int test__python_use(struct test *test, int subtest); -int test__bp_signal(struct test *test, int subtest); -int test__bp_signal_overflow(struct test *test, int subtest); -int test__bp_accounting(struct test *test, int subtest); -int test__wp(struct test *test, int subtest); +DECLARE_SUITE(attr); +DECLARE_SUITE(dso_data); +DECLARE_SUITE(dso_data_cache); +DECLARE_SUITE(dso_data_reopen); +DECLARE_SUITE(parse_events); +DECLARE_SUITE(hists_link); +DECLARE_SUITE(python_use); +DECLARE_SUITE(bp_signal); +DECLARE_SUITE(bp_signal_overflow); +DECLARE_SUITE(bp_accounting); +DECLARE_SUITE(wp); const char *test__wp_subtest_get_desc(int subtest); const char *test__wp_subtest_skip_reason(int subtest); int test__wp_subtest_get_nr(void); -int test__task_exit(struct test *test, int subtest); -int test__mem(struct test *test, int subtest); -int test__sw_clock_freq(struct test *test, int subtest); -int test__code_reading(struct test *test, int subtest); -int test__sample_parsing(struct test *test, int subtest); -int test__keep_tracking(struct test *test, int subtest); -int test__parse_no_sample_id_all(struct test *test, int subtest); -int test__dwarf_unwind(struct test *test, int subtest); -int test__expr(struct test *test, int subtest); -int test__hists_filter(struct test *test, int subtest); -int test__mmap_thread_lookup(struct test *test, int subtest); -int test__thread_maps_share(struct test *test, int subtest); -int test__hists_output(struct test *test, int subtest); -int test__hists_cumulate(struct test *test, int subtest); -int test__switch_tracking(struct test *test, int subtest); -int test__fdarray__filter(struct test *test, int subtest); -int test__fdarray__add(struct test *test, int subtest); -int test__kmod_path__parse(struct test *test, int subtest); -int test__thread_map(struct test *test, int subtest); -int test__llvm(struct test *test, int subtest); +DECLARE_SUITE(task_exit); +DECLARE_SUITE(mem); +DECLARE_SUITE(sw_clock_freq); +DECLARE_SUITE(code_reading); +DECLARE_SUITE(sample_parsing); +DECLARE_SUITE(keep_tracking); +DECLARE_SUITE(parse_no_sample_id_all); +DECLARE_SUITE(dwarf_unwind); +DECLARE_SUITE(expr); +DECLARE_SUITE(hists_filter); +DECLARE_SUITE(mmap_thread_lookup); +DECLARE_SUITE(thread_maps_share); +DECLARE_SUITE(hists_output); +DECLARE_SUITE(hists_cumulate); +DECLARE_SUITE(switch_tracking); +DECLARE_SUITE(fdarray__filter); +DECLARE_SUITE(fdarray__add); +DECLARE_SUITE(kmod_path__parse); +DECLARE_SUITE(thread_map); +DECLARE_SUITE(llvm); const char *test__llvm_subtest_get_desc(int subtest); int test__llvm_subtest_get_nr(void); -int test__bpf(struct test *test, int subtest); +DECLARE_SUITE(bpf); const char *test__bpf_subtest_get_desc(int subtest); int test__bpf_subtest_get_nr(void); -int test__session_topology(struct test *test, int subtest); -int test__thread_map_synthesize(struct test *test, int subtest); -int test__thread_map_remove(struct test *test, int subtest); -int test__cpu_map_synthesize(struct test *test, int subtest); -int test__synthesize_stat_config(struct test *test, int subtest); -int test__synthesize_stat(struct test *test, int subtest); -int test__synthesize_stat_round(struct test *test, int subtest); -int test__event_update(struct test *test, int subtest); -int test__event_times(struct test *test, int subtest); -int test__backward_ring_buffer(struct test *test, int subtest); -int test__cpu_map_print(struct test *test, int subtest); -int test__cpu_map_merge(struct test *test, int subtest); -int test__sdt_event(struct test *test, int subtest); -int test__is_printable_array(struct test *test, int subtest); -int test__bitmap_print(struct test *test, int subtest); -int test__perf_hooks(struct test *test, int subtest); -int test__clang(struct test *test, int subtest); +DECLARE_SUITE(session_topology); +DECLARE_SUITE(thread_map_synthesize); +DECLARE_SUITE(thread_map_remove); +DECLARE_SUITE(cpu_map_synthesize); +DECLARE_SUITE(synthesize_stat_config); +DECLARE_SUITE(synthesize_stat); +DECLARE_SUITE(synthesize_stat_round); +DECLARE_SUITE(event_update); +DECLARE_SUITE(event_times); +DECLARE_SUITE(backward_ring_buffer); +DECLARE_SUITE(cpu_map_print); +DECLARE_SUITE(cpu_map_merge); +DECLARE_SUITE(sdt_event); +DECLARE_SUITE(is_printable_array); +DECLARE_SUITE(bitmap_print); +DECLARE_SUITE(perf_hooks); +DECLARE_SUITE(clang); const char *test__clang_subtest_get_desc(int subtest); int test__clang_subtest_get_nr(void); -int test__unit_number__scnprint(struct test *test, int subtest); -int test__mem2node(struct test *t, int subtest); -int test__maps__merge_in(struct test *t, int subtest); -int test__time_utils(struct test *t, int subtest); -int test__jit_write_elf(struct test *test, int subtest); -int test__api_io(struct test *test, int subtest); -int test__demangle_java(struct test *test, int subtest); -int test__demangle_ocaml(struct test *test, int subtest); -int test__pfm(struct test *test, int subtest); +DECLARE_SUITE(unit_number__scnprint); +DECLARE_SUITE(mem2node); +DECLARE_SUITE(maps__merge_in); +DECLARE_SUITE(time_utils); +DECLARE_SUITE(jit_write_elf); +DECLARE_SUITE(api_io); +DECLARE_SUITE(demangle_java); +DECLARE_SUITE(demangle_ocaml); +DECLARE_SUITE(pfm); const char *test__pfm_subtest_get_desc(int subtest); int test__pfm_subtest_get_nr(void); -int test__parse_metric(struct test *test, int subtest); -int test__pe_file_parsing(struct test *test, int subtest); -int test__expand_cgroup_events(struct test *test, int subtest); -int test__perf_time_to_tsc(struct test *test, int subtest); -int test__dlfilter(struct test *test, int subtest); +DECLARE_SUITE(parse_metric); +DECLARE_SUITE(pe_file_parsing); +DECLARE_SUITE(expand_cgroup_events); +DECLARE_SUITE(perf_time_to_tsc); +DECLARE_SUITE(dlfilter); bool test__bp_signal_is_supported(void); bool test__bp_account_is_supported(void); @@ -142,7 +145,7 @@ int test__arch_unwind_sample(struct perf_sample *sample, #endif #if defined(__arm__) -int test__vectors_page(struct test *test, int subtest); +DECLARE_SUITE(vectors_page); #endif #endif /* TESTS_H */ -- 2.33.0.464.g1972c5931b-goog