OpenCoverage

pathcanon.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/bash/src/lib/sh/pathcanon.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9static int-
10_path_isdir (path)-
11 char *path;-
12{-
13 int l;-
14 struct stat sb;-
15-
16-
17 -
18 (*__errno_location ()) -
19 = 0;-
20 l = stat (path, &sb) == 0
stat (path, &sb) == 0Description
TRUEevaluated 38354 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5 times by 1 test
Evaluated by:
  • Self test
&&
5-38354
21 ((((
(((( sb.st_mod... == (0040000))Description
TRUEevaluated 38353 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test
1-38353
22 sb.st_mode
(((( sb.st_mod... == (0040000))Description
TRUEevaluated 38353 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test
1-38353
23 )) & 0170000) == (0040000))
(((( sb.st_mod... == (0040000))Description
TRUEevaluated 38353 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test
1-38353
24 ;-
25-
26-
27-
28-
29 return
executed 38359 times by 1 test: return l;
Executed by:
  • Self test
l;
executed 38359 times by 1 test: return l;
Executed by:
  • Self test
38359
30}-
31char *-
32sh_canonpath (path, flags)-
33 char *path;-
34 int flags;-
35{-
36 char stub_char;-
37 char *result, *p, *q, *base, *dotdot;-
38 int rooted, double_slash_path;-
39-
40-
41 result = (
(flags & 0x0008)Description
TRUEnever evaluated
FALSEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
flags & 0x0008)
(flags & 0x0008)Description
TRUEnever evaluated
FALSEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
? path : (char *)strcpy (sh_xmalloc((1 + strlen (path)), "pathcanon.c", 113), (path));
0-5515
42-
43-
44-
45 if (rooted = (((path)[0] == '/'))
rooted = (((path)[0] == '/'))Description
TRUEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
)
0-5515
46 {-
47 stub_char = '/';-
48-
49-
50-
51 base = result + 1;-
52-
53 double_slash_path = ((
(path[0] == '/')Description
TRUEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
path[0] == '/')
(path[0] == '/')Description
TRUEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
&& (
(path[1] == '/')Description
TRUEnever evaluated
FALSEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
path[1] == '/')
(path[1] == '/')Description
TRUEnever evaluated
FALSEevaluated 5515 times by 1 test
Evaluated by:
  • Self test
&& path[2] != '/'
path[2] != '/'Description
TRUEnever evaluated
FALSEnever evaluated
);
0-5515
54 base += double_slash_path;-
55 }
executed 5515 times by 1 test: end of block
Executed by:
  • Self test
5515
56 else-
57 {-
58 stub_char = '.';-
59-
60-
61-
62 base = result;-
63-
64 double_slash_path = 0;-
65 }
never executed: end of block
0
66 p = q = dotdot = base;-
67-
68 while (*
*pDescription
TRUEevaluated 71210 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
p
*pDescription
TRUEevaluated 71210 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
)
5509-71210
69 {-
70 if (((
((p[0]) == '/')Description
TRUEevaluated 32850 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 38360 times by 1 test
Evaluated by:
  • Self test
p[0]) == '/')
((p[0]) == '/')Description
TRUEevaluated 32850 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 38360 times by 1 test
Evaluated by:
  • Self test
)
32850-38360
71 p++;
executed 32850 times by 1 test: p++;
Executed by:
  • Self test
32850
72 else if(p[0] == '.'
p[0] == '.'Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEevaluated 38359 times by 1 test
Evaluated by:
  • Self test
&& (((
((p[1]) == '/')Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
p[1]) == '/')
((p[1]) == '/')Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
|| (
(p[1]) == 0Description
TRUEnever evaluated
FALSEnever evaluated
p[1]) == 0
(p[1]) == 0Description
TRUEnever evaluated
FALSEnever evaluated
))
0-38359
73 p += 1;
executed 1 time by 1 test: p += 1;
Executed by:
  • Self test
1
74 else if (p[0] == '.'
p[0] == '.'Description
TRUEnever evaluated
FALSEevaluated 38359 times by 1 test
Evaluated by:
  • Self test
&& p[1] == '.'
p[1] == '.'Description
TRUEnever evaluated
FALSEnever evaluated
&& (((
((p[2]) == '/')Description
TRUEnever evaluated
FALSEnever evaluated
p[2]) == '/')
((p[2]) == '/')Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(p[2]) == 0Description
TRUEnever evaluated
FALSEnever evaluated
p[2]) == 0
(p[2]) == 0Description
TRUEnever evaluated
FALSEnever evaluated
))
0-38359
75 {-
76 p += 2;-
77 if (q > dotdot
q > dotdotDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
78 {-
79 if (flags & 0x0001
flags & 0x0001Description
TRUEnever evaluated
FALSEnever evaluated
)
0
80 {-
81 char c;-
82-
83-
84-
85 c = *q;-
86 *q = '\0';-
87 if (_path_isdir (result) == 0
_path_isdir (result) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
88 {-
89 if ((
(flags & 0x0008) == 0Description
TRUEnever evaluated
FALSEnever evaluated
flags & 0x0008) == 0
(flags & 0x0008) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
90 sh_xfree((result), "pathcanon.c", 171);
never executed: sh_xfree((result), "pathcanon.c", 171);
0
91 return
never executed: return ((char *) ((void *)0) );
((char *)
never executed: return ((char *) ((void *)0) );
0
92 ((void *)0)
never executed: return ((char *) ((void *)0) );
0
93 );
never executed: return ((char *) ((void *)0) );
0
94 }-
95 *q = c;-
96 }
never executed: end of block
0
97-
98 while (--
--q > dotdotDescription
TRUEnever evaluated
FALSEnever evaluated
q > dotdot
--q > dotdotDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((*
((*q) == '/') == 0Description
TRUEnever evaluated
FALSEnever evaluated
q) == '/') == 0
((*q) == '/') == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
99 ;
never executed: ;
0
100 }
never executed: end of block
0
101 else if (rooted == 0
rooted == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
102 {-
103-
104 if (q != base
q != baseDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
105 *
never executed: *q++ = '/';
q++ = '/';
never executed: *q++ = '/';
0
106 *q++ = '.';-
107 *q++ = '.';-
108 dotdot = q;-
109 }
never executed: end of block
0
110 }
never executed: end of block
0
111 else-
112 {-
113-
114 if (q != base
q != baseDescription
TRUEevaluated 32849 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5510 times by 1 test
Evaluated by:
  • Self test
)
5510-32849
115 *
executed 32849 times by 1 test: *q++ = '/';
Executed by:
  • Self test
q++ = '/';
executed 32849 times by 1 test: *q++ = '/';
Executed by:
  • Self test
32849
116 while (*
*pDescription
TRUEevaluated 323202 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5510 times by 1 test
Evaluated by:
  • Self test
p
*pDescription
TRUEevaluated 323202 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5510 times by 1 test
Evaluated by:
  • Self test
&& (((*
(((*p) == '/') == 0)Description
TRUEevaluated 290353 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 32849 times by 1 test
Evaluated by:
  • Self test
p) == '/') == 0)
(((*p) == '/') == 0)Description
TRUEevaluated 290353 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 32849 times by 1 test
Evaluated by:
  • Self test
)
5510-323202
117 *
executed 290353 times by 1 test: *q++ = *p++;
Executed by:
  • Self test
q++ = *p++;
executed 290353 times by 1 test: *q++ = *p++;
Executed by:
  • Self test
290353
118-
119 if (flags & 0x0002
flags & 0x0002Description
TRUEevaluated 38359 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
)
0-38359
120 {-
121 char c;-
122-
123-
124-
125 c = *q;-
126 *q = '\0';-
127 if (_path_isdir (result) == 0
_path_isdir (result) == 0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 38353 times by 1 test
Evaluated by:
  • Self test
)
6-38353
128 {-
129 if ((
(flags & 0x0008) == 0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
flags & 0x0008) == 0
(flags & 0x0008) == 0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
)
0-6
130 sh_xfree((result), "pathcanon.c", 209);
executed 6 times by 1 test: sh_xfree((result), "pathcanon.c", 209);
Executed by:
  • Self test
6
131 return
executed 6 times by 1 test: return ((char *) ((void *)0) );
Executed by:
  • Self test
((char *)
executed 6 times by 1 test: return ((char *) ((void *)0) );
Executed by:
  • Self test
6
132 ((void *)0)
executed 6 times by 1 test: return ((char *) ((void *)0) );
Executed by:
  • Self test
6
133 );
executed 6 times by 1 test: return ((char *) ((void *)0) );
Executed by:
  • Self test
6
134 }-
135 *q = c;-
136 }
executed 38353 times by 1 test: end of block
Executed by:
  • Self test
38353
137 }
executed 38353 times by 1 test: end of block
Executed by:
  • Self test
38353
138 }-
139-
140-
141 if (q == result
q == resultDescription
TRUEnever evaluated
FALSEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
)
0-5509
142 *
never executed: *q++ = stub_char;
q++ = stub_char;
never executed: *q++ = stub_char;
0
143 *q = '\0';-
144-
145-
146-
147-
148 if (((
(result[0] == '/')Description
TRUEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
result[0] == '/')
(result[0] == '/')Description
TRUEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
&& (
(result[1] == '/')Description
TRUEnever evaluated
FALSEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
result[1] == '/')
(result[1] == '/')Description
TRUEnever evaluated
FALSEevaluated 5509 times by 1 test
Evaluated by:
  • Self test
&& result[2] != '/'
result[2] != '/'Description
TRUEnever evaluated
FALSEnever evaluated
) && double_slash_path == 0
double_slash_path == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0-5509
149 {-
150 if (result[2] == '\0'
result[2] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
151 result[1] = '\0';
never executed: result[1] = '\0';
0
152 else-
153 strcpy (result, result + 1);
never executed: strcpy (result, result + 1);
0
154 }-
155-
156 return
executed 5509 times by 1 test: return (result);
Executed by:
  • Self test
(result);
executed 5509 times by 1 test: return (result);
Executed by:
  • Self test
5509
157}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2