1570af302Sopenharmony_ci/*
2570af302Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3570af302Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4570af302Sopenharmony_ci * you may not use this file except in compliance with the License.
5570af302Sopenharmony_ci * You may obtain a copy of the License at
6570af302Sopenharmony_ci *
7570af302Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8570af302Sopenharmony_ci *
9570af302Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10570af302Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11570af302Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12570af302Sopenharmony_ci * See the License for the specific language governing permissions and
13570af302Sopenharmony_ci * limitations under the License.
14570af302Sopenharmony_ci */
15570af302Sopenharmony_ci#include <errno.h>
16570af302Sopenharmony_ci#include <fcntl.h>
17570af302Sopenharmony_ci#include <signal.h>
18570af302Sopenharmony_ci#include <string.h>
19570af302Sopenharmony_ci#include <sys/wait.h>
20570af302Sopenharmony_ci#include <sigchain.h>
21570af302Sopenharmony_ci#include "fortify_test.h"
22570af302Sopenharmony_ci#include "functionalext.h"
23570af302Sopenharmony_ci#include "test.h"
24570af302Sopenharmony_ci
25570af302Sopenharmony_ci#define FILE_MODE_ALL (0777)
26570af302Sopenharmony_ci
27570af302Sopenharmony_ci#ifdef open64
28570af302Sopenharmony_ci#undef open64
29570af302Sopenharmony_ci#endif
30570af302Sopenharmony_ci
31570af302Sopenharmony_ci#ifdef openat64
32570af302Sopenharmony_ci#undef openat64
33570af302Sopenharmony_ci#endif
34570af302Sopenharmony_ci
35570af302Sopenharmony_ci/**
36570af302Sopenharmony_ci * @tc.name     : open_0010
37570af302Sopenharmony_ci * @tc.desc     : test open normal condition
38570af302Sopenharmony_ci * @tc.level    : Level 0
39570af302Sopenharmony_ci */
40570af302Sopenharmony_cistatic void open_0010(void)
41570af302Sopenharmony_ci{
42570af302Sopenharmony_ci    int fd = open("/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL);
43570af302Sopenharmony_ci    TEST(fd != -1);
44570af302Sopenharmony_ci    close(fd);
45570af302Sopenharmony_ci
46570af302Sopenharmony_ci    return;
47570af302Sopenharmony_ci}
48570af302Sopenharmony_ci
49570af302Sopenharmony_ci/**
50570af302Sopenharmony_ci * @tc.name     : open_0020
51570af302Sopenharmony_ci * @tc.desc     : test open O_CREAT without mode
52570af302Sopenharmony_ci * @tc.level    : Level 2
53570af302Sopenharmony_ci */
54570af302Sopenharmony_cistatic void open_0020(void)
55570af302Sopenharmony_ci{
56570af302Sopenharmony_ci    struct sigaction sigabrt = {
57570af302Sopenharmony_ci        .sa_handler = SignalHandler,
58570af302Sopenharmony_ci    };
59570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
60570af302Sopenharmony_ci
61570af302Sopenharmony_ci    int flags = O_CREAT;
62570af302Sopenharmony_ci    int status;
63570af302Sopenharmony_ci    int pid = fork();
64570af302Sopenharmony_ci    switch (pid) {
65570af302Sopenharmony_ci        case -1:
66570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
67570af302Sopenharmony_ci            break;
68570af302Sopenharmony_ci        case 0:
69570af302Sopenharmony_ci            open("/proc/version", flags);
70570af302Sopenharmony_ci            exit(0);
71570af302Sopenharmony_ci        default:
72570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
73570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
74570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
75570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
76570af302Sopenharmony_ci            kill(pid, SIGCONT);
77570af302Sopenharmony_ci            break;
78570af302Sopenharmony_ci    }
79570af302Sopenharmony_ci
80570af302Sopenharmony_ci    return;
81570af302Sopenharmony_ci}
82570af302Sopenharmony_ci
83570af302Sopenharmony_ci/**
84570af302Sopenharmony_ci * @tc.name     : open_0030
85570af302Sopenharmony_ci * @tc.desc     : test open O_TMPFILE without mode
86570af302Sopenharmony_ci * @tc.level    : Level 2
87570af302Sopenharmony_ci */
88570af302Sopenharmony_cistatic void open_0030(void)
89570af302Sopenharmony_ci{
90570af302Sopenharmony_ci    struct sigaction sigabrt = {
91570af302Sopenharmony_ci        .sa_handler = SignalHandler,
92570af302Sopenharmony_ci    };
93570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
94570af302Sopenharmony_ci
95570af302Sopenharmony_ci    int flags = O_TMPFILE;
96570af302Sopenharmony_ci    int status;
97570af302Sopenharmony_ci    int pid = fork();
98570af302Sopenharmony_ci    switch (pid) {
99570af302Sopenharmony_ci        case -1:
100570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
101570af302Sopenharmony_ci            break;
102570af302Sopenharmony_ci        case 0:
103570af302Sopenharmony_ci            open("/proc/version", flags);
104570af302Sopenharmony_ci            exit(0);
105570af302Sopenharmony_ci        default:
106570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
107570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
108570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
109570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
110570af302Sopenharmony_ci            kill(pid, SIGCONT);
111570af302Sopenharmony_ci            break;
112570af302Sopenharmony_ci    }
113570af302Sopenharmony_ci
114570af302Sopenharmony_ci    return;
115570af302Sopenharmony_ci}
116570af302Sopenharmony_ci
117570af302Sopenharmony_ci/**
118570af302Sopenharmony_ci * @tc.name     : open_0040
119570af302Sopenharmony_ci * @tc.desc     : test open only O_RDWR
120570af302Sopenharmony_ci * @tc.level    : Level 1
121570af302Sopenharmony_ci */
122570af302Sopenharmony_cistatic void open_0040(void)
123570af302Sopenharmony_ci{
124570af302Sopenharmony_ci    int fd = open("/proc/version", O_RDWR);
125570af302Sopenharmony_ci    EXPECT_NE(open_0040, fd, -1);
126570af302Sopenharmony_ci    close(fd);
127570af302Sopenharmony_ci
128570af302Sopenharmony_ci    return;
129570af302Sopenharmony_ci}
130570af302Sopenharmony_ci
131570af302Sopenharmony_ci/**
132570af302Sopenharmony_ci * @tc.name     : openat_0010
133570af302Sopenharmony_ci * @tc.desc     : test openat normal condition
134570af302Sopenharmony_ci * @tc.level    : Level 0
135570af302Sopenharmony_ci */
136570af302Sopenharmony_cistatic void openat_0010(void)
137570af302Sopenharmony_ci{
138570af302Sopenharmony_ci    int fd = openat(AT_FDCWD, "/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL);
139570af302Sopenharmony_ci    TEST(fd != -1);
140570af302Sopenharmony_ci    close(fd);
141570af302Sopenharmony_ci
142570af302Sopenharmony_ci    return;
143570af302Sopenharmony_ci}
144570af302Sopenharmony_ci
145570af302Sopenharmony_ci/**
146570af302Sopenharmony_ci * @tc.name     : openat_0020
147570af302Sopenharmony_ci * @tc.desc     : test openat O_CREAT without mode
148570af302Sopenharmony_ci * @tc.level    : Level 2
149570af302Sopenharmony_ci */
150570af302Sopenharmony_cistatic void openat_0020(void)
151570af302Sopenharmony_ci{
152570af302Sopenharmony_ci    struct sigaction sigabrt = {
153570af302Sopenharmony_ci        .sa_handler = SignalHandler,
154570af302Sopenharmony_ci    };
155570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
156570af302Sopenharmony_ci
157570af302Sopenharmony_ci    int flags = O_CREAT;
158570af302Sopenharmony_ci    int status;
159570af302Sopenharmony_ci    int pid = fork();
160570af302Sopenharmony_ci    switch (pid) {
161570af302Sopenharmony_ci        case -1:
162570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
163570af302Sopenharmony_ci            break;
164570af302Sopenharmony_ci        case 0:
165570af302Sopenharmony_ci            openat(AT_FDCWD, "/proc/version", flags);
166570af302Sopenharmony_ci            exit(0);
167570af302Sopenharmony_ci        default:
168570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
169570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
170570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
171570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
172570af302Sopenharmony_ci            kill(pid, SIGCONT);
173570af302Sopenharmony_ci            break;
174570af302Sopenharmony_ci    }
175570af302Sopenharmony_ci
176570af302Sopenharmony_ci    return;
177570af302Sopenharmony_ci}
178570af302Sopenharmony_ci
179570af302Sopenharmony_ci/**
180570af302Sopenharmony_ci * @tc.name     : openat_0030
181570af302Sopenharmony_ci * @tc.desc     : test openat O_TMPFILE without mode
182570af302Sopenharmony_ci * @tc.level    : Level 2
183570af302Sopenharmony_ci */
184570af302Sopenharmony_cistatic void openat_0030(void)
185570af302Sopenharmony_ci{
186570af302Sopenharmony_ci    struct sigaction sigabrt = {
187570af302Sopenharmony_ci        .sa_handler = SignalHandler,
188570af302Sopenharmony_ci    };
189570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
190570af302Sopenharmony_ci
191570af302Sopenharmony_ci    int flags = O_TMPFILE;
192570af302Sopenharmony_ci    int status;
193570af302Sopenharmony_ci    int pid = fork();
194570af302Sopenharmony_ci    switch (pid) {
195570af302Sopenharmony_ci        case -1:
196570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
197570af302Sopenharmony_ci            break;
198570af302Sopenharmony_ci        case 0:
199570af302Sopenharmony_ci            openat(AT_FDCWD, "/proc/version", flags);
200570af302Sopenharmony_ci            exit(0);
201570af302Sopenharmony_ci        default:
202570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
203570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
204570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
205570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
206570af302Sopenharmony_ci            kill(pid, SIGCONT);
207570af302Sopenharmony_ci            break;
208570af302Sopenharmony_ci    }
209570af302Sopenharmony_ci
210570af302Sopenharmony_ci    return;
211570af302Sopenharmony_ci}
212570af302Sopenharmony_ci
213570af302Sopenharmony_ci/**
214570af302Sopenharmony_ci * @tc.name     : openat_0040
215570af302Sopenharmony_ci * @tc.desc     : test openat only O_RDWR
216570af302Sopenharmony_ci * @tc.level    : Level 1
217570af302Sopenharmony_ci */
218570af302Sopenharmony_cistatic void openat_0040(void)
219570af302Sopenharmony_ci{
220570af302Sopenharmony_ci    int fd = openat(AT_FDCWD, "/proc/version", O_RDWR);
221570af302Sopenharmony_ci    EXPECT_NE(openat_0040, fd, -1);
222570af302Sopenharmony_ci    close(fd);
223570af302Sopenharmony_ci
224570af302Sopenharmony_ci    return;
225570af302Sopenharmony_ci}
226570af302Sopenharmony_ci
227570af302Sopenharmony_ci#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
228570af302Sopenharmony_ci/**
229570af302Sopenharmony_ci * @tc.name     : open64_0010
230570af302Sopenharmony_ci * @tc.desc     : test open64 normal condition
231570af302Sopenharmony_ci * @tc.level    : Level 0
232570af302Sopenharmony_ci */
233570af302Sopenharmony_cistatic void open64_0010(void)
234570af302Sopenharmony_ci{
235570af302Sopenharmony_ci    int fd = open64("/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL);
236570af302Sopenharmony_ci    TEST(fd != -1);
237570af302Sopenharmony_ci    close(fd);
238570af302Sopenharmony_ci
239570af302Sopenharmony_ci    return;
240570af302Sopenharmony_ci}
241570af302Sopenharmony_ci
242570af302Sopenharmony_ci/**
243570af302Sopenharmony_ci * @tc.name     : open64_0020
244570af302Sopenharmony_ci * @tc.desc     : test open64 O_CREAT without mode
245570af302Sopenharmony_ci * @tc.level    : Level 2
246570af302Sopenharmony_ci */
247570af302Sopenharmony_cistatic void open64_0020(void)
248570af302Sopenharmony_ci{
249570af302Sopenharmony_ci    struct sigaction sigabrt = {
250570af302Sopenharmony_ci        .sa_handler = SignalHandler,
251570af302Sopenharmony_ci    };
252570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
253570af302Sopenharmony_ci
254570af302Sopenharmony_ci    int flags = O_CREAT;
255570af302Sopenharmony_ci    int status;
256570af302Sopenharmony_ci    int pid = fork();
257570af302Sopenharmony_ci    switch (pid) {
258570af302Sopenharmony_ci        case -1:
259570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
260570af302Sopenharmony_ci            break;
261570af302Sopenharmony_ci        case 0:
262570af302Sopenharmony_ci            open64("/proc/version", flags);
263570af302Sopenharmony_ci            exit(0);
264570af302Sopenharmony_ci        default:
265570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
266570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
267570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
268570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
269570af302Sopenharmony_ci            kill(pid, SIGCONT);
270570af302Sopenharmony_ci            break;
271570af302Sopenharmony_ci    }
272570af302Sopenharmony_ci
273570af302Sopenharmony_ci    return;
274570af302Sopenharmony_ci}
275570af302Sopenharmony_ci
276570af302Sopenharmony_ci/**
277570af302Sopenharmony_ci * @tc.name     : open64_0030
278570af302Sopenharmony_ci * @tc.desc     : test open64 O_TMPFILE without mode
279570af302Sopenharmony_ci * @tc.level    : Level 2
280570af302Sopenharmony_ci */
281570af302Sopenharmony_cistatic void open64_0030(void)
282570af302Sopenharmony_ci{
283570af302Sopenharmony_ci    struct sigaction sigabrt = {
284570af302Sopenharmony_ci        .sa_handler = SignalHandler,
285570af302Sopenharmony_ci    };
286570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
287570af302Sopenharmony_ci
288570af302Sopenharmony_ci    int flags = O_TMPFILE;
289570af302Sopenharmony_ci    int status;
290570af302Sopenharmony_ci    int pid = fork();
291570af302Sopenharmony_ci    switch (pid) {
292570af302Sopenharmony_ci        case -1:
293570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
294570af302Sopenharmony_ci            break;
295570af302Sopenharmony_ci        case 0:
296570af302Sopenharmony_ci            open64("/proc/version", flags);
297570af302Sopenharmony_ci            exit(0);
298570af302Sopenharmony_ci        default:
299570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
300570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
301570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
302570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
303570af302Sopenharmony_ci            kill(pid, SIGCONT);
304570af302Sopenharmony_ci            break;
305570af302Sopenharmony_ci    }
306570af302Sopenharmony_ci
307570af302Sopenharmony_ci    return;
308570af302Sopenharmony_ci}
309570af302Sopenharmony_ci
310570af302Sopenharmony_ci/**
311570af302Sopenharmony_ci * @tc.name     : open64_0040
312570af302Sopenharmony_ci * @tc.desc     : test open64 only O_RDWR
313570af302Sopenharmony_ci * @tc.level    : Level 1
314570af302Sopenharmony_ci */
315570af302Sopenharmony_cistatic void open64_0040(void)
316570af302Sopenharmony_ci{
317570af302Sopenharmony_ci    int fd = open64("/proc/version", O_RDWR);
318570af302Sopenharmony_ci    EXPECT_NE(open64_0040, fd, -1);
319570af302Sopenharmony_ci    close(fd);
320570af302Sopenharmony_ci
321570af302Sopenharmony_ci    return;
322570af302Sopenharmony_ci}
323570af302Sopenharmony_ci
324570af302Sopenharmony_ci/**
325570af302Sopenharmony_ci * @tc.name     : openat64_0010
326570af302Sopenharmony_ci * @tc.desc     : test openat64 normal condition
327570af302Sopenharmony_ci * @tc.level    : Level 0
328570af302Sopenharmony_ci */
329570af302Sopenharmony_cistatic void openat64_0010(void)
330570af302Sopenharmony_ci{
331570af302Sopenharmony_ci    int fd = openat64(AT_FDCWD, "/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL);
332570af302Sopenharmony_ci    TEST(fd != -1);
333570af302Sopenharmony_ci    close(fd);
334570af302Sopenharmony_ci
335570af302Sopenharmony_ci    return;
336570af302Sopenharmony_ci}
337570af302Sopenharmony_ci
338570af302Sopenharmony_ci/**
339570af302Sopenharmony_ci * @tc.name     : openat64_0020
340570af302Sopenharmony_ci * @tc.desc     : test openat64 O_CREAT without mode
341570af302Sopenharmony_ci * @tc.level    : Level 2
342570af302Sopenharmony_ci */
343570af302Sopenharmony_cistatic void openat64_0020(void)
344570af302Sopenharmony_ci{
345570af302Sopenharmony_ci    struct sigaction sigabrt = {
346570af302Sopenharmony_ci        .sa_handler = SignalHandler,
347570af302Sopenharmony_ci    };
348570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
349570af302Sopenharmony_ci
350570af302Sopenharmony_ci    int flags = O_CREAT;
351570af302Sopenharmony_ci    int status;
352570af302Sopenharmony_ci    int pid = fork();
353570af302Sopenharmony_ci    switch (pid) {
354570af302Sopenharmony_ci        case -1:
355570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
356570af302Sopenharmony_ci            break;
357570af302Sopenharmony_ci        case 0:
358570af302Sopenharmony_ci            openat64(AT_FDCWD, "/proc/version", flags);
359570af302Sopenharmony_ci            exit(0);
360570af302Sopenharmony_ci        default:
361570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
362570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
363570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
364570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
365570af302Sopenharmony_ci            kill(pid, SIGCONT);
366570af302Sopenharmony_ci            break;
367570af302Sopenharmony_ci    }
368570af302Sopenharmony_ci
369570af302Sopenharmony_ci    return;
370570af302Sopenharmony_ci}
371570af302Sopenharmony_ci
372570af302Sopenharmony_ci/**
373570af302Sopenharmony_ci * @tc.name     : openat64_0030
374570af302Sopenharmony_ci * @tc.desc     : test openat64 O_TMPFILE without mode
375570af302Sopenharmony_ci * @tc.level    : Level 2
376570af302Sopenharmony_ci */
377570af302Sopenharmony_cistatic void openat64_0030(void)
378570af302Sopenharmony_ci{
379570af302Sopenharmony_ci    struct sigaction sigabrt = {
380570af302Sopenharmony_ci        .sa_handler = SignalHandler,
381570af302Sopenharmony_ci    };
382570af302Sopenharmony_ci    sigaction(SIGABRT, &sigabrt, NULL);
383570af302Sopenharmony_ci
384570af302Sopenharmony_ci    int flags = O_TMPFILE;
385570af302Sopenharmony_ci    int status;
386570af302Sopenharmony_ci    int pid = fork();
387570af302Sopenharmony_ci    switch (pid) {
388570af302Sopenharmony_ci        case -1:
389570af302Sopenharmony_ci            t_error("fork failed: %s\n", strerror(errno));
390570af302Sopenharmony_ci            break;
391570af302Sopenharmony_ci        case 0:
392570af302Sopenharmony_ci            openat64(AT_FDCWD, "/proc/version", flags);
393570af302Sopenharmony_ci            exit(0);
394570af302Sopenharmony_ci        default:
395570af302Sopenharmony_ci            waitpid(pid, &status, WUNTRACED);
396570af302Sopenharmony_ci            TEST(WIFEXITED(status) == 0);
397570af302Sopenharmony_ci            TEST(WIFSTOPPED(status) == 1);
398570af302Sopenharmony_ci            TEST(WSTOPSIG(status) == SIGSTOP);
399570af302Sopenharmony_ci            kill(pid, SIGCONT);
400570af302Sopenharmony_ci            break;
401570af302Sopenharmony_ci    }
402570af302Sopenharmony_ci
403570af302Sopenharmony_ci    return;
404570af302Sopenharmony_ci}
405570af302Sopenharmony_ci
406570af302Sopenharmony_ci/**
407570af302Sopenharmony_ci * @tc.name     : openat64_0040
408570af302Sopenharmony_ci * @tc.desc     : test openat64 only O_RDWR
409570af302Sopenharmony_ci * @tc.level    : Level 1
410570af302Sopenharmony_ci */
411570af302Sopenharmony_cistatic void openat64_0040(void)
412570af302Sopenharmony_ci{
413570af302Sopenharmony_ci    int fd = openat64(AT_FDCWD, "/proc/version", O_RDWR);
414570af302Sopenharmony_ci    EXPECT_NE(openat64_0040, fd, -1);
415570af302Sopenharmony_ci    close(fd);
416570af302Sopenharmony_ci
417570af302Sopenharmony_ci    return;
418570af302Sopenharmony_ci}
419570af302Sopenharmony_ci#endif
420570af302Sopenharmony_ci
421570af302Sopenharmony_ciint main(int argc, char *argv[]) {
422570af302Sopenharmony_ci    remove_all_special_handler(SIGABRT);
423570af302Sopenharmony_ci    open_0010();
424570af302Sopenharmony_ci    open_0020();
425570af302Sopenharmony_ci    open_0030();
426570af302Sopenharmony_ci    open_0040();
427570af302Sopenharmony_ci    openat_0010();
428570af302Sopenharmony_ci    openat_0020();
429570af302Sopenharmony_ci    openat_0030();
430570af302Sopenharmony_ci    openat_0040();
431570af302Sopenharmony_ci#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
432570af302Sopenharmony_ci    open64_0010();
433570af302Sopenharmony_ci    open64_0020();
434570af302Sopenharmony_ci    open64_0030();
435570af302Sopenharmony_ci    open64_0040();
436570af302Sopenharmony_ci    openat64_0010();
437570af302Sopenharmony_ci    openat64_0020();
438570af302Sopenharmony_ci    openat64_0030();
439570af302Sopenharmony_ci    openat64_0040();
440570af302Sopenharmony_ci#endif
441570af302Sopenharmony_ci    return t_status;
442570af302Sopenharmony_ci}