From owner-svn-soc-all@freebsd.org Thu May 24 23:53:21 2018 Return-Path: Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21F6CF6DCBE for ; Thu, 24 May 2018 23:53:21 +0000 (UTC) (envelope-from aniketp@FreeBSD.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AADF16A1F9 for ; Thu, 24 May 2018 23:53:20 +0000 (UTC) (envelope-from aniketp@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 10D9FFEAC for ; Thu, 24 May 2018 23:53:20 +0000 (UTC) (envelope-from aniketp@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id w4ONrJOQ096353 for ; Thu, 24 May 2018 23:53:19 GMT (envelope-from aniketp@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id w4ONrJpq096304 for svn-soc-all@FreeBSD.org; Thu, 24 May 2018 23:53:19 GMT (envelope-from aniketp@FreeBSD.org) Date: Thu, 24 May 2018 23:53:19 GMT Message-Id: <201805242353.w4ONrJpq096304@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to aniketp@FreeBSD.org using -f From: aniketp@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r337251 - soc2018/aniketp/head/tests/sys/audit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 May 2018 23:53:21 -0000 Author: aniketp Date: Thu May 24 23:53:18 2018 New Revision: 337251 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=337251 Log: Add tests for setsockopt(2) audit event Modified: soc2018/aniketp/head/tests/sys/audit/network.c Modified: soc2018/aniketp/head/tests/sys/audit/network.c ============================================================================== --- soc2018/aniketp/head/tests/sys/audit/network.c Thu May 24 23:20:45 2018 (r337250) +++ soc2018/aniketp/head/tests/sys/audit/network.c Thu May 24 23:53:18 2018 (r337251) @@ -35,6 +35,7 @@ #define ERROR (-1) static int sockfd; +static int tr = 1; static struct pollfd fds[1]; static char regex[40]; @@ -83,10 +84,61 @@ } +ATF_TC_WITH_CLEANUP(setsockopt_success); +ATF_TC_HEAD(setsockopt_success, tc) +{ + atf_tc_set_md_var(tc, "descr", "Tests the audit of a successful " + "setsockopt(2) call"); +} + +ATF_TC_BODY(setsockopt_success, tc) +{ + ATF_REQUIRE((sockfd = socket(PF_INET, SOCK_STREAM, 0)) != -1); + /* Check the presence of sockfd in audit record */ + snprintf(regex, 30, "setsockopt.*0x%x.*return,success", sockfd); + + FILE *pipefd = setup(fds, "nt"); + ATF_REQUIRE_EQ(0, setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &tr, \ + sizeof(int))); + check_audit(fds, regex, pipefd); + close(sockfd); +} + +ATF_TC_CLEANUP(setsockopt_success, tc) +{ + cleanup(); +} + + +ATF_TC_WITH_CLEANUP(setsockopt_failure); +ATF_TC_HEAD(setsockopt_failure, tc) +{ + atf_tc_set_md_var(tc, "descr", "Tests the audit of an unsuccessful " + "setsockopt(2) call"); +} + +ATF_TC_BODY(setsockopt_failure, tc) +{ + FILE *pipefd = setup(fds, "nt"); + ATF_REQUIRE_EQ(-1, setsockopt(ERROR, SOL_SOCKET, SO_REUSEADDR, &tr, \ + sizeof(int))); + /* Check the presence of hex(-1) in audit record */ + snprintf(regex, 40, "setsockopt.*0x%x.*return,failure", ERROR); + check_audit(fds, regex, pipefd); +} + +ATF_TC_CLEANUP(setsockopt_failure, tc) +{ + cleanup(); +} + + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, socket_success); ATF_TP_ADD_TC(tp, socket_failure); + ATF_TP_ADD_TC(tp, setsockopt_success); + ATF_TP_ADD_TC(tp, setsockopt_failure); return (atf_no_error()); }