From patchwork Thu Sep 5 15:27:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1158508 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="Oi+zYOA7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46PPgm4SgCz9s4Y for ; Fri, 6 Sep 2019 01:27:16 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390411AbfIEP1P (ORCPT ); Thu, 5 Sep 2019 11:27:15 -0400 Received: from mail-ua1-f73.google.com ([209.85.222.73]:43836 "EHLO mail-ua1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388497AbfIEP1P (ORCPT ); Thu, 5 Sep 2019 11:27:15 -0400 Received: by mail-ua1-f73.google.com with SMTP id z26so429041uan.10 for ; Thu, 05 Sep 2019 08:27:14 -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=xm+DwCqYDVAFmaexnNhGuLCoMRRBGDfERnWY7ta2Hdk=; b=Oi+zYOA7np20AWHEV7W6CBSlZhDDh49nfoQtkE9wtbXtkp837VRUzh3g2FoHf6dwpW i3paWJpapHte9YuLIPuraeJj4annAFgvba1OBwXrpGT0NNK26kQwPMkeZmVSfqgitw9f 4HcoOrTb4rc77wRkQeegEauqlTJCuo4Q/+EUdgQqWU9543rGPg41YnMxKdAswzvn+U/J yLZBHasiGSVRKJBg09U3I3+cOjB6cx6Y7j845e+qTcWBa7khchITvnOx9Coe64aNcWbI PTIvchHOojIM/EKqJFiALdYX8MAE1MJbCvN5vQuTlL7eyolO9O8xC+0s4l7/C1NJHPlC IROg== 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=xm+DwCqYDVAFmaexnNhGuLCoMRRBGDfERnWY7ta2Hdk=; b=Cu8WSwN8LyXzjprZ9fPJkFhtVuUK1nHWHN8q1sxnJ0A9V2sEBMTgeI27jlnAUw5ovC kEetZ3b56iuEjMSsE0tLBq3Xqds6SsDdCOYO92ZKQbRyYjkt/Q+CA/qr6aaKJokJqH5f pp9aQU36ySagVLPe2a5SBSdZDumijpk+U+M/rtlZ4NpqpGcsHZaOg4vzDYRa3uWg06jf C2yRpOMQSKJ98xwkvxSDXv/uc4rF9LFPdHc+ZQFAOMk7r7NomupjunaOiBG4O7r9LNKR DJuCFrjeK7ht1tl5D/QlU1uQ6Dq0If+HJz/ny/2JE0K+sIvdMzhbN4fLT4cAqJHjSmth rp6g== X-Gm-Message-State: APjAAAWnLv+GdJzwhnRekkui4ttnNEwgjwjY1M5lwGm4Fz4bW+cIRC7J lKArXqF1JzNkQGObgPQ79OIHs+aGxRZwlTeM0tZ1JuHZdiZnbDsuU4OTrU1HkujiaWVs2BkCILg HA0hyJhrtPafKn3kV3KzEW9a0SHijrUgamsqmgbXUzmFpQoqWCNTZ3Q== X-Google-Smtp-Source: APXvYqxAC0fXvQlk4s2nrhMYwyk9+AD5ntCoT63A8DQ7mpaoeDu5yiJbZT9hCeCYSuOs8+sm9Nzl3Hk= X-Received: by 2002:ab0:49c6:: with SMTP id f6mr1812653uad.3.1567697233912; Thu, 05 Sep 2019 08:27:13 -0700 (PDT) Date: Thu, 5 Sep 2019 08:27:04 -0700 In-Reply-To: <20190905152709.111193-1-sdf@google.com> Message-Id: <20190905152709.111193-2-sdf@google.com> Mime-Version: 1.0 References: <20190905152709.111193-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.187.g17f5b7556c-goog Subject: [PATCH bpf-next v2 1/6] selftests/bpf: test_progs: add test__join_cgroup helper From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org test__join_cgroup() combines the following operations that usually go hand in hand and returns cgroup fd: * setup cgroup environment (make sure cgroupfs is mounted) * mkdir cgroup * join cgroup It also marks a test as a "cgroup cleanup needed" and removes cgroup state after the test is done. Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/Makefile | 4 +-- tools/testing/selftests/bpf/test_progs.c | 38 ++++++++++++++++++++++++ tools/testing/selftests/bpf/test_progs.h | 1 + 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index c7595b4ed55d..e145954d3765 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -102,7 +102,7 @@ $(OUTPUT)/test_socket_cookie: cgroup_helpers.c $(OUTPUT)/test_sockmap: cgroup_helpers.c $(OUTPUT)/test_tcpbpf_user: cgroup_helpers.c $(OUTPUT)/test_tcpnotify_user: cgroup_helpers.c trace_helpers.c -$(OUTPUT)/test_progs: trace_helpers.c +$(OUTPUT)/test_progs: cgroup_helpers.c trace_helpers.c $(OUTPUT)/get_cgroup_id_user: cgroup_helpers.c $(OUTPUT)/test_cgroup_storage: cgroup_helpers.c $(OUTPUT)/test_netcnt: cgroup_helpers.c @@ -196,7 +196,7 @@ $(ALU32_BUILD_DIR)/test_progs_32: test_progs.c $(OUTPUT)/libbpf.a\ | $(ALU32_BUILD_DIR) $(CC) $(TEST_PROGS_CFLAGS) $(CFLAGS) \ -o $(ALU32_BUILD_DIR)/test_progs_32 \ - test_progs.c test_stub.c trace_helpers.c prog_tests/*.c \ + test_progs.c test_stub.c cgroup_helpers.c trace_helpers.c prog_tests/*.c \ $(OUTPUT)/libbpf.a $(LDLIBS) $(ALU32_BUILD_DIR)/test_progs_32: $(PROG_TESTS_H) diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index e8616e778cb5..af75a1c7a458 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -2,6 +2,7 @@ /* Copyright (c) 2017 Facebook */ #include "test_progs.h" +#include "cgroup_helpers.h" #include "bpf_rlimit.h" #include #include @@ -17,6 +18,7 @@ struct prog_test_def { int error_cnt; int skip_cnt; bool tested; + bool need_cgroup_cleanup; const char *subtest_name; int subtest_num; @@ -122,6 +124,39 @@ void test__fail(void) env.test->error_cnt++; } +int test__join_cgroup(const char *path) +{ + int fd; + + if (!env.test->need_cgroup_cleanup) { + if (setup_cgroup_environment()) { + fprintf(stderr, + "#%d %s: Failed to setup cgroup environment\n", + env.test->test_num, env.test->test_name); + return -1; + } + + env.test->need_cgroup_cleanup = true; + } + + fd = create_and_get_cgroup(path); + if (fd < 0) { + fprintf(stderr, + "#%d %s: Failed to create cgroup '%s' (errno=%d)\n", + env.test->test_num, env.test->test_name, path, errno); + return fd; + } + + if (join_cgroup(path)) { + fprintf(stderr, + "#%d %s: Failed to join cgroup '%s' (errno=%d)\n", + env.test->test_num, env.test->test_name, path, errno); + return -1; + } + + return fd; +} + struct ipv4_packet pkt_v4 = { .eth.h_proto = __bpf_constant_htons(ETH_P_IP), .iph.ihl = 5, @@ -530,6 +565,9 @@ int main(int argc, char **argv) fprintf(env.stdout, "#%d %s:%s\n", test->test_num, test->test_name, test->error_cnt ? "FAIL" : "OK"); + + if (test->need_cgroup_cleanup) + cleanup_cgroup_environment(); } stdio_restore(); printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h index c8edb9464ba6..e518bd5da3e2 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -71,6 +71,7 @@ extern void test__force_log(); extern bool test__start_subtest(const char *name); extern void test__skip(void); extern void test__fail(void); +extern int test__join_cgroup(const char *path); #define MAGIC_BYTES 123 From patchwork Thu Sep 5 15:27:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1158510 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="gVluAko2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46PPgq0rzGz9s4Y for ; Fri, 6 Sep 2019 01:27:19 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388497AbfIEP1S (ORCPT ); Thu, 5 Sep 2019 11:27:18 -0400 Received: from mail-pl1-f201.google.com ([209.85.214.201]:56689 "EHLO mail-pl1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390412AbfIEP1R (ORCPT ); Thu, 5 Sep 2019 11:27:17 -0400 Received: by mail-pl1-f201.google.com with SMTP id v4so1646278plp.23 for ; Thu, 05 Sep 2019 08:27:17 -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=bj3xTPEhTNL/GdpXBmTQIcsjFTPbC6eexVZEhONF5Rc=; b=gVluAko2a/F3Nvstd2Tgbn2vJ3LuQ5zcIg8HCyr3CKxebMMzhLdhz9ipZbHPFzaQaH nhBSSHyoIio375Z7jF8AwkBTeRYu8fYoXvu8ffw8axc0ajO21RJDSkaLb+4Ofjvh30cV 4sQ8TAkgpV7w9pmaYZhrBGxXeSio+3NAgygFBibqYd9oWzeBKd/kYDEFMtLI1t6etTXp kqnv2vibb24J4VO7qArGYbIH/Y4deah667PDvfFQGXZG6COmwBRyXQ5E3aGgNReR4mRM QHlR5y8u7W7BtMJ5V1+2mIX5mT8QERSxZCoGmIn9m2SG3+V7Pe14PHhIDEc4Yrh8hVmx MbKw== 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=bj3xTPEhTNL/GdpXBmTQIcsjFTPbC6eexVZEhONF5Rc=; b=KwGPa9RCJo7usig9wMfHiS6OOpNg2F0OwrHwSu2gFzp6QwElA24ORDXJWLn27ffo8U MMWUFUf6pemvYEME2XOW6sFNWgW5e70t7Y0cyrhD55J5iWOwSLMXaSCNC5SnkLvrTW5N MI+UfRQhaAAQwbzcU4K9q7sGA31RrPLi2ptyvOODuWrKF41H0/tqAIOYKvH1Qhk/4q0g ciQ9qw4xllOQUWjT9+5fFikovJ/HXZ21jYEJx+jfh99REzAEoSni3rb2VrjO1GpRb5CK FYih/KzhzZ8v56+y7OCKvYZluOsI/aZn0d+2R+zcHNQ/a454+lN0E6KMAPbBQQ+YUU+n j7gQ== X-Gm-Message-State: APjAAAWrsD5mGoV8U3leTZAJoLMjO28ReFEnDL3mSvOdmQ0NWQBcfsG+ 0aSLAQ8pEQtuzVIcZyq1TYhZ0oM7EzR+MOV9o73icsUV7mRp50kb7aj/RnEn6Al3sn/ywu/MyQc 4PSqLnkdyOYb47mE1akZGciTsUxjj2crgZXE2t1jbgx9I9m50PESb2A== X-Google-Smtp-Source: APXvYqyfrHAthA0CDE+zTEexx3zhUbqwQ6vy3mtZ675LFmKAm7PW+ioig4IqJgxkqpJ2Gg/lhRFwAMs= X-Received: by 2002:a65:464d:: with SMTP id k13mr3309155pgr.99.1567697236440; Thu, 05 Sep 2019 08:27:16 -0700 (PDT) Date: Thu, 5 Sep 2019 08:27:05 -0700 In-Reply-To: <20190905152709.111193-1-sdf@google.com> Message-Id: <20190905152709.111193-3-sdf@google.com> Mime-Version: 1.0 References: <20190905152709.111193-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.187.g17f5b7556c-goog Subject: [PATCH bpf-next v2 2/6] selftests/bpf: test_progs: convert test_sockopt From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move the files, adjust includes, remove entry from Makefile & .gitignore Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/.gitignore | 1 - tools/testing/selftests/bpf/Makefile | 3 +- .../{test_sockopt.c => prog_tests/sockopt.c} | 50 +++---------------- 3 files changed, 8 insertions(+), 46 deletions(-) rename tools/testing/selftests/bpf/{test_sockopt.c => prog_tests/sockopt.c} (96%) diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore index 60c9338cd9b4..0315120eac8f 100644 --- a/tools/testing/selftests/bpf/.gitignore +++ b/tools/testing/selftests/bpf/.gitignore @@ -39,7 +39,6 @@ libbpf.so.* test_hashmap test_btf_dump xdping -test_sockopt test_sockopt_sk test_sockopt_multi test_sockopt_inherit diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index e145954d3765..08e2183974d5 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -28,7 +28,7 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test test_sock test_btf test_sockmap get_cgroup_id_user test_socket_cookie \ test_cgroup_storage test_select_reuseport test_section_names \ test_netcnt test_tcpnotify_user test_sock_fields test_sysctl test_hashmap \ - test_btf_dump test_cgroup_attach xdping test_sockopt test_sockopt_sk \ + test_btf_dump test_cgroup_attach xdping test_sockopt_sk \ test_sockopt_multi test_sockopt_inherit test_tcp_rtt BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c))) @@ -109,7 +109,6 @@ $(OUTPUT)/test_netcnt: cgroup_helpers.c $(OUTPUT)/test_sock_fields: cgroup_helpers.c $(OUTPUT)/test_sysctl: cgroup_helpers.c $(OUTPUT)/test_cgroup_attach: cgroup_helpers.c -$(OUTPUT)/test_sockopt: cgroup_helpers.c $(OUTPUT)/test_sockopt_sk: cgroup_helpers.c $(OUTPUT)/test_sockopt_multi: cgroup_helpers.c $(OUTPUT)/test_sockopt_inherit: cgroup_helpers.c diff --git a/tools/testing/selftests/bpf/test_sockopt.c b/tools/testing/selftests/bpf/prog_tests/sockopt.c similarity index 96% rename from tools/testing/selftests/bpf/test_sockopt.c rename to tools/testing/selftests/bpf/prog_tests/sockopt.c index 23bd0819382d..64cffb94307c 100644 --- a/tools/testing/selftests/bpf/test_sockopt.c +++ b/tools/testing/selftests/bpf/prog_tests/sockopt.c @@ -1,22 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "bpf_rlimit.h" -#include "bpf_util.h" +#include #include "cgroup_helpers.h" -#define CG_PATH "/sockopt" - static char bpf_log_buf[4096]; static bool verbose; @@ -983,39 +968,18 @@ static int run_test(int cgroup_fd, struct sockopt_test *test) return ret; } -int main(int args, char **argv) +void test_sockopt(void) { - int err = EXIT_FAILURE, error_cnt = 0; int cgroup_fd, i; - if (setup_cgroup_environment()) - goto cleanup_obj; - - cgroup_fd = create_and_get_cgroup(CG_PATH); - if (cgroup_fd < 0) - goto cleanup_cgroup_env; - - if (join_cgroup(CG_PATH)) - goto cleanup_cgroup; + cgroup_fd = test__join_cgroup("/sockopt"); + if (CHECK_FAIL(cgroup_fd < 0)) + return; for (i = 0; i < ARRAY_SIZE(tests); i++) { - int err = run_test(cgroup_fd, &tests[i]); - - if (err) - error_cnt++; - - printf("#%d %s: %s\n", i, err ? "FAIL" : "PASS", - tests[i].descr); + printf("#%d %s:\n", i, tests[i].descr); + CHECK_FAIL(run_test(cgroup_fd, &tests[i])); } - printf("Summary: %ld PASSED, %d FAILED\n", - ARRAY_SIZE(tests) - error_cnt, error_cnt); - err = error_cnt ? EXIT_FAILURE : EXIT_SUCCESS; - -cleanup_cgroup: close(cgroup_fd); -cleanup_cgroup_env: - cleanup_cgroup_environment(); -cleanup_obj: - return err; } From patchwork Thu Sep 5 15:27:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1158512 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="sHkG+YyG"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46PPgs4Qyhz9s4Y for ; Fri, 6 Sep 2019 01:27:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390428AbfIEP1U (ORCPT ); Thu, 5 Sep 2019 11:27:20 -0400 Received: from mail-pg1-f201.google.com ([209.85.215.201]:45131 "EHLO mail-pg1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390421AbfIEP1U (ORCPT ); Thu, 5 Sep 2019 11:27:20 -0400 Received: by mail-pg1-f201.google.com with SMTP id i12so1539058pgm.12 for ; Thu, 05 Sep 2019 08:27:19 -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=Tbz4Llm/4l7fjtRQCiC4O/nrvoLwptRAGpztTTGChds=; b=sHkG+YyGFJI/kQDymP09qG3i7MYmY/EwJ6vnsdeafJYKS9NxAhQk4J8DYcmo5nzJ8e 4xa47S5JU7Eyv2puTzCJsB3ZwNBhdWixgX5bmYEQxI6tA6/5rR/h2avyAc3tY7SOWorp 5Xg6o2OOa5fK1JYz4t4Cv8mCygnncfHsQE5Trc8guCWzvzRUEhy6dgcr2mJfBRNMuO1Q fkzR24dzrxulxQd5il3lHQituWx/cDzKkpkF1MEXTKQ14CX2h/0/sh07wRC7gp2aaQLa e93H2/jOg6pDnpJSJqziLbfxjc4eYmL2di4Ig4PfxtLM7cqNPdpLbZzP8F0YiTDLff+g Ha/A== 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=Tbz4Llm/4l7fjtRQCiC4O/nrvoLwptRAGpztTTGChds=; b=EBsgvy38/igghAbaYgt1hQQJPcCzxtwLg3HpcW6Is9W/v43Sz+ySemw4PyoUoHCD8R ZPptRUaLOuyV6a7SlZ9Bs4eztMtlH71sP9uo9yIofJQRMya7lZHhEajk56oeGO+KrX8l rSADsHBMn527Lv9U5tUIhVLTP+6tGzY+fPpE6XKyXHeWlQnw+/pI5SleqL1FLL5NkIVE Vw15N5o5Xk/A1vFqVq0bn0TYKmr7IkNaLODp+LaRo9clfvYSLmNKMZw7CSnIOY7NVSG4 /hGOx4rPqJDON+/a/1ITKNQb4r2r0J9Puei6EXFiCsYXLvfg5CPifzUkMHgfV6il22iQ 62Ew== X-Gm-Message-State: APjAAAXtK2fDfGen7YythqHDusFHAfvJsgeS8RP1i8//IklJno0BCKrq Uxbw3uAit9W9JQeUl2UibD5I+e2xaQgO6lpqwaGpwFRNX2y18bSpGHilvAbTaCRX7vhFtpQP/jQ 7pg49J/XmuAqYJN0DemUxl0fNAkUoJFUsBzLUkHbZQ0uyxl4YQ/7bIA== X-Google-Smtp-Source: APXvYqxk+mkk55YPPOwW5LTHjXS3ZU24COJIFKAjnAQACbsk8Dm57Gwo3vm3R6xH1unrgmljyLFexL4= X-Received: by 2002:a63:2006:: with SMTP id g6mr3614502pgg.287.1567697238970; Thu, 05 Sep 2019 08:27:18 -0700 (PDT) Date: Thu, 5 Sep 2019 08:27:06 -0700 In-Reply-To: <20190905152709.111193-1-sdf@google.com> Message-Id: <20190905152709.111193-4-sdf@google.com> Mime-Version: 1.0 References: <20190905152709.111193-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.187.g17f5b7556c-goog Subject: [PATCH bpf-next v2 3/6] selftests/bpf: test_progs: convert test_sockopt_sk From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move the files, adjust includes, remove entry from Makefile & .gitignore Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/.gitignore | 1 - tools/testing/selftests/bpf/Makefile | 3 +- .../sockopt_sk.c} | 60 ++++--------------- tools/testing/selftests/bpf/test_progs.h | 3 +- 4 files changed, 15 insertions(+), 52 deletions(-) rename tools/testing/selftests/bpf/{test_sockopt_sk.c => prog_tests/sockopt_sk.c} (79%) diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore index 0315120eac8f..bc83c1a7ea1b 100644 --- a/tools/testing/selftests/bpf/.gitignore +++ b/tools/testing/selftests/bpf/.gitignore @@ -39,7 +39,6 @@ libbpf.so.* test_hashmap test_btf_dump xdping -test_sockopt_sk test_sockopt_multi test_sockopt_inherit test_tcp_rtt diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 08e2183974d5..ea790901297c 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -28,7 +28,7 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test test_sock test_btf test_sockmap get_cgroup_id_user test_socket_cookie \ test_cgroup_storage test_select_reuseport test_section_names \ test_netcnt test_tcpnotify_user test_sock_fields test_sysctl test_hashmap \ - test_btf_dump test_cgroup_attach xdping test_sockopt_sk \ + test_btf_dump test_cgroup_attach xdping \ test_sockopt_multi test_sockopt_inherit test_tcp_rtt BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c))) @@ -109,7 +109,6 @@ $(OUTPUT)/test_netcnt: cgroup_helpers.c $(OUTPUT)/test_sock_fields: cgroup_helpers.c $(OUTPUT)/test_sysctl: cgroup_helpers.c $(OUTPUT)/test_cgroup_attach: cgroup_helpers.c -$(OUTPUT)/test_sockopt_sk: cgroup_helpers.c $(OUTPUT)/test_sockopt_multi: cgroup_helpers.c $(OUTPUT)/test_sockopt_inherit: cgroup_helpers.c $(OUTPUT)/test_tcp_rtt: cgroup_helpers.c diff --git a/tools/testing/selftests/bpf/test_sockopt_sk.c b/tools/testing/selftests/bpf/prog_tests/sockopt_sk.c similarity index 79% rename from tools/testing/selftests/bpf/test_sockopt_sk.c rename to tools/testing/selftests/bpf/prog_tests/sockopt_sk.c index e4f6055d92e9..2061a6beac0f 100644 --- a/tools/testing/selftests/bpf/test_sockopt_sk.c +++ b/tools/testing/selftests/bpf/prog_tests/sockopt_sk.c @@ -1,23 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "bpf_rlimit.h" -#include "bpf_util.h" +#include #include "cgroup_helpers.h" -#define CG_PATH "/sockopt" - #define SOL_CUSTOM 0xdeadbeef static int getsetsockopt(void) @@ -176,7 +160,7 @@ static int prog_attach(struct bpf_object *obj, int cgroup_fd, const char *title) return 0; } -static int run_test(int cgroup_fd) +static void run_test(int cgroup_fd) { struct bpf_prog_load_attr attr = { .file = "./sockopt_sk.o", @@ -186,51 +170,31 @@ static int run_test(int cgroup_fd) int err; err = bpf_prog_load_xattr(&attr, &obj, &ignored); - if (err) { - log_err("Failed to load BPF object"); - return -1; - } + if (CHECK_FAIL(err)) + return; err = prog_attach(obj, cgroup_fd, "cgroup/getsockopt"); - if (err) + if (CHECK_FAIL(err)) goto close_bpf_object; err = prog_attach(obj, cgroup_fd, "cgroup/setsockopt"); - if (err) + if (CHECK_FAIL(err)) goto close_bpf_object; - err = getsetsockopt(); + CHECK_FAIL(getsetsockopt()); close_bpf_object: bpf_object__close(obj); - return err; } -int main(int args, char **argv) +void test_sockopt_sk(void) { int cgroup_fd; - int err = EXIT_SUCCESS; - - if (setup_cgroup_environment()) - goto cleanup_obj; - - cgroup_fd = create_and_get_cgroup(CG_PATH); - if (cgroup_fd < 0) - goto cleanup_cgroup_env; - - if (join_cgroup(CG_PATH)) - goto cleanup_cgroup; - - if (run_test(cgroup_fd)) - err = EXIT_FAILURE; - printf("test_sockopt_sk: %s\n", - err == EXIT_SUCCESS ? "PASSED" : "FAILED"); + cgroup_fd = test__join_cgroup("/sockopt_sk"); + if (CHECK_FAIL(cgroup_fd < 0)) + return; -cleanup_cgroup: + run_test(cgroup_fd); close(cgroup_fd); -cleanup_cgroup_env: - cleanup_cgroup_environment(); -cleanup_obj: - return err; } diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h index e518bd5da3e2..0c48f64f732b 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -16,9 +16,10 @@ typedef __u16 __sum16; #include #include #include -#include +#include #include #include +#include #include #include From patchwork Thu Sep 5 15:27:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1158514 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="F2XORRjW"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46PPgx1yphz9s3Z for ; Fri, 6 Sep 2019 01:27:25 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390441AbfIEP1Y (ORCPT ); Thu, 5 Sep 2019 11:27:24 -0400 Received: from mail-pl1-f201.google.com ([209.85.214.201]:48822 "EHLO mail-pl1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390429AbfIEP1X (ORCPT ); Thu, 5 Sep 2019 11:27:23 -0400 Received: by mail-pl1-f201.google.com with SMTP id r9so1654847plo.15 for ; Thu, 05 Sep 2019 08:27:22 -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=PKBNn7QHICb88J96DR4dcB71cwak21YXIgp4bI9raYQ=; b=F2XORRjW42vLc+Dr4Fybkid7ICSDsRkq8sQZLq5LP2eBNCmhFFmY6TX+hJ19yQ4Qbn RlUslw80Vf3NGFrrAKD6FJ0+UGQvE+lEySR2TomNesKBkXlUwQQOjmUG9FtfdV92HIIg go/uVWbgOvFuL5u7mblwpDtRbnrrYbJdRo9e66oLvL7DRT4zO2rYzPvsFUdtZ6fDc8Hy zV3wkMqgmS2RekUwgN1ckQOGh5OvDCgh9sP+tRioANEHlpQxxvu8a3V0kFJ++Infh4s5 byXyzslu2RagyIwiaYDwi3vPugkHef94VSikVC1yU1DV1QZ25F4z9PursChIF0D5ebHk SsNA== 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=PKBNn7QHICb88J96DR4dcB71cwak21YXIgp4bI9raYQ=; b=tGDu5AzXXhnJs5OHI98yR3VlM95KXLR83PXQyVbPt+MkD9vEP+cO2xat4I5HAOgkEN pkY+9A71T48Z6PChl+um5fuwMceMbDL8hIQ7oLTiRC59/IoN7CLs7ajesGI+UG0VtbBq jSgJKnBoarQADhj7pSYejVkvlXOXrJT4UFLLh0v1TtOxfmnEW1wJbB2WxtOmsHR4IFHT 9aHrFg1cCKBWU/qq8j+ctTgQz5Ji+AqRj/XdqWMICo9QCqbRl4InyddDKczkc1DSZWrT Q3JRahemvtycrxCTvzUZzQddCd19G+VI8y1Yp916/eWGCEnEfDbe12+X/8Kwflg4y0RE 0OOA== X-Gm-Message-State: APjAAAXFFJ4KvGHmAtKhJs28U826pvTxHOMA9abE8G4n6cWNSXb7YnMT pDuMlywLqS8pQbOqVpr/14M2LHVDnvmk8JwY4lp2tVWXL25edJE0PZcCWbsHl6+Qha4Yb9FfPX2 kKzq3HZ4XbGdlkamZaLHCKKWBEccxkMLrUgT/Mk6OofjTnB8lZBU90w== X-Google-Smtp-Source: APXvYqwvtRzM3yZx+LcV3hYVAFTJ9ZOr6zoo/ux0/mAhLsU8ZILtsNjs7jGd/jbag1PTNb2cEH4N3nw= X-Received: by 2002:a65:62d1:: with SMTP id m17mr3858400pgv.271.1567697241474; Thu, 05 Sep 2019 08:27:21 -0700 (PDT) Date: Thu, 5 Sep 2019 08:27:07 -0700 In-Reply-To: <20190905152709.111193-1-sdf@google.com> Message-Id: <20190905152709.111193-5-sdf@google.com> Mime-Version: 1.0 References: <20190905152709.111193-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.187.g17f5b7556c-goog Subject: [PATCH bpf-next v2 4/6] selftests/bpf: test_progs: convert test_sockopt_multi From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move the files, adjust includes, remove entry from Makefile & .gitignore Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/.gitignore | 1 - tools/testing/selftests/bpf/Makefile | 3 +- .../sockopt_multi.c} | 62 +++---------------- 3 files changed, 11 insertions(+), 55 deletions(-) rename tools/testing/selftests/bpf/{test_sockopt_multi.c => prog_tests/sockopt_multi.c} (83%) diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore index bc83c1a7ea1b..4143add5a11e 100644 --- a/tools/testing/selftests/bpf/.gitignore +++ b/tools/testing/selftests/bpf/.gitignore @@ -39,6 +39,5 @@ libbpf.so.* test_hashmap test_btf_dump xdping -test_sockopt_multi test_sockopt_inherit test_tcp_rtt diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index ea790901297c..271f8ce89c97 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -29,7 +29,7 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test test_cgroup_storage test_select_reuseport test_section_names \ test_netcnt test_tcpnotify_user test_sock_fields test_sysctl test_hashmap \ test_btf_dump test_cgroup_attach xdping \ - test_sockopt_multi test_sockopt_inherit test_tcp_rtt + test_sockopt_inherit test_tcp_rtt BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c))) TEST_GEN_FILES = $(BPF_OBJ_FILES) @@ -109,7 +109,6 @@ $(OUTPUT)/test_netcnt: cgroup_helpers.c $(OUTPUT)/test_sock_fields: cgroup_helpers.c $(OUTPUT)/test_sysctl: cgroup_helpers.c $(OUTPUT)/test_cgroup_attach: cgroup_helpers.c -$(OUTPUT)/test_sockopt_multi: cgroup_helpers.c $(OUTPUT)/test_sockopt_inherit: cgroup_helpers.c $(OUTPUT)/test_tcp_rtt: cgroup_helpers.c diff --git a/tools/testing/selftests/bpf/test_sockopt_multi.c b/tools/testing/selftests/bpf/prog_tests/sockopt_multi.c similarity index 83% rename from tools/testing/selftests/bpf/test_sockopt_multi.c rename to tools/testing/selftests/bpf/prog_tests/sockopt_multi.c index 4be3441db867..29188d6f5c8d 100644 --- a/tools/testing/selftests/bpf/test_sockopt_multi.c +++ b/tools/testing/selftests/bpf/prog_tests/sockopt_multi.c @@ -1,19 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "bpf_rlimit.h" -#include "bpf_util.h" +#include #include "cgroup_helpers.h" static int prog_attach(struct bpf_object *obj, int cgroup_fd, const char *title) @@ -308,7 +294,7 @@ static int run_setsockopt_test(struct bpf_object *obj, int cg_parent, return err; } -int main(int argc, char **argv) +void test_sockopt_multi(void) { struct bpf_prog_load_attr attr = { .file = "./sockopt_multi.o", @@ -319,56 +305,28 @@ int main(int argc, char **argv) int err = -1; int ignored; - if (setup_cgroup_environment()) { - log_err("Failed to setup cgroup environment\n"); - goto out; - } - - cg_parent = create_and_get_cgroup("/parent"); - if (cg_parent < 0) { - log_err("Failed to create cgroup /parent\n"); - goto out; - } - - cg_child = create_and_get_cgroup("/parent/child"); - if (cg_child < 0) { - log_err("Failed to create cgroup /parent/child\n"); + cg_parent = test__join_cgroup("/parent"); + if (CHECK_FAIL(cg_parent < 0)) goto out; - } - if (join_cgroup("/parent/child")) { - log_err("Failed to join cgroup /parent/child\n"); + cg_child = test__join_cgroup("/parent/child"); + if (CHECK_FAIL(cg_child < 0)) goto out; - } err = bpf_prog_load_xattr(&attr, &obj, &ignored); - if (err) { - log_err("Failed to load BPF object"); + if (CHECK_FAIL(err)) goto out; - } sock_fd = socket(AF_INET, SOCK_STREAM, 0); - if (sock_fd < 0) { - log_err("Failed to create socket"); + if (CHECK_FAIL(sock_fd < 0)) goto out; - } - if (run_getsockopt_test(obj, cg_parent, cg_child, sock_fd)) - err = -1; - printf("test_sockopt_multi: getsockopt %s\n", - err ? "FAILED" : "PASSED"); - - if (run_setsockopt_test(obj, cg_parent, cg_child, sock_fd)) - err = -1; - printf("test_sockopt_multi: setsockopt %s\n", - err ? "FAILED" : "PASSED"); + CHECK_FAIL(run_getsockopt_test(obj, cg_parent, cg_child, sock_fd)); + CHECK_FAIL(run_setsockopt_test(obj, cg_parent, cg_child, sock_fd)); out: close(sock_fd); bpf_object__close(obj); close(cg_child); close(cg_parent); - - printf("test_sockopt_multi: %s\n", err ? "FAILED" : "PASSED"); - return err ? EXIT_FAILURE : EXIT_SUCCESS; } From patchwork Thu Sep 5 15:27:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1158516 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="DOkxQ06y"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46PPgz45sGz9s4Y for ; Fri, 6 Sep 2019 01:27:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390452AbfIEP10 (ORCPT ); Thu, 5 Sep 2019 11:27:26 -0400 Received: from mail-qt1-f201.google.com ([209.85.160.201]:36534 "EHLO mail-qt1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390445AbfIEP1Z (ORCPT ); Thu, 5 Sep 2019 11:27:25 -0400 Received: by mail-qt1-f201.google.com with SMTP id o1so2913863qtp.3 for ; Thu, 05 Sep 2019 08:27:24 -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=1M7koa/+IrNoKIYdGoxU0RnSi5kAFxlJXP3OMpiRbEk=; b=DOkxQ06yJ/o7snhApoutR57hrtJBlFjJqLzO8KqAsTA9p5yVQS4BZCbNv50BKv5zdN XJ2pIaPYtLQSWzHnWPZWRNnIOb0Vdi2b1DxHBcoCh+os739YvDIR2q2bHLFptmxWto7K HWDbtGHLyd6AlKO85eZADJjMG7lqrIEEb7E0pOvFWXhRKz6tSt9I3HqlNV/9gyeA6QPi fw7Uyb0ecJpK83uHVsl65HcSy7NV+bSI3ZPfrwk2V70yIELIeEonDMR0JAcdd2ZOMNDb JaP4P06D9JfsDEfx6HKaDtBb6AIvXJyjq7MYcswZU5ptq9JBlSzs1s8H2EFMr/yvbc4V x+HA== 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=1M7koa/+IrNoKIYdGoxU0RnSi5kAFxlJXP3OMpiRbEk=; b=IchAzWrlRYI/0FbnxApG4Zm3vnrENUhvmh0L1wVc7rCDbyP90lORYNVMYWY2Ffqotn QzmzjfuP5oFSFdAf8+M14LgGZnEA5jlbxKCJS9kBe6nVyffJs3o/o3qvv6vcPidIV97u e879PqSSg78Kiz3+Sb07ydm1VBlzLHS56puNMDxUqnwh66B7xnQhbB1wo+gjPPeAIC42 VErMCQvNCAf8UsJuBvXspi/uyJgyPCMUwl/eA3pEr4RDRE5okjhIlbpG4Bvvx7cZVCLG 5RsEMeAc0u+66OVKe3ZfIeDmYyH8uUc5jMCAnGLlKIfndlA9+96qmjxMt7vpkOLDHsqe QiFg== X-Gm-Message-State: APjAAAV+xUChDxDK4fKuLFcFrhp7Ti9s5B/3pUA+t/ngPEMOdxsQiee6 7nGAg2rlR1PHjGowVGVyh2HMSeM= X-Google-Smtp-Source: APXvYqwNKt9Lgbbx6epecWrlvNd2PkzK3bULmK2k/IYF2qm9Y7oGxv3d/92RI1POhR1+Izgh9h4o4q4= X-Received: by 2002:a0c:cc14:: with SMTP id r20mr2130655qvk.61.1567697244302; Thu, 05 Sep 2019 08:27:24 -0700 (PDT) Date: Thu, 5 Sep 2019 08:27:08 -0700 In-Reply-To: <20190905152709.111193-1-sdf@google.com> Message-Id: <20190905152709.111193-6-sdf@google.com> Mime-Version: 1.0 References: <20190905152709.111193-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.187.g17f5b7556c-goog Subject: [PATCH bpf-next v2 5/6] selftests/bpf: test_progs: convert test_sockopt_inherit From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org Move the files, adjust includes, remove entry from Makefile & .gitignore I also added pthread_cond_wait for the server thread startup. We don't want to connect to the server that's not yet up (for some reason this existing race is now more prominent with test_progs). Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/.gitignore | 1 - tools/testing/selftests/bpf/Makefile | 4 +- .../sockopt_inherit.c} | 102 ++++++++---------- 3 files changed, 43 insertions(+), 64 deletions(-) rename tools/testing/selftests/bpf/{test_sockopt_inherit.c => prog_tests/sockopt_inherit.c} (72%) diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore index 4143add5a11e..5b06bb45b500 100644 --- a/tools/testing/selftests/bpf/.gitignore +++ b/tools/testing/selftests/bpf/.gitignore @@ -39,5 +39,4 @@ libbpf.so.* test_hashmap test_btf_dump xdping -test_sockopt_inherit test_tcp_rtt diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 271f8ce89c97..fe786df1174b 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -28,8 +28,7 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test test_sock test_btf test_sockmap get_cgroup_id_user test_socket_cookie \ test_cgroup_storage test_select_reuseport test_section_names \ test_netcnt test_tcpnotify_user test_sock_fields test_sysctl test_hashmap \ - test_btf_dump test_cgroup_attach xdping \ - test_sockopt_inherit test_tcp_rtt + test_btf_dump test_cgroup_attach xdping test_tcp_rtt BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c))) TEST_GEN_FILES = $(BPF_OBJ_FILES) @@ -109,7 +108,6 @@ $(OUTPUT)/test_netcnt: cgroup_helpers.c $(OUTPUT)/test_sock_fields: cgroup_helpers.c $(OUTPUT)/test_sysctl: cgroup_helpers.c $(OUTPUT)/test_cgroup_attach: cgroup_helpers.c -$(OUTPUT)/test_sockopt_inherit: cgroup_helpers.c $(OUTPUT)/test_tcp_rtt: cgroup_helpers.c .PHONY: force diff --git a/tools/testing/selftests/bpf/test_sockopt_inherit.c b/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c similarity index 72% rename from tools/testing/selftests/bpf/test_sockopt_inherit.c rename to tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c index 1bf699815b9b..6cbeea7b4bf1 100644 --- a/tools/testing/selftests/bpf/test_sockopt_inherit.c +++ b/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c @@ -1,22 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "bpf_rlimit.h" -#include "bpf_util.h" +#include #include "cgroup_helpers.h" -#define CG_PATH "/sockopt_inherit" #define SOL_CUSTOM 0xdeadbeef #define CUSTOM_INHERIT1 0 #define CUSTOM_INHERIT2 1 @@ -74,6 +59,9 @@ static int verify_sockopt(int fd, int optname, const char *msg, char expected) return 0; } +static pthread_mutex_t server_started_mtx = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t server_started = PTHREAD_COND_INITIALIZER; + static void *server_thread(void *arg) { struct sockaddr_storage addr; @@ -82,16 +70,26 @@ static void *server_thread(void *arg) int client_fd; int err = 0; - if (listen(fd, 1) < 0) - error(1, errno, "Failed to listed on socket"); + err = listen(fd, 1); + + pthread_mutex_lock(&server_started_mtx); + pthread_cond_signal(&server_started); + pthread_mutex_unlock(&server_started_mtx); + + if (CHECK_FAIL(err < 0)) { + perror("Failed to listed on socket"); + return NULL; + } err += verify_sockopt(fd, CUSTOM_INHERIT1, "listen", 1); err += verify_sockopt(fd, CUSTOM_INHERIT2, "listen", 1); err += verify_sockopt(fd, CUSTOM_LISTENER, "listen", 1); client_fd = accept(fd, (struct sockaddr *)&addr, &len); - if (client_fd < 0) - error(1, errno, "Failed to accept client"); + if (CHECK_FAIL(client_fd < 0)) { + perror("Failed to accept client"); + return NULL; + } err += verify_sockopt(client_fd, CUSTOM_INHERIT1, "accept", 1); err += verify_sockopt(client_fd, CUSTOM_INHERIT2, "accept", 1); @@ -167,7 +165,7 @@ static int prog_attach(struct bpf_object *obj, int cgroup_fd, const char *title) return 0; } -static int run_test(int cgroup_fd) +static void run_test(int cgroup_fd) { struct bpf_prog_load_attr attr = { .file = "./sockopt_inherit.o", @@ -180,40 +178,41 @@ static int run_test(int cgroup_fd) int err; err = bpf_prog_load_xattr(&attr, &obj, &ignored); - if (err) { - log_err("Failed to load BPF object"); - return -1; - } + if (CHECK_FAIL(err)) + return; err = prog_attach(obj, cgroup_fd, "cgroup/getsockopt"); - if (err) + if (CHECK_FAIL(err)) goto close_bpf_object; err = prog_attach(obj, cgroup_fd, "cgroup/setsockopt"); - if (err) + if (CHECK_FAIL(err)) goto close_bpf_object; server_fd = start_server(); - if (server_fd < 0) { - err = -1; + if (CHECK_FAIL(server_fd < 0)) + goto close_bpf_object; + + if (CHECK_FAIL(pthread_create(&tid, NULL, server_thread, + (void *)&server_fd))) goto close_bpf_object; - } - pthread_create(&tid, NULL, server_thread, (void *)&server_fd); + pthread_mutex_lock(&server_started_mtx); + pthread_cond_wait(&server_started, &server_started_mtx); + pthread_mutex_unlock(&server_started_mtx); client_fd = connect_to_server(server_fd); - if (client_fd < 0) { - err = -1; + if (CHECK_FAIL(client_fd < 0)) goto close_server_fd; - } - err += verify_sockopt(client_fd, CUSTOM_INHERIT1, "connect", 0); - err += verify_sockopt(client_fd, CUSTOM_INHERIT2, "connect", 0); - err += verify_sockopt(client_fd, CUSTOM_LISTENER, "connect", 0); + CHECK_FAIL(verify_sockopt(client_fd, CUSTOM_INHERIT1, "connect", 0)); + CHECK_FAIL(verify_sockopt(client_fd, CUSTOM_INHERIT2, "connect", 0)); + CHECK_FAIL(verify_sockopt(client_fd, CUSTOM_LISTENER, "connect", 0)); pthread_join(tid, &server_err); - err += (int)(long)server_err; + err = (int)(long)server_err; + CHECK_FAIL(err); close(client_fd); @@ -221,33 +220,16 @@ static int run_test(int cgroup_fd) close(server_fd); close_bpf_object: bpf_object__close(obj); - return err; } -int main(int args, char **argv) +void test_sockopt_inherit(void) { int cgroup_fd; - int err = EXIT_SUCCESS; - - if (setup_cgroup_environment()) - return err; - - cgroup_fd = create_and_get_cgroup(CG_PATH); - if (cgroup_fd < 0) - goto cleanup_cgroup_env; - - if (join_cgroup(CG_PATH)) - goto cleanup_cgroup; - - if (run_test(cgroup_fd)) - err = EXIT_FAILURE; - printf("test_sockopt_inherit: %s\n", - err == EXIT_SUCCESS ? "PASSED" : "FAILED"); + cgroup_fd = test__join_cgroup("/sockopt_inherit"); + if (CHECK_FAIL(cgroup_fd < 0)) + return; -cleanup_cgroup: + run_test(cgroup_fd); close(cgroup_fd); -cleanup_cgroup_env: - cleanup_cgroup_environment(); - return err; } From patchwork Thu Sep 5 15:27:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1158517 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="dbRXurRG"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46PPh40Ybkz9sBF for ; Fri, 6 Sep 2019 01:27:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390462AbfIEP1b (ORCPT ); Thu, 5 Sep 2019 11:27:31 -0400 Received: from mail-pf1-f201.google.com ([209.85.210.201]:46270 "EHLO mail-pf1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390456AbfIEP11 (ORCPT ); Thu, 5 Sep 2019 11:27:27 -0400 Received: by mail-pf1-f201.google.com with SMTP id f2so2084751pfk.13 for ; Thu, 05 Sep 2019 08:27:27 -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=lTHI3kK5VYAt2CUHcJhzYihkdJRkFD9/pz9e86BhyNk=; b=dbRXurRGjsoIm7XS6NUTHIkKM1cvq603d5n3+CY+WiSo1vSDjJYST127Frp1uhdu0L lM4dGvObc0J7TY53KOogvQGXgV5lMyiNEg6EZwxiH7ap449GfPzbg4m9GopUWASdTzOp T2ktnzhPkTPBm5OsxFZm+AwNKkD6PJoHQLs4xa9UiTzQGg902UWcSks0GM6eRUQ1pAdX QkvFE7Q1rB/RpAywXRBkPwR8M7VXU5WBZ3Tg/08SY5iM1G84P7MrHSTCfLIJ4E/+GhNL /qFeKK2RRLymO87CXQYEekdGY8cO6SAJTzxVq9djiv26zVWT9DB5nAwGh9wUwlPQhnFO 0zNg== 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=lTHI3kK5VYAt2CUHcJhzYihkdJRkFD9/pz9e86BhyNk=; b=YAVuUVwp+Czuty8REig087gdJU6XVwrvpsgw8AKeZhm3XAzO7OaSgf0B4MBA4AQACa zTUcUa5UJthFkOWEDZoU1ag7nXLj2sD1XUPlHmR0bhmNAu1gjWPeACLfFaSs67WlBKYO uSmMi7+gswMaHHqEzFJgclD6lPzLLyYfd8KTKtSlkFUpRCD0Mb038P2ty/MVHn0YnK4N VlRMqY63KVgDQ8SjZotXV4qQwtQpE18xAGBfx/06h5erH18CGdurZpi+WH3eKs+3x07E Lk64iZIBFAbVb7wFbnqQdM3apJqtJqZgnUvRXp0EbfXXBavZwk44urQys1dKGuY8ychK 1pHg== X-Gm-Message-State: APjAAAXl7JUejCRNAKslh6CkdV+RGjyIFa6GgcTTEYRFNqbuQ9bQIKSl 3Ru+Dy9HZfpHrTsX+1DpDwiegb3mYXTTwYHoNwQ/qa70pE4Vtc0SDKrJnLFeXxr8bt2IOn/QulG nW+5jghNO4Tbbhag81afEwfWFZ0MS4eryK8aImcwr7O7+9Hxywp/s8g== X-Google-Smtp-Source: APXvYqzO8KFBDN3XXKCFYnMJLJFUojMRg9vpzHWGOumWWaLiCBuyWxzMLc+IFQ1ZmGVP32wVLBTmThY= X-Received: by 2002:a63:7e41:: with SMTP id o1mr3786395pgn.212.1567697246413; Thu, 05 Sep 2019 08:27:26 -0700 (PDT) Date: Thu, 5 Sep 2019 08:27:09 -0700 In-Reply-To: <20190905152709.111193-1-sdf@google.com> Message-Id: <20190905152709.111193-7-sdf@google.com> Mime-Version: 1.0 References: <20190905152709.111193-1-sdf@google.com> X-Mailer: git-send-email 2.23.0.187.g17f5b7556c-goog Subject: [PATCH bpf-next v2 6/6] selftests/bpf: test_progs: convert test_tcp_rtt From: Stanislav Fomichev To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move the files, adjust includes, remove entry from Makefile & .gitignore Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/.gitignore | 1 - tools/testing/selftests/bpf/Makefile | 3 +- .../{test_tcp_rtt.c => prog_tests/tcp_rtt.c} | 83 ++++++------------- 3 files changed, 28 insertions(+), 59 deletions(-) rename tools/testing/selftests/bpf/{test_tcp_rtt.c => prog_tests/tcp_rtt.c} (76%) diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore index 5b06bb45b500..7470327edcfe 100644 --- a/tools/testing/selftests/bpf/.gitignore +++ b/tools/testing/selftests/bpf/.gitignore @@ -39,4 +39,3 @@ libbpf.so.* test_hashmap test_btf_dump xdping -test_tcp_rtt diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index fe786df1174b..811f1b24d02b 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -28,7 +28,7 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test test_sock test_btf test_sockmap get_cgroup_id_user test_socket_cookie \ test_cgroup_storage test_select_reuseport test_section_names \ test_netcnt test_tcpnotify_user test_sock_fields test_sysctl test_hashmap \ - test_btf_dump test_cgroup_attach xdping test_tcp_rtt + test_btf_dump test_cgroup_attach xdping BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c))) TEST_GEN_FILES = $(BPF_OBJ_FILES) @@ -108,7 +108,6 @@ $(OUTPUT)/test_netcnt: cgroup_helpers.c $(OUTPUT)/test_sock_fields: cgroup_helpers.c $(OUTPUT)/test_sysctl: cgroup_helpers.c $(OUTPUT)/test_cgroup_attach: cgroup_helpers.c -$(OUTPUT)/test_tcp_rtt: cgroup_helpers.c .PHONY: force diff --git a/tools/testing/selftests/bpf/test_tcp_rtt.c b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c similarity index 76% rename from tools/testing/selftests/bpf/test_tcp_rtt.c rename to tools/testing/selftests/bpf/prog_tests/tcp_rtt.c index 93916a69823e..fdc0b3614a9e 100644 --- a/tools/testing/selftests/bpf/test_tcp_rtt.c +++ b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c @@ -1,24 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "bpf_rlimit.h" -#include "bpf_util.h" +#include #include "cgroup_helpers.h" -#define CG_PATH "/tcp_rtt" - struct tcp_rtt_storage { __u32 invoked; __u32 dsack_dups; @@ -31,8 +14,8 @@ static void send_byte(int fd) { char b = 0x55; - if (write(fd, &b, sizeof(b)) != 1) - error(1, errno, "Failed to send single byte"); + if (CHECK_FAIL(write(fd, &b, sizeof(b)) != 1)) + perror("Failed to send single byte"); } static int wait_for_ack(int fd, int retries) @@ -66,8 +49,10 @@ static int verify_sk(int map_fd, int client_fd, const char *msg, __u32 invoked, int err = 0; struct tcp_rtt_storage val; - if (bpf_map_lookup_elem(map_fd, &client_fd, &val) < 0) - error(1, errno, "Failed to read socket storage"); + if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &client_fd, &val) < 0)) { + perror("Failed to read socket storage"); + return -1; + } if (val.invoked != invoked) { log_err("%s: unexpected bpf_tcp_sock.invoked %d != %d", @@ -225,61 +210,47 @@ static void *server_thread(void *arg) int fd = *(int *)arg; int client_fd; - if (listen(fd, 1) < 0) - error(1, errno, "Failed to listed on socket"); + if (CHECK_FAIL(listen(fd, 1)) < 0) { + perror("Failed to listed on socket"); + return NULL; + } client_fd = accept(fd, (struct sockaddr *)&addr, &len); - if (client_fd < 0) - error(1, errno, "Failed to accept client"); + if (CHECK_FAIL(client_fd < 0)) { + perror("Failed to accept client"); + return NULL; + } /* Wait for the next connection (that never arrives) * to keep this thread alive to prevent calling * close() on client_fd. */ - if (accept(fd, (struct sockaddr *)&addr, &len) >= 0) - error(1, errno, "Unexpected success in second accept"); + if (CHECK_FAIL(accept(fd, (struct sockaddr *)&addr, &len) >= 0)) { + perror("Unexpected success in second accept"); + return NULL; + } close(client_fd); return NULL; } -int main(int args, char **argv) +void test_tcp_rtt(void) { int server_fd, cgroup_fd; - int err = EXIT_SUCCESS; pthread_t tid; - if (setup_cgroup_environment()) - goto cleanup_obj; - - cgroup_fd = create_and_get_cgroup(CG_PATH); - if (cgroup_fd < 0) - goto cleanup_cgroup_env; - - if (join_cgroup(CG_PATH)) - goto cleanup_cgroup; + cgroup_fd = test__join_cgroup("/tcp_rtt"); + if (CHECK_FAIL(cgroup_fd < 0)) + return; server_fd = start_server(); - if (server_fd < 0) { - err = EXIT_FAILURE; - goto cleanup_cgroup; - } + if (CHECK_FAIL(server_fd < 0)) + goto close_cgroup_fd; pthread_create(&tid, NULL, server_thread, (void *)&server_fd); - - if (run_test(cgroup_fd, server_fd)) - err = EXIT_FAILURE; - + CHECK_FAIL(run_test(cgroup_fd, server_fd)); close(server_fd); - - printf("test_sockopt_sk: %s\n", - err == EXIT_SUCCESS ? "PASSED" : "FAILED"); - -cleanup_cgroup: +close_cgroup_fd: close(cgroup_fd); -cleanup_cgroup_env: - cleanup_cgroup_environment(); -cleanup_obj: - return err; }