OpenCoverage

mkdir-p.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/mkdir-p.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7_Bool-
8-
9make_dir_parents (char *dir,-
10 struct savewd *wd,-
11 int (*make_ancestor) (char const *, char const *, void *),-
12 void *options,-
13 mode_t mode,-
14 void (*announce) (char const *, void *),-
15 mode_t mode_bits,-
16 uid_t owner,-
17 gid_t group,-
18 -
19 _Bool -
20 preserve_existing)-
21{-
22 int mkdir_errno = (((((
(((dir)[0]) == '/')Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • ginstall
FALSEevaluated 10279 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
dir)[0]) == '/')
(((dir)[0]) == '/')Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • ginstall
FALSEevaluated 10279 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
|| 0 != 0
0 != 0Description
TRUEnever evaluated
FALSEevaluated 10279 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
) ? 0 : savewd_errno (wd));
0-10279
23-
24 if (mkdir_errno == 0
mkdir_errno == 0Description
TRUEevaluated 10281 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
)
0-10281
25 {-
26 ptrdiff_t prefix_len = 0;-
27 int savewd_chdir_options = (1 ? SAVEWD_CHDIR_SKIP_READABLE : 0
dead code: 0
);
-
28-
29 if (make_ancestor
make_ancestorDescription
TRUEevaluated 123 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEevaluated 10158 times by 1 test
Evaluated by:
  • mkdir
)
123-10158
30 {-
31 prefix_len = mkancesdirs (dir, wd, make_ancestor, options);-
32 if (prefix_len < 0
prefix_len < 0Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • ginstall
FALSEevaluated 118 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
)
5-118
33 {-
34 if (prefix_len < -1
prefix_len < -1Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • ginstall
FALSEevaluated 1 time by 1 test
Evaluated by:
  • ginstall
)
1-4
35 return
executed 4 times by 1 test: return 1 ;
Executed by:
  • ginstall
executed 4 times by 1 test: return 1 ;
Executed by:
  • ginstall
4
36 1
executed 4 times by 1 test: return 1 ;
Executed by:
  • ginstall
4
37 ;
executed 4 times by 1 test: return 1 ;
Executed by:
  • ginstall
4
38 mkdir_errno = -
39 (*__errno_location ())-
40 ;-
41 }
executed 1 time by 1 test: end of block
Executed by:
  • ginstall
1
42 }
executed 119 times by 2 tests: end of block
Executed by:
  • ginstall
  • mkdir
119
43-
44 if (0 <= prefix_len
0 <= prefix_lenDescription
TRUEevaluated 10276 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEevaluated 1 time by 1 test
Evaluated by:
  • ginstall
)
1-10276
45 {-
46-
47-
48-
49-
50-
51 -
52 _Bool -
53 keep_owner = owner == (uid_t) -1
owner == (uid_t) -1Description
TRUEevaluated 10276 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
&& group == (gid_t) -1
group == (gid_t) -1Description
TRUEevaluated 10276 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
;
0-10276
54 -
55 _Bool -
56 keep_special_mode_bits =-
57 ((mode_bits & (-
58 04000 -
59 | -
60 02000-
61 )) | (mode & -
62 01000-
63 )) == 0;-
64 mode_t mkdir_mode = mode;-
65 if (! keep_owner
! keep_ownerDescription
TRUEnever evaluated
FALSEevaluated 10276 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
)
0-10276
66 mkdir_mode &= ~ (
never executed: mkdir_mode &= ~ ( ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) );
0
67 ((0400|0200|0100) >> 3)
never executed: mkdir_mode &= ~ ( ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) );
0
68 |
never executed: mkdir_mode &= ~ ( ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) );
0
69 (((0400|0200|0100) >> 3) >> 3)
never executed: mkdir_mode &= ~ ( ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) );
0
70 );
never executed: mkdir_mode &= ~ ( ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) );
0
71 else if (! keep_special_mode_bits
! keep_special_mode_bitsDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ginstall
FALSEevaluated 10268 times by 1 test
Evaluated by:
  • mkdir
)
8-10268
72 mkdir_mode &= ~ (
executed 8 times by 1 test: mkdir_mode &= ~ ( (0200 >> 3) | ((0200 >> 3) >> 3) );
Executed by:
  • ginstall
8
73 (0200 >> 3)
executed 8 times by 1 test: mkdir_mode &= ~ ( (0200 >> 3) | ((0200 >> 3) >> 3) );
Executed by:
  • ginstall
8
74 |
executed 8 times by 1 test: mkdir_mode &= ~ ( (0200 >> 3) | ((0200 >> 3) >> 3) );
Executed by:
  • ginstall
8
75 ((0200 >> 3) >> 3)
executed 8 times by 1 test: mkdir_mode &= ~ ( (0200 >> 3) | ((0200 >> 3) >> 3) );
Executed by:
  • ginstall
8
76 );
executed 8 times by 1 test: mkdir_mode &= ~ ( (0200 >> 3) | ((0200 >> 3) >> 3) );
Executed by:
  • ginstall
8
77-
78 if (mkdir (dir + prefix_len, mkdir_mode) == 0
mkdir (dir + p...dir_mode) == 0Description
TRUEevaluated 10273 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEevaluated 3 times by 1 test
Evaluated by:
  • ginstall
)
3-10273
79 {-
80-
81-
82 -
83 _Bool -
84 umask_must_be_ok = (mode & mode_bits & -
85 ((0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3))-
86 ) == 0;-
87-
88 announce (dir, options);-
89 preserve_existing = (keep_owner & keep_special_mode_bits-
90 & umask_must_be_ok);-
91 savewd_chdir_options |= SAVEWD_CHDIR_NOFOLLOW;-
92 }
executed 10273 times by 2 tests: end of block
Executed by:
  • ginstall
  • mkdir
10273
93 else-
94 {-
95 mkdir_errno = -
96 (*__errno_location ())-
97 ;-
98 mkdir_mode = -1;-
99 }
executed 3 times by 1 test: end of block
Executed by:
  • ginstall
3
100-
101 if (preserve_existing
preserve_existingDescription
TRUEevaluated 10267 times by 1 test
Evaluated by:
  • mkdir
FALSEevaluated 9 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
)
9-10267
102 {-
103 struct stat st;-
104 if (mkdir_errno == 0
mkdir_errno == 0Description
TRUEevaluated 10267 times by 1 test
Evaluated by:
  • mkdir
FALSEnever evaluated
0-10267
105 || (mkdir_errno !=
mkdir_errno != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
106 2
mkdir_errno != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
107 && make_ancestor
make_ancestorDescription
TRUEnever evaluated
FALSEnever evaluated
0
108 && stat (dir + prefix_len, &st) == 0
stat (dir + pr...len, &st) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
109 && -
110 ((((
(((( st.st_mod... == (0040000))Description
TRUEnever evaluated
FALSEnever evaluated
0
111 st.st_mode
(((( st.st_mod... == (0040000))Description
TRUEnever evaluated
FALSEnever evaluated
0
112 )) & 0170000) == (0040000))
(((( st.st_mod... == (0040000))Description
TRUEnever evaluated
FALSEnever evaluated
0
113 ))-
114 return
executed 10267 times by 1 test: return 1 ;
Executed by:
  • mkdir
executed 10267 times by 1 test: return 1 ;
Executed by:
  • mkdir
10267
115 1
executed 10267 times by 1 test: return 1 ;
Executed by:
  • mkdir
10267
116 ;
executed 10267 times by 1 test: return 1 ;
Executed by:
  • mkdir
10267
117 }
never executed: end of block
0
118 else-
119 {-
120 int open_result[2];-
121 int chdir_result =-
122 savewd_chdir (wd, dir + prefix_len,-
123 savewd_chdir_options, open_result);-
124 if (chdir_result < -1
chdir_result < -1Description
TRUEnever evaluated
FALSEevaluated 9 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
)
0-9
125 return
never executed: return 1 ;
never executed: return 1 ;
0
126 1
never executed: return 1 ;
0
127 ;
never executed: return 1 ;
0
128 else-
129 {-
130 -
131 _Bool -
132 chdir_ok = (chdir_result == 0);-
133 char const *subdir = (chdir_ok
chdir_okDescription
TRUEevaluated 9 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
? "." : dir + prefix_len);
0-9
134 if (dirchownmod (open_result[0], subdir, mkdir_mode,
dirchownmod (o...ode_bits) == 0Description
TRUEevaluated 9 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
0-9
135 owner, group, mode, mode_bits)
dirchownmod (o...ode_bits) == 0Description
TRUEevaluated 9 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
0-9
136 == 0
dirchownmod (o...ode_bits) == 0Description
TRUEevaluated 9 times by 2 tests
Evaluated by:
  • ginstall
  • mkdir
FALSEnever evaluated
)
0-9
137 return
executed 9 times by 2 tests: return 1 ;
Executed by:
  • ginstall
  • mkdir
executed 9 times by 2 tests: return 1 ;
Executed by:
  • ginstall
  • mkdir
9
138 1
executed 9 times by 2 tests: return 1 ;
Executed by:
  • ginstall
  • mkdir
9
139 ;
executed 9 times by 2 tests: return 1 ;
Executed by:
  • ginstall
  • mkdir
9
140-
141 if (mkdir_errno == 0
mkdir_errno == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
142 || (mkdir_errno !=
mkdir_errno != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
143 2
mkdir_errno != 2Description
TRUEnever evaluated
FALSEnever evaluated
0
144 && make_ancestor
make_ancestorDescription
TRUEnever evaluated
FALSEnever evaluated
0
145 && -
146 (*
(*__errno_location ()) != 20Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 20Description
TRUEnever evaluated
FALSEnever evaluated
0
147 !=
(*__errno_location ()) != 20Description
TRUEnever evaluated
FALSEnever evaluated
0
148 20
(*__errno_location ()) != 20Description
TRUEnever evaluated
FALSEnever evaluated
0
149 ))-
150 {-
151 error (0, -
152 (*__errno_location ())-
153 ,-
154 -
155 dcgettext (((void *)0), -
156 keep_owner ? "cannot change permissions of %s" : "cannot change owner and permissions of %s"-
157 , 5)-
158-
159 -
160 ,-
161 quote (dir));-
162 return
never executed: return 0 ;
never executed: return 0 ;
0
163 0
never executed: return 0 ;
0
164 ;
never executed: return 0 ;
0
165 }-
166 }
never executed: end of block
0
167 }-
168 }-
169 }
executed 1 time by 1 test: end of block
Executed by:
  • ginstall
1
170-
171 error (0, mkdir_errno, -
172 dcgettext (((void *)0), -
173 "cannot create directory %s"-
174 , 5)-
175 , quote (dir));-
176 return
executed 1 time by 1 test: return 0 ;
Executed by:
  • ginstall
executed 1 time by 1 test: return 0 ;
Executed by:
  • ginstall
1
177 0
executed 1 time by 1 test: return 0 ;
Executed by:
  • ginstall
1
178 ;
executed 1 time by 1 test: return 0 ;
Executed by:
  • ginstall
1
179}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2