| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: t_pr.c,v 1.11 2017/04/12 15:12:55 riastradh Exp $ */ | | 1 | /* $NetBSD: t_pr.c,v 1.12 2017/04/14 01:30:38 riastradh Exp $ */ |
2 | | | 2 | |
3 | #include <sys/types.h> | | 3 | #include <sys/types.h> |
4 | #include <sys/mount.h> | | 4 | #include <sys/mount.h> |
5 | | | 5 | |
6 | #include <atf-c.h> | | 6 | #include <atf-c.h> |
7 | #include <err.h> | | 7 | #include <err.h> |
8 | #include <errno.h> | | 8 | #include <errno.h> |
9 | #include <fcntl.h> | | 9 | #include <fcntl.h> |
10 | #include <stdio.h> | | 10 | #include <stdio.h> |
11 | #include <unistd.h> | | 11 | #include <unistd.h> |
12 | #include <string.h> | | 12 | #include <string.h> |
13 | #include <stdlib.h> | | 13 | #include <stdlib.h> |
14 | | | 14 | |
| @@ -53,27 +53,27 @@ ATF_TC_BODY(multilayer, tc) | | | @@ -53,27 +53,27 @@ ATF_TC_BODY(multilayer, tc) |
53 | rump_sys_mount(MOUNT_UNION, "/Tunion", 0,&unionargs,sizeof(unionargs)); | | 53 | rump_sys_mount(MOUNT_UNION, "/Tunion", 0,&unionargs,sizeof(unionargs)); |
54 | } | | 54 | } |
55 | | | 55 | |
56 | ATF_TC(multilayer2); | | 56 | ATF_TC(multilayer2); |
57 | ATF_TC_HEAD(multilayer2, tc) | | 57 | ATF_TC_HEAD(multilayer2, tc) |
58 | { | | 58 | { |
59 | atf_tc_set_md_var(tc, "descr", "mount_union twice then unmount"); | | 59 | atf_tc_set_md_var(tc, "descr", "mount_union twice then unmount"); |
60 | } | | 60 | } |
61 | | | 61 | |
62 | ATF_TC_BODY(multilayer2, tc) | | 62 | ATF_TC_BODY(multilayer2, tc) |
63 | { | | 63 | { |
64 | struct union_args unionargs; | | 64 | struct union_args unionargs; |
65 | | | 65 | |
66 | atf_tc_expect_fail("PR kern/2423"); | | 66 | atf_tc_expect_signal(-1, "PR kern/2423"); |
67 | | | 67 | |
68 | rump_init(); | | 68 | rump_init(); |
69 | | | 69 | |
70 | if (rump_sys_mkdir("/Tunion", 0777) == -1) | | 70 | if (rump_sys_mkdir("/Tunion", 0777) == -1) |
71 | atf_tc_fail_errno("mkdir mp1"); | | 71 | atf_tc_fail_errno("mkdir mp1"); |
72 | if (rump_sys_mkdir("/Tunion2", 0777) == -1) | | 72 | if (rump_sys_mkdir("/Tunion2", 0777) == -1) |
73 | atf_tc_fail_errno("mkdir mp2"); | | 73 | atf_tc_fail_errno("mkdir mp2"); |
74 | if (rump_sys_mkdir("/Tunion2/A", 0777) == -1) | | 74 | if (rump_sys_mkdir("/Tunion2/A", 0777) == -1) |
75 | atf_tc_fail_errno("mkdir A"); | | 75 | atf_tc_fail_errno("mkdir A"); |
76 | if (rump_sys_mkdir("/Tunion2/B", 0777) == -1) | | 76 | if (rump_sys_mkdir("/Tunion2/B", 0777) == -1) |
77 | atf_tc_fail_errno("mkdir B"); | | 77 | atf_tc_fail_errno("mkdir B"); |
78 | | | 78 | |
79 | unionargs.target = __UNCONST("/Tunion2/A"); | | 79 | unionargs.target = __UNCONST("/Tunion2/A"); |
| @@ -93,27 +93,27 @@ ATF_TC_BODY(multilayer2, tc) | | | @@ -93,27 +93,27 @@ ATF_TC_BODY(multilayer2, tc) |
93 | rump_sys_unmount("/Tunion/A", 0); | | 93 | rump_sys_unmount("/Tunion/A", 0); |
94 | } | | 94 | } |
95 | | | 95 | |
96 | ATF_TC(cyclic); | | 96 | ATF_TC(cyclic); |
97 | ATF_TC_HEAD(cyclic, tc) | | 97 | ATF_TC_HEAD(cyclic, tc) |
98 | { | | 98 | { |
99 | atf_tc_set_md_var(tc, "descr", "cyclic mount_union"); | | 99 | atf_tc_set_md_var(tc, "descr", "cyclic mount_union"); |
100 | } | | 100 | } |
101 | | | 101 | |
102 | ATF_TC_BODY(cyclic, tc) | | 102 | ATF_TC_BODY(cyclic, tc) |
103 | { | | 103 | { |
104 | struct union_args unionargs; | | 104 | struct union_args unionargs; |
105 | | | 105 | |
106 | atf_tc_expect_fail("PR kern/3645"); | | 106 | atf_tc_expect_signal(-1, "PR kern/3645"); |
107 | | | 107 | |
108 | rump_init(); | | 108 | rump_init(); |
109 | | | 109 | |
110 | if (rump_sys_mkdir("/Tunion", 0777) == -1) | | 110 | if (rump_sys_mkdir("/Tunion", 0777) == -1) |
111 | atf_tc_fail_errno("mkdir mp1"); | | 111 | atf_tc_fail_errno("mkdir mp1"); |
112 | if (rump_sys_mkdir("/Tunion/A", 0777) == -1) | | 112 | if (rump_sys_mkdir("/Tunion/A", 0777) == -1) |
113 | atf_tc_fail_errno("mkdir mp2"); | | 113 | atf_tc_fail_errno("mkdir mp2"); |
114 | | | 114 | |
115 | unionargs.target = __UNCONST("/Tunion/A"); | | 115 | unionargs.target = __UNCONST("/Tunion/A"); |
116 | unionargs.mntflags = UNMNT_ABOVE; | | 116 | unionargs.mntflags = UNMNT_ABOVE; |
117 | | | 117 | |
118 | if (rump_sys_mount(MOUNT_UNION, "/Tunion/A", 0, | | 118 | if (rump_sys_mount(MOUNT_UNION, "/Tunion/A", 0, |
119 | &unionargs, sizeof(unionargs)) == -1) | | 119 | &unionargs, sizeof(unionargs)) == -1) |
| @@ -123,27 +123,27 @@ ATF_TC_BODY(cyclic, tc) | | | @@ -123,27 +123,27 @@ ATF_TC_BODY(cyclic, tc) |
123 | atf_tc_fail_errno("mkdir failed"); | | 123 | atf_tc_fail_errno("mkdir failed"); |
124 | } | | 124 | } |
125 | | | 125 | |
126 | ATF_TC(cyclic2); | | 126 | ATF_TC(cyclic2); |
127 | ATF_TC_HEAD(cyclic2, tc) | | 127 | ATF_TC_HEAD(cyclic2, tc) |
128 | { | | 128 | { |
129 | atf_tc_set_md_var(tc, "descr", "cyclic mount_union"); | | 129 | atf_tc_set_md_var(tc, "descr", "cyclic mount_union"); |
130 | } | | 130 | } |
131 | | | 131 | |
132 | ATF_TC_BODY(cyclic2, tc) | | 132 | ATF_TC_BODY(cyclic2, tc) |
133 | { | | 133 | { |
134 | struct union_args unionargs; | | 134 | struct union_args unionargs; |
135 | | | 135 | |
136 | atf_tc_expect_fail("PR kern/4597"); | | 136 | atf_tc_expect_signal(-1, "PR kern/4597"); |
137 | | | 137 | |
138 | rump_init(); | | 138 | rump_init(); |
139 | | | 139 | |
140 | if (rump_sys_mkdir("/Tunion", 0777) == -1) | | 140 | if (rump_sys_mkdir("/Tunion", 0777) == -1) |
141 | atf_tc_fail_errno("mkdir mp1"); | | 141 | atf_tc_fail_errno("mkdir mp1"); |
142 | if (rump_sys_mkdir("/Tunion/A", 0777) == -1) | | 142 | if (rump_sys_mkdir("/Tunion/A", 0777) == -1) |
143 | atf_tc_fail_errno("mkdir mp2"); | | 143 | atf_tc_fail_errno("mkdir mp2"); |
144 | if (rump_sys_mkdir("/Tunion/B", 0777) == -1) | | 144 | if (rump_sys_mkdir("/Tunion/B", 0777) == -1) |
145 | atf_tc_fail_errno("mkdir mp3"); | | 145 | atf_tc_fail_errno("mkdir mp3"); |
146 | | | 146 | |
147 | unionargs.target = __UNCONST("/Tunion/A"); | | 147 | unionargs.target = __UNCONST("/Tunion/A"); |
148 | unionargs.mntflags = UNMNT_ABOVE; | | 148 | unionargs.mntflags = UNMNT_ABOVE; |
149 | | | 149 | |