Example #1
0
ATF_TC_BODY(mlock_limits, tc)
{
	struct rlimit res;
	void *buf;
	pid_t pid;
	int sta;

	buf = malloc(page);
	ATF_REQUIRE(buf != NULL);

	pid = fork();
	ATF_REQUIRE(pid >= 0);

	if (pid == 0) {

		for (ssize_t i = page; i >= 2; i -= 100) {

			res.rlim_cur = i - 1;
			res.rlim_max = i - 1;

			(void)fprintf(stderr, "trying to lock %zd bytes "
			    "with %zu byte limit\n", i, (size_t)res.rlim_cur);

			if (setrlimit(RLIMIT_MEMLOCK, &res) != 0)
				_exit(EXIT_FAILURE);

			errno = 0;

#ifdef __FreeBSD__
			/*
			 * NetBSD doesn't conform to POSIX with ENOMEM requirement;
			 * FreeBSD does.
			 *
			 * See: NetBSD PR # kern/48962 for more details.
			 */
			if (mlock(buf, i) != -1 || errno != ENOMEM) {
#else
			if (mlock(buf, i) != -1 || errno != EAGAIN) {
#endif
				(void)munlock(buf, i);
				_exit(EXIT_FAILURE);
			}
		}

		_exit(EXIT_SUCCESS);
	}

	(void)wait(&sta);

	if (WIFEXITED(sta) == 0 || WEXITSTATUS(sta) != EXIT_SUCCESS)
		atf_tc_fail("mlock(2) locked beyond system limits");

	free(buf);
}

#ifdef __FreeBSD__
ATF_TC_WITH_CLEANUP(mlock_mmap);
#else
ATF_TC(mlock_mmap);
#endif
ATF_TC_HEAD(mlock_mmap, tc)
{
	atf_tc_set_md_var(tc, "descr", "Test mlock(2)-mmap(2) interaction");
#ifdef __FreeBSD__
	atf_tc_set_md_var(tc, "require.config", "allow_sysctl_side_effects");
	atf_tc_set_md_var(tc, "require.user", "root");
#endif
}
ATF_TC_HEAD(totext, tc) {
	atf_tc_set_md_var(tc, "descr", "masterfile totext tests");
}
ATF_TC_HEAD(dumpraw, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_dump*() functions "
				       "dump valid raw files");
}
ATF_TC_HEAD(master_includelist, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile4() returns "
				       "names of included file");
}
ATF_TC_HEAD(blanklines, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() handles "
				       "non-empty blank lines");
}
ATF_TC_HEAD(badclass, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() returns "
				       "DNS_R_BADCLASS when record class "
				       "doesn't match zone class");
}
ATF_TC_HEAD(maxrdata, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() returns "
				       "ISC_R_SUCCESS when record is maximum "
				       "size");
}
Example #8
0
ATF_TC_HEAD (fork_stop, tc)
{
    atf_tc_set_md_var (tc, "descr", "Helper test case for the t_fork test " "program");
}
Example #9
0
ATF_TC_HEAD (srcdir_exists, tc)
{
    atf_tc_set_md_var (tc, "descr", "Helper test case for the t_srcdir test " "program");
}
Example #10
0
ATF_TC_HEAD (expect_timeout_and_hang, tc)
{
    atf_tc_set_md_var (tc, "timeout", "1");
}
Example #11
0
ATF_TC_HEAD (expect_timeout_but_pass, tc)
{
    atf_tc_set_md_var (tc, "timeout", "1");
}
Example #12
0
ATF_TC_HEAD (config_multi_value, tc)
{
    atf_tc_set_md_var (tc, "descr", "Helper test case for the t_config test " "program");
}
Example #13
0
ATF_TC_HEAD(paccept_nonblock, tc)
{

	atf_tc_set_md_var(tc, "descr", "Check that fcntl(2) resets "
	    "the non-blocking flag on non-blocking sockets");
}
Example #14
0
ATF_TC_HEAD(isinf_basic, tc)
{
	atf_tc_set_md_var(tc, "descr", "Verify that isinf(3) works");
}
ATF_TC_HEAD(noowner, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() accepts broken "
				       "zones with no TTL for first record "
				       "if it is an SOA");
}
Example #16
0
ATF_TC_HEAD (result_newlines_skip, tc)
{
    atf_tc_set_md_var (tc, "descr", "Helper test case for the t_result test " "program");
}
ATF_TC_HEAD(nottl, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() returns "
				       "DNS_R_NOOWNER when no owner name "
				       "is specified");
}
Example #18
0
ATF_TC_HEAD (cleanup_fail, tc)
{
    atf_tc_set_md_var (tc, "descr", "Helper test case for the t_cleanup test " "program");
}
ATF_TC_HEAD(toobig, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() returns "
				       "ISC_R_NOSPACE when record is too big");
}
Example #20
0
ATF_TC_HEAD(serialize, tc) {
	atf_tc_set_md_var(tc, "descr", "Test writing an rbt to file");
}
ATF_TC_HEAD(dnsnokey, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() understands "
				       "DNSKEY with no key material");
}
Example #22
0
ATF_TC_HEAD(deserialize_corrupt, tc) {
	atf_tc_set_md_var(tc, "descr", "Test reading a corrupt map file");
}
ATF_TC_HEAD(includefail, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() understands "
				       "$INCLUDE failures");
}
Example #24
0
ATF_TC_HEAD(serialize_align, tc) {
	atf_tc_set_md_var(tc, "descr",
			  "Test the dns_rbt_serialize_align() function.");
}
ATF_TC_HEAD(leadingzero, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() allows "
				       "leading zeroes in SOA");
}
Example #26
0
File: main.c Project: xdave/xbps
ATF_TC_HEAD(array_replace_dict_by_name_test, tc)
{
	atf_tc_set_md_var(tc, "descr", "Test xbps_array_replace_dict_by_name");
}
ATF_TC_HEAD(loadraw, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() loads a "
				       "valid raw file and returns success");
}
ATF_TC_HEAD(unexpected, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() returns "
				       "DNS_R_UNEXPECTED when file ends "
				       "too soon");
}
ATF_TC_HEAD(neworigin, tc) {
	atf_tc_set_md_var(tc, "descr", "dns_master_loadfile() rejects "
				       "zones with inherited name following "
				       "$ORIGIN");
}
Example #30
0
ATF_TC_HEAD(mlock_limits, tc)
{
	atf_tc_set_md_var(tc, "descr", "Test system limits with mlock(2)");
}