From patchwork Wed Aug 14 16:47:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1147123 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="JjGJU8FX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 467wVs2Gnrz9sBF for ; Thu, 15 Aug 2019 02:47:49 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728283AbfHNQrt (ORCPT ); Wed, 14 Aug 2019 12:47:49 -0400 Received: from mail-ua1-f73.google.com ([209.85.222.73]:39847 "EHLO mail-ua1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727929AbfHNQrs (ORCPT ); Wed, 14 Aug 2019 12:47:48 -0400 Received: by mail-ua1-f73.google.com with SMTP id 43so10042489uaj.6 for ; Wed, 14 Aug 2019 09:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=5ek1EVAZRm+qabxMqMu9irrjkFWPa5puXpEJvWK1CPc=; b=JjGJU8FXjx72USEfNiHz8y2IRJdjutfZjUekmWtYRD+00SKpLSw/97erYQMrhGpo1O Xoe/UXMW0uyXam6u7OelkgXEA0iXlRZMar8e93b9Cbcvrrx9mJa7lHRABbKG1ZJZEsIc J7BNTRZjVHhGnT802eD+V5iVNNASdyrvk2nxJlQei3RnETKMLuaKMOBS/hZSePs4kSyF f1690+wyrmBHi9jOqWS9SsZqDX7t843+mCzH79NdUYLvUMPeq2HOBgpteCZcAxJ2td4+ /dA0Hdhh2q6JUaWeH0eduH9MywQoOzG3mfeHvAR1BpBo1RoeOqrl9q8atd4V6Bll2P9h frpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=5ek1EVAZRm+qabxMqMu9irrjkFWPa5puXpEJvWK1CPc=; b=dlLXzatlutJgryTU0W2vfYooSMQdYNOLpwoFjwJnrOdpKgCgcx79YPs1eukD5TgMuG e6/WsVoC5Li1zIUF2t4IhqD7OoxVQgux4PcuPkDZp1wAw3/pRzldp1KyLr3koLI9h4Yi V5l5RjCpgiEu7z3uWOPQW2K/yLNS1cMfH7LfxZ0Pj9iaDo75j4xtZYf0qC81jCSVu03D XlqWlXhAEx1Vm5SlawgP3MyUvm0YL+bZH1t2aHbRLR89wTX7gewAgUoCkFgfbPu3OCE/ 5ml9Fw6ojElW7q8B2iyL8uRNGYsPxTWHCoTB+2b/dRW4LExp1Xq2GLqW/nSqLeCtVbsx dB5w== X-Gm-Message-State: APjAAAUiuQ1I8cpJ+63afTiFCg4YtkdGo8j33Xd0qh37h/Cq6AxA2f4M 3qBUsHEEeJhYhOD6WfntjUiR+ho= X-Google-Smtp-Source: APXvYqwj69o47JQ7jW03Tjv21//xstWKWAQPpr5QkxWl/JkW/mGq+pNtMoXZDMbaEX2a/vykrqcAiiE= X-Received: by 2002:a1f:4588:: with SMTP id s130mr72229vka.58.1565801267231; Wed, 14 Aug 2019 09:47:47 -0700 (PDT) Date: Wed, 14 Aug 2019 09:47:39 -0700 In-Reply-To: <20190814164742.208909-1-sdf@google.com> Message-Id: <20190814164742.208909-2-sdf@google.com> Mime-Version: 1.0 References: <20190814164742.208909-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.rc1.153.gdeed80330f-goog Subject: [PATCH bpf-next 1/4] selftests/bpf: test_progs: change formatting of the condenced output From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev , Andrii Nakryiko Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org This makes it visually simpler to follow the output. Also, highlight with red color failures when outputting to tty. Before: #1 attach_probe:FAIL #2 bpf_obj_id:OK #3/1 bpf_verif_scale:loop3.o:OK #3/2 bpf_verif_scale:test_verif_scale1.o:OK #3/3 bpf_verif_scale:test_verif_scale2.o:OK #3/4 bpf_verif_scale:test_verif_scale3.o:OK #3/5 bpf_verif_scale:pyperf50.o:OK #3/6 bpf_verif_scale:pyperf100.o:OK #3/7 bpf_verif_scale:pyperf180.o:OK #3/8 bpf_verif_scale:pyperf600.o:OK #3/9 bpf_verif_scale:pyperf600_nounroll.o:OK #3/10 bpf_verif_scale:loop1.o:OK #3/11 bpf_verif_scale:loop2.o:OK #3/12 bpf_verif_scale:loop4.o:OK #3/13 bpf_verif_scale:loop5.o:OK #3/14 bpf_verif_scale:strobemeta.o:OK #3/15 bpf_verif_scale:strobemeta_nounroll1.o:OK #3/16 bpf_verif_scale:strobemeta_nounroll2.o:OK #3/17 bpf_verif_scale:test_sysctl_loop1.o:OK #3/18 bpf_verif_scale:test_sysctl_loop2.o:OK #3/19 bpf_verif_scale:test_xdp_loop.o:OK #3/20 bpf_verif_scale:test_seg6_loop.o:OK #3 bpf_verif_scale:OK #4 flow_dissector:OK After: # 1 FAIL attach_probe # 2 OK bpf_obj_id # 3/1 OK bpf_verif_scale:loop3.o # 3/2 OK bpf_verif_scale:test_verif_scale1.o # 3/3 OK bpf_verif_scale:test_verif_scale2.o # 3/4 OK bpf_verif_scale:test_verif_scale3.o # 3/5 OK bpf_verif_scale:pyperf50.o # 3/6 OK bpf_verif_scale:pyperf100.o # 3/7 OK bpf_verif_scale:pyperf180.o # 3/8 OK bpf_verif_scale:pyperf600.o # 3/9 OK bpf_verif_scale:pyperf600_nounroll.o # 3/10 OK bpf_verif_scale:loop1.o # 3/11 OK bpf_verif_scale:loop2.o # 3/12 OK bpf_verif_scale:loop4.o # 3/13 OK bpf_verif_scale:loop5.o # 3/14 OK bpf_verif_scale:strobemeta.o # 3/15 OK bpf_verif_scale:strobemeta_nounroll1.o # 3/16 OK bpf_verif_scale:strobemeta_nounroll2.o # 3/17 OK bpf_verif_scale:test_sysctl_loop1.o # 3/18 OK bpf_verif_scale:test_sysctl_loop2.o # 3/19 OK bpf_verif_scale:test_xdp_loop.o # 3/20 OK bpf_verif_scale:test_seg6_loop.o # 3 OK bpf_verif_scale # 4 OK flow_dissector Cc: Andrii Nakryiko Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/test_progs.c | 29 +++++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index 12895d03d58b..1a7a2a0c0a11 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -56,6 +56,21 @@ static void dump_test_log(const struct prog_test_def *test, bool failed) fseeko(stdout, 0, SEEK_SET); /* rewind */ } +static const char *test_status_string(bool success) +{ +#define COLOR_RED "\033[31m" +#define COLOR_RESET "\033[m" + if (success) + return "OK"; + + if (isatty(fileno(env.stdout))) + return COLOR_RED "FAIL" COLOR_RESET; + else + return "FAIL"; +#undef COLOR_RED +#undef COLOR_RESET +} + void test__end_subtest() { struct prog_test_def *test = env.test; @@ -68,9 +83,10 @@ void test__end_subtest() dump_test_log(test, sub_error_cnt); - fprintf(env.stdout, "#%d/%d %s:%s\n", - test->test_num, test->subtest_num, - test->subtest_name, sub_error_cnt ? "FAIL" : "OK"); + fprintf(env.stdout, "#%3d/%-3d %4s %s:%s\n", + test->test_num, test->subtest_num, + test_status_string(test->fail_cnt == 0), + test->test_name, test->subtest_name); } bool test__start_subtest(const char *name) @@ -513,9 +529,10 @@ int main(int argc, char **argv) dump_test_log(test, test->error_cnt); - fprintf(env.stdout, "#%d %s:%s\n", - test->test_num, test->test_name, - test->error_cnt ? "FAIL" : "OK"); + fprintf(env.stdout, "#%3d %4s %s\n", + test->test_num, + test_status_string(test->fail_cnt == 0), + test->test_name); } stdio_restore(); printf("Summary: %d/%d PASSED, %d FAILED\n", From patchwork Wed Aug 14 16:47:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1147125 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="en9obOKI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 467wVw4RfPz9sBF for ; Thu, 15 Aug 2019 02:47:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728315AbfHNQrv (ORCPT ); Wed, 14 Aug 2019 12:47:51 -0400 Received: from mail-pl1-f202.google.com ([209.85.214.202]:45953 "EHLO mail-pl1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728300AbfHNQru (ORCPT ); Wed, 14 Aug 2019 12:47:50 -0400 Received: by mail-pl1-f202.google.com with SMTP id y9so65001937plp.12 for ; Wed, 14 Aug 2019 09:47:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=T3//wE3HCI/3ByfInvNbN4Ma41u+RbtVje+WMKN729w=; b=en9obOKIccXCwCjYzLjp93zzqZU3fkVuuEkHXQ5mpGdDv4enslXVD6D63bWjddCwi+ gjM31NVpn+KLU0BvGLyDn+p23Kuv/QlPTIS+s8J8AtTMP7lsiFQ3ZmiQWe9Zv1Mwypnz ej8NbW2ZPxae1ugsXxJBENJglJ0tyIraMlT5ghri5tv8etYkA0+HKTC9LZPMaCLCEFiH LLOexEtJoXc3M9RQr2n6mOwI8LzmX1eSyXGspZURPb3QfJGNOQfzemfqpinuanYAbubV pd3GYOEWxeRatu6h4yO4t/M3xaKdz01GHRl4kH8bzFTqm/8FayBBorId0Z9K9U35awMx wm/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=T3//wE3HCI/3ByfInvNbN4Ma41u+RbtVje+WMKN729w=; b=dpbKdDd+Szi06J7zgcmMgkAl1lY3mKjsc/ZtJzylqahqZ1hxtViReV4LKjVHM1nUD8 gj/aehSf6z79HDqB3uDh8OS4wvimVWrNIlPegjgXc1/AHTdjcFUejKYPOV2bi3w3P31w Oj2DTPdmYAuCSx9mseUy9ekt2d/us2vsBpmd8Icg8oIqQCK9qMSPbgtYO0TM/b4ySdYm hrj/eLOdQHBlvqp3mRQ5VkD6xvWuLuUqsWVxBC81u0ciYBTJUU/8/Ys5ABqKEAgtnBTc cZftC9iGf7MYvq8hChKEUvZGoscgEzvSvJ+LLAwV6TrznM9tGneYW4J9uI7pGiwtbug0 3wqg== X-Gm-Message-State: APjAAAUNhGUek34BKeU8xCbKPOHIYtnTipA0zutDXHiIG3Qr4anrj4kI SN+f9pddzfC9T8li0/e88WST7uHeO+O7FQEHj4j/o5lBtz616Jz60Abqgb5YY2lp7ZUwiPPKqR1 vn8oovh/6HHd6B9xYQoxDJnZfA3c2LOakHWULelDLAXca18EE5RacVA== X-Google-Smtp-Source: APXvYqyKnKDNaE/IxQz4eQzJ/gmghPay55SJB71zxyR0DG0Az85ks7MQXx6ZszIu60HcDXVuDXy+8gg= X-Received: by 2002:a63:5c7:: with SMTP id 190mr101082pgf.67.1565801269487; Wed, 14 Aug 2019 09:47:49 -0700 (PDT) Date: Wed, 14 Aug 2019 09:47:40 -0700 In-Reply-To: <20190814164742.208909-1-sdf@google.com> Message-Id: <20190814164742.208909-3-sdf@google.com> Mime-Version: 1.0 References: <20190814164742.208909-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.rc1.153.gdeed80330f-goog Subject: [PATCH bpf-next 2/4] selftests/bpf: test_progs: test__skip From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev , Andrii Nakryiko Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Export test__skip() to indicate skipped tests and use it in test_send_signal_nmi(). Cc: Andrii Nakryiko Signed-off-by: Stanislav Fomichev Acked-by: Andrii Nakryiko --- tools/testing/selftests/bpf/prog_tests/send_signal.c | 1 + tools/testing/selftests/bpf/test_progs.c | 9 +++++++-- tools/testing/selftests/bpf/test_progs.h | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/send_signal.c b/tools/testing/selftests/bpf/prog_tests/send_signal.c index 1575f0a1f586..40c2c5efdd3e 100644 --- a/tools/testing/selftests/bpf/prog_tests/send_signal.c +++ b/tools/testing/selftests/bpf/prog_tests/send_signal.c @@ -204,6 +204,7 @@ static int test_send_signal_nmi(void) if (errno == ENOENT) { printf("%s:SKIP:no PERF_COUNT_HW_CPU_CYCLES\n", __func__); + test__skip(); return 0; } /* Let the test fail with a more informative message */ diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index 1a7a2a0c0a11..1993f2ce0d23 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -121,6 +121,11 @@ void test__force_log() { env.test->force_log = true; } +void test__skip(void) +{ + env.skip_cnt++; +} + struct ipv4_packet pkt_v4 = { .eth.h_proto = __bpf_constant_htons(ETH_P_IP), .iph.ihl = 5, @@ -535,8 +540,8 @@ int main(int argc, char **argv) test->test_name); } stdio_restore(); - printf("Summary: %d/%d PASSED, %d FAILED\n", - env.succ_cnt, env.sub_succ_cnt, env.fail_cnt); + printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", + env.succ_cnt, env.sub_succ_cnt, env.skip_cnt, env.fail_cnt); free(env.test_selector.num_set); free(env.subtest_selector.num_set); diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h index 37d427f5a1e5..9defd35cb6c0 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -64,6 +64,7 @@ struct test_env { int succ_cnt; /* successful tests */ int sub_succ_cnt; /* successful sub-tests */ int fail_cnt; /* total failed tests + sub-tests */ + int skip_cnt; /* skipped tests */ }; extern int error_cnt; @@ -72,6 +73,7 @@ extern struct test_env env; extern void test__force_log(); extern bool test__start_subtest(const char *name); +extern void test__skip(void); #define MAGIC_BYTES 123 From patchwork Wed Aug 14 16:47:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1147127 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="iwM83Hb7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 467wVy3GdCz9sBF for ; Thu, 15 Aug 2019 02:47:54 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728329AbfHNQry (ORCPT ); Wed, 14 Aug 2019 12:47:54 -0400 Received: from mail-pf1-f202.google.com ([209.85.210.202]:41644 "EHLO mail-pf1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728325AbfHNQry (ORCPT ); Wed, 14 Aug 2019 12:47:54 -0400 Received: by mail-pf1-f202.google.com with SMTP id v3so3099283pfm.8 for ; Wed, 14 Aug 2019 09:47:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=9Ukfn3/0OU9Ji6iaq77baqV5jQT3kFb3JalDTXArsew=; b=iwM83Hb7Wlb4L70hes62XslBsl/fa5lgikkaSh+Iee3r1CL+OBsjObtqmw7lWN6h90 ubsLWQgaJ61vAQVYHaSNoxkRV/k0ljr6T4E+oJnDWPRvyPc1Wt4tSRfp5ja/wsKf+Arg kxLpWqZbwUbaF3GJokkw68ECZ8HO9KyWcZQdzctv1AyNUsyzqo/E3fdydPHIQLMshW/B jrqTdmQRBVydx/M7Wb6neQN+7eUk82ZY5fV6ZVFdEB9LQzCxTUp4bVcKqJee3b0w+eUS AbtN9S7ZN0jynm9e0io6wmCVlzKls5Gxu67RTtpLAmGbWkyt/AEMEovgrXFNWzVb+tfc /9Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=9Ukfn3/0OU9Ji6iaq77baqV5jQT3kFb3JalDTXArsew=; b=FTyK/m4GKRb78TyzFhcapCJBP1HVzeUHpS4raHJO13x5EKUN1TlSEmsDkpMygecxS5 81MSL4AcAcGTVspeCsGh1KkhKMUxp81XIaiUi5z7xtTDTq1T37Hj1ZbfPgP21YEDcybI nR6gaCiXGLtMYlKgsG79pymurR8LV0CWHEedc4cq+KR1RkNkdhrpZ5So1GnVzMcHUgS2 SSOIFyvK7559mdSu4o+O7+UyayCWEpktdPwlg6R4CR+YSi2YPqnaijl9FRP2C/cdmp2E KqPHyK0w4TS3UHePMdIqoW7Oi5kTGugKyqf6YWp9N9G4CGMrBGdnFQ5zdOQ0u5URQLKN aqJA== X-Gm-Message-State: APjAAAVQAJG8jkPkzuRzB1C3GG3CYk1R+DijKZ6WRenmuCj5SarSRO5l 9/R/nKs2KkD9K+YHoOs1zMSN/Gs= X-Google-Smtp-Source: APXvYqy61stPA8m9Mw6bg6kMVBqImS4bSw3xy77NpR1u5vj0EnQHPgp1HTjVzHRavPlPYzIkqCsWfsg= X-Received: by 2002:a63:f91c:: with SMTP id h28mr74464pgi.397.1565801272359; Wed, 14 Aug 2019 09:47:52 -0700 (PDT) Date: Wed, 14 Aug 2019 09:47:41 -0700 In-Reply-To: <20190814164742.208909-1-sdf@google.com> Message-Id: <20190814164742.208909-4-sdf@google.com> Mime-Version: 1.0 References: <20190814164742.208909-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.rc1.153.gdeed80330f-goog Subject: [PATCH bpf-next 3/4] selftests/bpf: test_progs: remove global fail/success counts From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev , Andrii Nakryiko Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org Now that we have a global per-test/per-environment state, there is no longer the need to have global fail/success counters (and there is no need to save/get the diff before/after the test). Cc: Andrii Nakryiko Signed-off-by: Stanislav Fomichev --- .../selftests/bpf/prog_tests/bpf_obj_id.c | 2 +- .../bpf/prog_tests/bpf_verif_scale.c | 10 +--- .../selftests/bpf/prog_tests/flow_dissector.c | 2 +- .../bpf/prog_tests/get_stack_raw_tp.c | 2 +- .../selftests/bpf/prog_tests/global_data.c | 10 ++-- .../selftests/bpf/prog_tests/l4lb_all.c | 4 +- .../selftests/bpf/prog_tests/map_lock.c | 8 +-- .../selftests/bpf/prog_tests/pkt_access.c | 2 +- .../selftests/bpf/prog_tests/pkt_md_access.c | 2 +- .../bpf/prog_tests/queue_stack_map.c | 4 +- .../bpf/prog_tests/reference_tracking.c | 2 +- .../selftests/bpf/prog_tests/spinlock.c | 2 +- .../selftests/bpf/prog_tests/stacktrace_map.c | 2 +- .../bpf/prog_tests/stacktrace_map_raw_tp.c | 2 +- .../bpf/prog_tests/task_fd_query_rawtp.c | 2 +- .../bpf/prog_tests/task_fd_query_tp.c | 2 +- .../selftests/bpf/prog_tests/tcp_estats.c | 2 +- tools/testing/selftests/bpf/prog_tests/xdp.c | 2 +- .../bpf/prog_tests/xdp_adjust_tail.c | 2 +- .../selftests/bpf/prog_tests/xdp_noinline.c | 4 +- tools/testing/selftests/bpf/test_progs.c | 55 ++++++++----------- tools/testing/selftests/bpf/test_progs.h | 26 +++++++-- 22 files changed, 75 insertions(+), 74 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c b/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c index fb5840a62548..f57e0c625de3 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c @@ -49,7 +49,7 @@ void test_bpf_obj_id(void) * to load. */ if (err) - error_cnt++; + test__fail(); assert(!err); /* Insert a magic value to the map */ diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_verif_scale.c b/tools/testing/selftests/bpf/prog_tests/bpf_verif_scale.c index 1a1eae356f81..217988243077 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_verif_scale.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_verif_scale.c @@ -28,8 +28,6 @@ static int check_load(const char *file, enum bpf_prog_type type) attr.prog_flags = BPF_F_TEST_RND_HI32; err = bpf_prog_load_xattr(&attr, &obj, &prog_fd); bpf_object__close(obj); - if (err) - error_cnt++; return err; } @@ -105,12 +103,8 @@ void test_bpf_verif_scale(void) continue; err = check_load(test->file, test->attach_type); - if (test->fails) { /* expected to fail */ - if (err) - error_cnt--; - else - error_cnt++; - } + if (err && !test->fails) + test__fail(); } if (env.verifier_stats) diff --git a/tools/testing/selftests/bpf/prog_tests/flow_dissector.c b/tools/testing/selftests/bpf/prog_tests/flow_dissector.c index 6892b88ae065..e9d882c05ded 100644 --- a/tools/testing/selftests/bpf/prog_tests/flow_dissector.c +++ b/tools/testing/selftests/bpf/prog_tests/flow_dissector.c @@ -453,7 +453,7 @@ void test_flow_dissector(void) err = bpf_flow_load(&obj, "./bpf_flow.o", "flow_dissector", "jmp_table", "last_dissection", &prog_fd, &keys_fd); if (err) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c b/tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c index 3d59b3c841fe..afc60f62e2a8 100644 --- a/tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c +++ b/tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c @@ -137,7 +137,7 @@ void test_get_stack_raw_tp(void) goto close_prog_noerr; close_prog: - error_cnt++; + test__fail(); close_prog_noerr: if (!IS_ERR_OR_NULL(link)) bpf_link__destroy(link); diff --git a/tools/testing/selftests/bpf/prog_tests/global_data.c b/tools/testing/selftests/bpf/prog_tests/global_data.c index d011079fb0bf..db13bfee6bb9 100644 --- a/tools/testing/selftests/bpf/prog_tests/global_data.c +++ b/tools/testing/selftests/bpf/prog_tests/global_data.c @@ -8,7 +8,7 @@ static void test_global_data_number(struct bpf_object *obj, __u32 duration) map_fd = bpf_find_map(__func__, obj, "result_number"); if (map_fd < 0) { - error_cnt++; + test__fail(); return; } @@ -45,7 +45,7 @@ static void test_global_data_string(struct bpf_object *obj, __u32 duration) map_fd = bpf_find_map(__func__, obj, "result_string"); if (map_fd < 0) { - error_cnt++; + test__fail(); return; } @@ -82,7 +82,7 @@ static void test_global_data_struct(struct bpf_object *obj, __u32 duration) map_fd = bpf_find_map(__func__, obj, "result_struct"); if (map_fd < 0) { - error_cnt++; + test__fail(); return; } @@ -113,13 +113,13 @@ static void test_global_data_rdonly(struct bpf_object *obj, __u32 duration) map = bpf_object__find_map_by_name(obj, "test_glo.rodata"); if (!map || !bpf_map__is_internal(map)) { - error_cnt++; + test__fail(); return; } map_fd = bpf_map__fd(map); if (map_fd < 0) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/l4lb_all.c b/tools/testing/selftests/bpf/prog_tests/l4lb_all.c index 20ddca830e68..724bb40de1f8 100644 --- a/tools/testing/selftests/bpf/prog_tests/l4lb_all.c +++ b/tools/testing/selftests/bpf/prog_tests/l4lb_all.c @@ -31,7 +31,7 @@ static void test_l4lb(const char *file) err = bpf_prog_load(file, BPF_PROG_TYPE_SCHED_CLS, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } @@ -73,7 +73,7 @@ static void test_l4lb(const char *file) pkts += stats[i].pkts; } if (bytes != MAGIC_BYTES * NUM_ITER * 2 || pkts != NUM_ITER * 2) { - error_cnt++; + test__fail(); printf("test_l4lb:FAIL:stats %lld %lld\n", bytes, pkts); } out: diff --git a/tools/testing/selftests/bpf/prog_tests/map_lock.c b/tools/testing/selftests/bpf/prog_tests/map_lock.c index ee99368c595c..12123ff1f31f 100644 --- a/tools/testing/selftests/bpf/prog_tests/map_lock.c +++ b/tools/testing/selftests/bpf/prog_tests/map_lock.c @@ -10,12 +10,12 @@ static void *parallel_map_access(void *arg) err = bpf_map_lookup_elem_flags(map_fd, &key, vars, BPF_F_LOCK); if (err) { printf("lookup failed\n"); - error_cnt++; + test__fail(); goto out; } if (vars[0] != 0) { printf("lookup #%d var[0]=%d\n", i, vars[0]); - error_cnt++; + test__fail(); goto out; } rnd = vars[1]; @@ -24,7 +24,7 @@ static void *parallel_map_access(void *arg) continue; printf("lookup #%d var[1]=%d var[%d]=%d\n", i, rnd, j, vars[j]); - error_cnt++; + test__fail(); goto out; } } @@ -69,7 +69,7 @@ void test_map_lock(void) ret == (void *)&map_fd[i - 4]); goto close_prog_noerr; close_prog: - error_cnt++; + test__fail(); close_prog_noerr: bpf_object__close(obj); } diff --git a/tools/testing/selftests/bpf/prog_tests/pkt_access.c b/tools/testing/selftests/bpf/prog_tests/pkt_access.c index 4ecfd721a044..9ef4e4ffb379 100644 --- a/tools/testing/selftests/bpf/prog_tests/pkt_access.c +++ b/tools/testing/selftests/bpf/prog_tests/pkt_access.c @@ -10,7 +10,7 @@ void test_pkt_access(void) err = bpf_prog_load(file, BPF_PROG_TYPE_SCHED_CLS, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/pkt_md_access.c b/tools/testing/selftests/bpf/prog_tests/pkt_md_access.c index ac0d43435806..c354b9d21f4f 100644 --- a/tools/testing/selftests/bpf/prog_tests/pkt_md_access.c +++ b/tools/testing/selftests/bpf/prog_tests/pkt_md_access.c @@ -10,7 +10,7 @@ void test_pkt_md_access(void) err = bpf_prog_load(file, BPF_PROG_TYPE_SCHED_CLS, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c b/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c index e60cd5ff1f55..48a8cd144bd1 100644 --- a/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c +++ b/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c @@ -28,7 +28,7 @@ static void test_queue_stack_map_by_type(int type) err = bpf_prog_load(file, BPF_PROG_TYPE_SCHED_CLS, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } @@ -44,7 +44,7 @@ static void test_queue_stack_map_by_type(int type) for (i = 0; i < MAP_SIZE; i++) { err = bpf_map_update_elem(map_in_fd, NULL, &vals[i], 0); if (err) { - error_cnt++; + test__fail(); goto out; } } diff --git a/tools/testing/selftests/bpf/prog_tests/reference_tracking.c b/tools/testing/selftests/bpf/prog_tests/reference_tracking.c index 4a4f428d1a78..f6987e3dd28c 100644 --- a/tools/testing/selftests/bpf/prog_tests/reference_tracking.c +++ b/tools/testing/selftests/bpf/prog_tests/reference_tracking.c @@ -11,7 +11,7 @@ void test_reference_tracking(void) obj = bpf_object__open(file); if (IS_ERR(obj)) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/spinlock.c b/tools/testing/selftests/bpf/prog_tests/spinlock.c index 114ebe6a438e..e843336713e8 100644 --- a/tools/testing/selftests/bpf/prog_tests/spinlock.c +++ b/tools/testing/selftests/bpf/prog_tests/spinlock.c @@ -23,7 +23,7 @@ void test_spinlock(void) ret == (void *)&prog_fd); goto close_prog_noerr; close_prog: - error_cnt++; + test__fail(); close_prog_noerr: bpf_object__close(obj); } diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c index fc539335c5b3..9dba1cc3da60 100644 --- a/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c +++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c @@ -70,7 +70,7 @@ void test_stacktrace_map(void) goto disable_pmu_noerr; disable_pmu: - error_cnt++; + test__fail(); disable_pmu_noerr: bpf_link__destroy(link); close_prog: diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c index fbfa8e76cf63..4e7cf2e663f7 100644 --- a/tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c +++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c @@ -60,7 +60,7 @@ void test_stacktrace_map_raw_tp(void) goto close_prog_noerr; close_prog: - error_cnt++; + test__fail(); close_prog_noerr: if (!IS_ERR_OR_NULL(link)) bpf_link__destroy(link); diff --git a/tools/testing/selftests/bpf/prog_tests/task_fd_query_rawtp.c b/tools/testing/selftests/bpf/prog_tests/task_fd_query_rawtp.c index 958a3d88de99..d9ad1aa8a026 100644 --- a/tools/testing/selftests/bpf/prog_tests/task_fd_query_rawtp.c +++ b/tools/testing/selftests/bpf/prog_tests/task_fd_query_rawtp.c @@ -72,7 +72,7 @@ void test_task_fd_query_rawtp(void) goto close_prog_noerr; close_prog: - error_cnt++; + test__fail(); close_prog_noerr: bpf_object__close(obj); } diff --git a/tools/testing/selftests/bpf/prog_tests/task_fd_query_tp.c b/tools/testing/selftests/bpf/prog_tests/task_fd_query_tp.c index f9b70e81682b..76209f2386c8 100644 --- a/tools/testing/selftests/bpf/prog_tests/task_fd_query_tp.c +++ b/tools/testing/selftests/bpf/prog_tests/task_fd_query_tp.c @@ -68,7 +68,7 @@ static void test_task_fd_query_tp_core(const char *probe_name, close_pmu: close(pmu_fd); close_prog: - error_cnt++; + test__fail(); close_prog_noerr: bpf_object__close(obj); } diff --git a/tools/testing/selftests/bpf/prog_tests/tcp_estats.c b/tools/testing/selftests/bpf/prog_tests/tcp_estats.c index bb8759d69099..e241e5d7c71f 100644 --- a/tools/testing/selftests/bpf/prog_tests/tcp_estats.c +++ b/tools/testing/selftests/bpf/prog_tests/tcp_estats.c @@ -11,7 +11,7 @@ void test_tcp_estats(void) err = bpf_prog_load(file, BPF_PROG_TYPE_TRACEPOINT, &obj, &prog_fd); CHECK(err, "", "err %d errno %d\n", err, errno); if (err) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/xdp.c b/tools/testing/selftests/bpf/prog_tests/xdp.c index a74167289545..7c9f89fa1d02 100644 --- a/tools/testing/selftests/bpf/prog_tests/xdp.c +++ b/tools/testing/selftests/bpf/prog_tests/xdp.c @@ -17,7 +17,7 @@ void test_xdp(void) err = bpf_prog_load(file, BPF_PROG_TYPE_XDP, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c b/tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c index 922aa0a19764..a479a3303c3b 100644 --- a/tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c +++ b/tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c @@ -11,7 +11,7 @@ void test_xdp_adjust_tail(void) err = bpf_prog_load(file, BPF_PROG_TYPE_XDP, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_noinline.c b/tools/testing/selftests/bpf/prog_tests/xdp_noinline.c index 15f7c272edb0..10bef9d5ab81 100644 --- a/tools/testing/selftests/bpf/prog_tests/xdp_noinline.c +++ b/tools/testing/selftests/bpf/prog_tests/xdp_noinline.c @@ -32,7 +32,7 @@ void test_xdp_noinline(void) err = bpf_prog_load(file, BPF_PROG_TYPE_XDP, &obj, &prog_fd); if (err) { - error_cnt++; + test__fail(); return; } @@ -74,7 +74,7 @@ void test_xdp_noinline(void) pkts += stats[i].pkts; } if (bytes != MAGIC_BYTES * NUM_ITER * 2 || pkts != NUM_ITER * 2) { - error_cnt++; + test__fail(); printf("test_xdp_noinline:FAIL:stats %lld %lld\n", bytes, pkts); } diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index 1993f2ce0d23..ad90e45768ce 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -8,24 +8,6 @@ /* defined in test_progs.h */ struct test_env env; -int error_cnt, pass_cnt; - -struct prog_test_def { - const char *test_name; - int test_num; - void (*run_test)(void); - bool force_log; - int pass_cnt; - int error_cnt; - bool tested; - - const char *subtest_name; - int subtest_num; - - /* store counts before subtest started */ - int old_pass_cnt; - int old_error_cnt; -}; static bool should_run(struct test_selector *sel, int num, const char *name) { @@ -74,14 +56,14 @@ static const char *test_status_string(bool success) void test__end_subtest() { struct prog_test_def *test = env.test; - int sub_error_cnt = error_cnt - test->old_error_cnt; + int sub_fail_cnt = test->fail_cnt - test->old_fail_cnt; - if (sub_error_cnt) - env.fail_cnt++; + if (sub_fail_cnt) + test->fail_cnt++; else env.sub_succ_cnt++; - dump_test_log(test, sub_error_cnt); + dump_test_log(test, sub_fail_cnt); fprintf(env.stdout, "#%3d/%-3d %4s %s:%s\n", test->test_num, test->subtest_num, @@ -111,8 +93,8 @@ bool test__start_subtest(const char *name) return false; test->subtest_name = name; - env.test->old_pass_cnt = pass_cnt; - env.test->old_error_cnt = error_cnt; + env.test->old_succ_cnt = env.test->succ_cnt; + env.test->old_fail_cnt = env.test->fail_cnt; return true; } @@ -126,6 +108,19 @@ void test__skip(void) env.skip_cnt++; } +void __test__fail(const char *file, int line) +{ + if (env.test->subtest_name) + fprintf(stderr, "%s:%s failed at %s:%d, errno=%d\n", + env.test->test_name, env.test->subtest_name, + file, line, errno); + else + fprintf(stderr, "%s failed at %s:%d, errno=%d\n", + env.test->test_name, file, line, errno); + + env.test->fail_cnt++; +} + struct ipv4_packet pkt_v4 = { .eth.h_proto = __bpf_constant_htons(ETH_P_IP), .iph.ihl = 5, @@ -150,7 +145,7 @@ int bpf_find_map(const char *test, struct bpf_object *obj, const char *name) map = bpf_object__find_map_by_name(obj, name); if (!map) { printf("%s:FAIL:map '%s' not found\n", test, name); - error_cnt++; + test__fail(); return -1; } return bpf_map__fd(map); @@ -509,8 +504,6 @@ int main(int argc, char **argv) stdio_hijack(); for (i = 0; i < prog_test_cnt; i++) { struct prog_test_def *test = &prog_test_defs[i]; - int old_pass_cnt = pass_cnt; - int old_error_cnt = error_cnt; env.test = test; test->test_num = i + 1; @@ -525,14 +518,12 @@ int main(int argc, char **argv) test__end_subtest(); test->tested = true; - test->pass_cnt = pass_cnt - old_pass_cnt; - test->error_cnt = error_cnt - old_error_cnt; - if (test->error_cnt) + if (test->fail_cnt) env.fail_cnt++; else env.succ_cnt++; - dump_test_log(test, test->error_cnt); + dump_test_log(test, test->fail_cnt); fprintf(env.stdout, "#%3d %4s %s\n", test->test_num, @@ -546,5 +537,5 @@ int main(int argc, char **argv) free(env.test_selector.num_set); free(env.subtest_selector.num_set); - return error_cnt ? EXIT_FAILURE : EXIT_SUCCESS; + return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS; } diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h index 9defd35cb6c0..7b05921784a4 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -38,7 +38,23 @@ typedef __u16 __sum16; #include "trace_helpers.h" #include "flow_dissector_load.h" -struct prog_test_def; +struct prog_test_def { + const char *test_name; + int test_num; + void (*run_test)(void); + bool force_log; + bool tested; + + const char *subtest_name; + int subtest_num; + + int succ_cnt; + int fail_cnt; + + /* store counts before subtest started */ + int old_succ_cnt; + int old_fail_cnt; +}; struct test_selector { const char *name; @@ -67,13 +83,13 @@ struct test_env { int skip_cnt; /* skipped tests */ }; -extern int error_cnt; -extern int pass_cnt; extern struct test_env env; extern void test__force_log(); extern bool test__start_subtest(const char *name); extern void test__skip(void); +#define test__fail() __test__fail(__FILE__, __LINE__) +extern void __test__fail(const char *file, int line); #define MAGIC_BYTES 123 @@ -96,11 +112,11 @@ extern struct ipv6_packet pkt_v6; #define _CHECK(condition, tag, duration, format...) ({ \ int __ret = !!(condition); \ if (__ret) { \ - error_cnt++; \ + test__fail(); \ printf("%s:FAIL:%s ", __func__, tag); \ printf(format); \ } else { \ - pass_cnt++; \ + env.test->succ_cnt++; \ printf("%s:PASS:%s %d nsec\n", \ __func__, tag, duration); \ } \ From patchwork Wed Aug 14 16:47:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1147129 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="vs6H85nQ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 467wW15N9Xz9sBF for ; Thu, 15 Aug 2019 02:47:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728347AbfHNQr4 (ORCPT ); Wed, 14 Aug 2019 12:47:56 -0400 Received: from mail-qk1-f201.google.com ([209.85.222.201]:33178 "EHLO mail-qk1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728320AbfHNQr4 (ORCPT ); Wed, 14 Aug 2019 12:47:56 -0400 Received: by mail-qk1-f201.google.com with SMTP id f22so18940192qkg.0 for ; Wed, 14 Aug 2019 09:47:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=VdatEzAwtdxRnHgxwHcBpEyz4fJTPa7g3XqVA9XHlDQ=; b=vs6H85nQzbsugBAmC/oFyZC2xjy9u26nLTaX6MXLkZT6Yl3HaMAN2b4ULh+r29KTe7 6xWoulE38Oic2sEPSPamXaAUhmEEgyRRJkQEKlQWDD2W4R98IGo46Oo8Vn4KG5qKrNMa cXz+mqMkgWX+GLYYYt6V91E8M0nJNJsOE2spuhLUvi4VSjp/jfVRiq/Q99XK/pIYZkNJ wKxz2TvyiKSy7mS1NdmoqGb1z5rI291q958omtmyvTpliurb2OV5dYicAEacVj3TvcKl kY3ipb+slqut+zXhmgt3lZu6XsiBuyNAXc6KhOX/bu5Sv4vpwrGbs4/lFhqC2zktr95Q C8yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=VdatEzAwtdxRnHgxwHcBpEyz4fJTPa7g3XqVA9XHlDQ=; b=NW2iMYbJDuW5oYnHUaNxtMV7nhWi3Rck44AyEx+zOrUb6OQpIAy1B1ZY1Cdmue+0pF AN/NkOdHkmQnlw7LPDzJvUqloihCI5PXcVMIrvGZKN20uSvr+GrCOVK6ocRZ9Zad0sL/ hOIrXHdRMowCcFT2CCefA7coA3WaJpV2SCefjFUSyuWx6AiLPRU5q+HWoFDS/bCJAoBG l3qfOCCDcmw07O57UqBayNHfsH3sPuqk8vd3DUHgDse/LfdfxRKvlXAE17+RGThRhrKi eXOmrveY8Lu3ezuwHTtffHeK+3o8vpM7+LQS0ICDpp3+DZ5htdN4juFR9xi4ojBeQGfD QX2A== X-Gm-Message-State: APjAAAXXu93TI3dFyni63qen3yzXOW7FF5GubK+47QRGXvXb1qeWvP51 5I2PTUxF+q5hb0xf39/wrbn4xRE= X-Google-Smtp-Source: APXvYqwi02DDukEjRigwsxH/vw/nbocKWQ/LZzPiB4IJHQcEEbNitRjEu1BjtE6/s5L5PNZ76rQtw6c= X-Received: by 2002:aed:2ca3:: with SMTP id g32mr248900qtd.359.1565801275252; Wed, 14 Aug 2019 09:47:55 -0700 (PDT) Date: Wed, 14 Aug 2019 09:47:42 -0700 In-Reply-To: <20190814164742.208909-1-sdf@google.com> Message-Id: <20190814164742.208909-5-sdf@google.com> Mime-Version: 1.0 References: <20190814164742.208909-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.rc1.153.gdeed80330f-goog Subject: [PATCH bpf-next 4/4] selftests/bpf: test_progs: remove asserts from subtests From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev , Andrii Nakryiko Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org Otherwise they can bring the whole process down. Cc: Andrii Nakryiko Signed-off-by: Stanislav Fomichev --- .../selftests/bpf/prog_tests/bpf_obj_id.c | 30 ++++++++++++++----- .../selftests/bpf/prog_tests/map_lock.c | 20 ++++++++----- .../selftests/bpf/prog_tests/spinlock.c | 10 ++++--- .../bpf/prog_tests/stacktrace_build_id.c | 11 +++++-- .../bpf/prog_tests/stacktrace_build_id_nmi.c | 11 +++++-- 5 files changed, 57 insertions(+), 25 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c b/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c index f57e0c625de3..4ec8c4e9e9a1 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c @@ -48,16 +48,23 @@ void test_bpf_obj_id(void) /* test_obj_id.o is a dumb prog. It should never fail * to load. */ - if (err) + if (err) { test__fail(); - assert(!err); + continue; + } /* Insert a magic value to the map */ map_fds[i] = bpf_find_map(__func__, objs[i], "test_map_id"); - assert(map_fds[i] >= 0); + if (map_fds[i] < 0) { + test__fail(); + goto done; + } err = bpf_map_update_elem(map_fds[i], &array_key, &array_magic_value, 0); - assert(!err); + if (err) { + test__fail(); + goto done; + } /* Check getting map info */ info_len = sizeof(struct bpf_map_info) * 2; @@ -96,9 +103,15 @@ void test_bpf_obj_id(void) prog_infos[i].map_ids = ptr_to_u64(map_ids + i); prog_infos[i].nr_map_ids = 2; err = clock_gettime(CLOCK_REALTIME, &real_time_ts); - assert(!err); + if (err) { + test__fail(); + goto done; + } err = clock_gettime(CLOCK_BOOTTIME, &boot_time_ts); - assert(!err); + if (err) { + test__fail(); + goto done; + } err = bpf_obj_get_info_by_fd(prog_fds[i], &prog_infos[i], &info_len); load_time = (real_time_ts.tv_sec - boot_time_ts.tv_sec) @@ -224,7 +237,10 @@ void test_bpf_obj_id(void) nr_id_found++; err = bpf_map_lookup_elem(map_fd, &array_key, &array_value); - assert(!err); + if (err) { + test__fail(); + goto done; + } err = bpf_obj_get_info_by_fd(map_fd, &map_info, &info_len); CHECK(err || info_len != sizeof(struct bpf_map_info) || diff --git a/tools/testing/selftests/bpf/prog_tests/map_lock.c b/tools/testing/selftests/bpf/prog_tests/map_lock.c index 12123ff1f31f..e7663721fb57 100644 --- a/tools/testing/selftests/bpf/prog_tests/map_lock.c +++ b/tools/testing/selftests/bpf/prog_tests/map_lock.c @@ -56,17 +56,21 @@ void test_map_lock(void) bpf_map_update_elem(map_fd[0], &key, vars, BPF_F_LOCK); for (i = 0; i < 4; i++) - assert(pthread_create(&thread_id[i], NULL, - &spin_lock_thread, &prog_fd) == 0); + if (pthread_create(&thread_id[i], NULL, + &spin_lock_thread, &prog_fd)) + goto close_prog; for (i = 4; i < 6; i++) - assert(pthread_create(&thread_id[i], NULL, - ¶llel_map_access, &map_fd[i - 4]) == 0); + if (pthread_create(&thread_id[i], NULL, + ¶llel_map_access, &map_fd[i - 4])) + goto close_prog; for (i = 0; i < 4; i++) - assert(pthread_join(thread_id[i], &ret) == 0 && - ret == (void *)&prog_fd); + if (pthread_join(thread_id[i], &ret) || + ret != (void *)&prog_fd) + goto close_prog; for (i = 4; i < 6; i++) - assert(pthread_join(thread_id[i], &ret) == 0 && - ret == (void *)&map_fd[i - 4]); + if (pthread_join(thread_id[i], &ret) || + ret != (void *)&map_fd[i - 4]) + goto close_prog; goto close_prog_noerr; close_prog: test__fail(); diff --git a/tools/testing/selftests/bpf/prog_tests/spinlock.c b/tools/testing/selftests/bpf/prog_tests/spinlock.c index e843336713e8..5f32a913f732 100644 --- a/tools/testing/selftests/bpf/prog_tests/spinlock.c +++ b/tools/testing/selftests/bpf/prog_tests/spinlock.c @@ -16,11 +16,13 @@ void test_spinlock(void) goto close_prog; } for (i = 0; i < 4; i++) - assert(pthread_create(&thread_id[i], NULL, - &spin_lock_thread, &prog_fd) == 0); + if (pthread_create(&thread_id[i], NULL, + &spin_lock_thread, &prog_fd)) + goto close_prog; + for (i = 0; i < 4; i++) - assert(pthread_join(thread_id[i], &ret) == 0 && - ret == (void *)&prog_fd); + if (pthread_join(thread_id[i], &ret) || ret != (void *)&prog_fd) + goto close_prog; goto close_prog_noerr; close_prog: test__fail(); diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c index ac44fda84833..d74464faebd7 100644 --- a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c +++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c @@ -51,9 +51,14 @@ void test_stacktrace_build_id(void) "err %d errno %d\n", err, errno)) goto disable_pmu; - assert(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null") - == 0); - assert(system("./urandom_read") == 0); + if (system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")) { + test__fail(); + goto disable_pmu; + } + if (system("./urandom_read")) { + test__fail(); + goto disable_pmu; + } /* disable stack trace collection */ key = 0; val = 1; diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c index 9557b7dfb782..e886911928bc 100644 --- a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c +++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c @@ -82,9 +82,14 @@ void test_stacktrace_build_id_nmi(void) "err %d errno %d\n", err, errno)) goto disable_pmu; - assert(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null") - == 0); - assert(system("taskset 0x1 ./urandom_read 100000") == 0); + if (system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")) { + test__fail(); + goto disable_pmu; + } + if (system("taskset 0x1 ./urandom_read 100000")) { + test__fail(); + goto disable_pmu; + } /* disable stack trace collection */ key = 0; val = 1;