OpenCoverage

test.def

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/bash/src/builtins/test.def
Source codeSwitch to Preprocessed file
LineSourceCount
1This file is test.def, from which is created test.c.-
2It implements the builtin "test" in Bash.-
3-
4Copyright (C) 1987-2015 Free Software Foundation, Inc.-
5-
6This file is part of GNU Bash, the Bourne Again SHell.-
7-
8Bash is free software: you can redistribute it and/or modify-
9it under the terms of the GNU General Public License as published by-
10the Free Software Foundation, either version 3 of the License, or-
11(at your option) any later version.-
12-
13Bash is distributed in the hope that it will be useful,-
14but WITHOUT ANY WARRANTY; without even the implied warranty of-
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
16GNU General Public License for more details.-
17-
18You should have received a copy of the GNU General Public License-
19along with Bash. If not, see <http://www.gnu.org/licenses/>.-
20-
21$PRODUCES test.c-
22-
23$BUILTIN test-
24$FUNCTION test_builtin-
25$SHORT_DOC test [expr]-
26Evaluate conditional expression.-
27-
28Exits with a status of 0 (true) or 1 (false) depending on-
29the evaluation of EXPR. Expressions may be unary or binary. Unary-
30expressions are often used to examine the status of a file. There-
31are string operators and numeric comparison operators as well.-
32-
33The behavior of test depends on the number of arguments. Read the-
34bash manual page for the complete specification.-
35-
36File operators:-
37-
38 -a FILE True if file exists.-
39 -b FILE True if file is block special.-
40 -c FILE True if file is character special.-
41 -d FILE True if file is a directory.-
42 -e FILE True if file exists.-
43 -f FILE True if file exists and is a regular file.-
44 -g FILE True if file is set-group-id.-
45 -h FILE True if file is a symbolic link.-
46 -L FILE True if file is a symbolic link.-
47 -k FILE True if file has its `sticky' bit set.-
48 -p FILE True if file is a named pipe.-
49 -r FILE True if file is readable by you.-
50 -s FILE True if file exists and is not empty.-
51 -S FILE True if file is a socket.-
52 -t FD True if FD is opened on a terminal.-
53 -u FILE True if the file is set-user-id.-
54 -w FILE True if the file is writable by you.-
55 -x FILE True if the file is executable by you.-
56 -O FILE True if the file is effectively owned by you.-
57 -G FILE True if the file is effectively owned by your group.-
58 -N FILE True if the file has been modified since it was last read.-
59-
60 FILE1 -nt FILE2 True if file1 is newer than file2 (according to-
61 modification date).-
62-
63 FILE1 -ot FILE2 True if file1 is older than file2.-
64-
65 FILE1 -ef FILE2 True if file1 is a hard link to file2.-
66-
67String operators:-
68-
69 -z STRING True if string is empty.-
70-
71 -n STRING-
72 STRING True if string is not empty.-
73-
74 STRING1 = STRING2-
75 True if the strings are equal.-
76 STRING1 != STRING2-
77 True if the strings are not equal.-
78 STRING1 < STRING2-
79 True if STRING1 sorts before STRING2 lexicographically.-
80 STRING1 > STRING2-
81 True if STRING1 sorts after STRING2 lexicographically.-
82-
83Other operators:-
84-
85 -o OPTION True if the shell option OPTION is enabled.-
86 -v VAR True if the shell variable VAR is set.-
87 -R VAR True if the shell variable VAR is set and is a name-
88 reference.-
89 ! EXPR True if expr is false.-
90 EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.-
91 EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.-
92-
93 arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,-
94 -lt, -le, -gt, or -ge.-
95-
96Arithmetic binary operators return true if ARG1 is equal, not-equal,-
97less-than, less-than-or-equal, greater-than, or greater-than-or-equal-
98than ARG2.-
99-
100Exit Status:-
101Returns success if EXPR evaluates to true; fails if EXPR evaluates to-
102false or an invalid argument is given.-
103$END-
104-
105$BUILTIN [-
106$DOCNAME test_bracket-
107$FUNCTION test_builtin-
108$SHORT_DOC [ arg... ]-
109Evaluate conditional expression.-
110-
111This is a synonym for the "test" builtin, but the last argument must-
112be a literal `]', to match the opening `['.-
113$END-
114-
115#include <config.h>-
116-
117#if defined (HAVE_UNISTD_H)-
118# ifdef _MINIX-
119# include <sys/types.h>-
120# endif-
121# include <unistd.h>-
122#endif-
123-
124#include "../bashansi.h"-
125#include "../bashintl.h"-
126-
127#include "../shell.h"-
128#include "../execute_cmd.h"-
129#include "../test.h"-
130#include "common.h"-
131-
132/* TEST/[ builtin. */-
133int-
134test_builtin (list)-
135 WORD_LIST *list;-
136{-
137 char **argv;-
138 int argc, result;-
139-
140 /* We let Matthew Bradburn and Kevin Braunsdorf's code do the-
141 actual test command. So turn the list of args into an array-
142 of strings, since that is what their code wants. */-
143 if (list == 0)
list == 0Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 4357 times by 1 test
Evaluated by:
  • Self test
2-4357
144 {-
145 if (this_command_name[0] == '[' && !this_command_name[1])
this_command_name[0] == '['Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test
!this_command_name[1]Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-1
146 {-
147 builtin_error (_("missing `]'"));-
148 return (EX_BADUSAGE);
executed 1 time by 1 test: return (2);
Executed by:
  • Self test
1
149 }-
150-
151 return (EXECUTION_FAILURE);
executed 1 time by 1 test: return (1);
Executed by:
  • Self test
1
152 }-
153-
154 argv = make_builtin_argv (list, &argc);-
155 result = test_command (argc, argv);-
156 free ((char *)argv);-
157-
158 return (result);
executed 4357 times by 1 test: return (result);
Executed by:
  • Self test
4357
159}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2