Deleted Added
full compact
kern_descrip_test.c (262526) kern_descrip_test.c (282850)
1/*-
1/*-
2 * Copyright (c) 2013 EMC Corp.
2 * Copyright (c) 2014 EMC Corp.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright

--- 9 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright

--- 9 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/tests/sys/kern/kern_descrip_test.c 262526 2014-02-26 09:08:25Z pho $");
28__FBSDID("$FreeBSD: stable/10/tests/sys/kern/kern_descrip_test.c 282850 2015-05-13 11:01:48Z ngie $");
29
30#include <errno.h>
31#include <fcntl.h>
32#include <stdio.h>
33#include <stdlib.h>
34#include <strings.h>
35#include <sys/limits.h>
36#include <sys/stat.h>

--- 10 unchanged lines hidden (view full) ---

47 ATF_REQUIRE(fd1 >= 0);
48 fd2 = 27;
49 ATF_REQUIRE(dup2(fd1, fd2) != -1);
50 ATF_REQUIRE(fstat(fd1, &sb1) != -1);
51 ATF_REQUIRE(fstat(fd2, &sb2) != -1);
52 ATF_REQUIRE(bcmp(&sb1, &sb2, sizeof(sb1)) == 0);
53}
54
29
30#include <errno.h>
31#include <fcntl.h>
32#include <stdio.h>
33#include <stdlib.h>
34#include <strings.h>
35#include <sys/limits.h>
36#include <sys/stat.h>

--- 10 unchanged lines hidden (view full) ---

47 ATF_REQUIRE(fd1 >= 0);
48 fd2 = 27;
49 ATF_REQUIRE(dup2(fd1, fd2) != -1);
50 ATF_REQUIRE(fstat(fd1, &sb1) != -1);
51 ATF_REQUIRE(fstat(fd2, &sb2) != -1);
52 ATF_REQUIRE(bcmp(&sb1, &sb2, sizeof(sb1)) == 0);
53}
54
55/*
56 Regression test for r234131:
57 Return EBADF instead of EMFILE from dup2 when the second argument is
58 outside the range of valid file descriptors
59 */
60
61ATF_TC_WITHOUT_HEAD(dup2_r234131);
62ATF_TC_BODY(dup2_r234131, tc)
55ATF_TC(dup2__ebadf_when_2nd_arg_out_of_range);
56ATF_TC_HEAD(dup2__ebadf_when_2nd_arg_out_of_range, tc)
63{
57{
58 atf_tc_set_md_var(tc, "descr", "Regression test for r234131");
59}
60ATF_TC_BODY(dup2__ebadf_when_2nd_arg_out_of_range, tc)
61{
64 int fd1, fd2, ret;
65
66 fd1 = open("/etc/passwd", O_RDONLY);
67 fd2 = INT_MAX;
68 ret = dup2(fd1, fd2);
69 ATF_CHECK_EQ(-1, ret);
70 ATF_CHECK_EQ(EBADF, errno);
71}
72
73ATF_TP_ADD_TCS(tp)
74{
75
76 ATF_TP_ADD_TC(tp, dup2_simple);
62 int fd1, fd2, ret;
63
64 fd1 = open("/etc/passwd", O_RDONLY);
65 fd2 = INT_MAX;
66 ret = dup2(fd1, fd2);
67 ATF_CHECK_EQ(-1, ret);
68 ATF_CHECK_EQ(EBADF, errno);
69}
70
71ATF_TP_ADD_TCS(tp)
72{
73
74 ATF_TP_ADD_TC(tp, dup2_simple);
77 ATF_TP_ADD_TC(tp, dup2_r234131);
75 ATF_TP_ADD_TC(tp, dup2__ebadf_when_2nd_arg_out_of_range);
78
79 return atf_no_error();
80}
76
77 return atf_no_error();
78}