Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 May 2018 23:53:19 GMT
From:      aniketp@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r337251 - soc2018/aniketp/head/tests/sys/audit
Message-ID:  <201805242353.w4ONrJpq096304@socsvn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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());
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805242353.w4ONrJpq096304>