• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *   http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <signal.h>
17 #include <stdlib.h>
18 #include <sys/wait.h>
19 #include <unistd.h>
20 #include "functionalext.h"
21 
22 /**
23  * @tc.name      : link_0100
24  * @tc.desc      : Determine whether the created connection is successful and whether the file exists
25  * @tc.level     : Level 0
26  */
link_0100(void)27 void link_0100(void)
28 {
29     system("touch /etc/a.txt");
30     int result = link("/etc/a.txt", "/etc/a_link.txt");
31     EXPECT_EQ("link_0100", result, 0);
32     EXPECT_EQ("link_0100", access("/etc/a_link.txt", F_OK), 0);
33     system("rm -f /etc/a_link.txt");
34 }
35 
36 /**
37  * @tc.name      : link_0200
38  * @tc.desc      : Determine whether the file is successfully created when creating a hard link file with the same name
39  * @tc.level     : Level 2
40  */
link_0200(void)41 void link_0200(void)
42 {
43     if (access("/etc/a_link.txt", F_OK) != 0) {
44         int result = link("/etc/a.txt", "/etc/a_link.txt");
45         EXPECT_EQ("link_0200", result, 0);
46     }
47     EXPECT_NE("link_0200", link("/etc/a.txt", "/etc/a_link.txt"), 0);
48     EXPECT_EQ("link_0200", errno, EEXIST);
49     system("rm -f /etc/a_link.txt");
50 }
51 
52 /**
53  * @tc.name      : link_0300
54  * @tc.desc      : Outlier judgment
55  * @tc.level     : Level 2
56  */
link_0300(void)57 void link_0300(void)
58 {
59     int result = link(NULL, NULL);
60     EXPECT_EQ("link_0300", result, ERREXPECT);
61     EXPECT_EQ("link_0300", errno, EFAULT);
62 
63     if (access("/etc/a.txt", F_OK) == 0) {
64         system("rm -f /etc/a.txt");
65     }
66 
67     if (access("/etc/a_link.txt", F_OK) == 0) {
68         system("rm -f /etc/a_link.txt");
69     }
70 }
71 
main(void)72 int main(void)
73 {
74     // link_0100();
75     // link_0200();
76     // link_0300();
77 
78     return t_status;
79 }