gt: tests: Add config create/rm commands parsing tests
[platform/upstream/gt.git] / source / test.bash
1 #!/bin/bash
2
3 if [ "$1" ]
4 then
5         if [ -f "$1" ]
6         then
7                 GT="$1";
8         elif [ which $1 &> /dev/null ]
9         then
10                 GT="$1";
11         else
12                 echo "Executable file not found. Aborted.";
13                 exit 1;
14         fi
15 elif [ -f "gt" ]
16 then
17         GT="./gt";
18 else
19         echo "Executable file not specified. Aborted."
20         exit 1;
21 fi
22
23 ERROR_COUNT=0;
24 SUCCESS_COUNT=0;
25
26 function expect_success {
27         if ! $GT $1 > test.out; then
28                 ERROR_COUNT=$((ERROR_COUNT + 1));
29                 echo "$(tput setaf 1)[FAILED]$(tput sgr0) gt $1 -- gt failed";
30         elif ! diff -w <(tail -n+2 test.out) <(echo "$2") &> /dev/null; then
31                 ERROR_COUNT=$((ERROR_COUNT + 1));
32                 echo "$(tput setaf 1)[FAILED]$(tput sgr0) gt $1 -- unexpected output";
33                 echo "Expected:";
34                 echo "$2";
35                 echo "Got: ";
36                 tail -n+2 test.out;
37         else
38                 SUCCESS_COUNT=$((SUCCESS_COUNT + 1));
39                 echo "$(tput setaf 2)[OK]$(tput sgr0) gt $1 -- succeed";
40         fi
41 }
42
43 function expect_failure {
44         if $GT $1 &> /dev/null; then
45                 ERROR_COUNT=$((ERROR_COUNT + 1));
46                 echo "$(tput setaf 1)[FAILED]$(tput sgr0) gt $1 -- expected failure";
47         else
48                 SUCCESS_COUNT=$((SUCCESS_COUNT + 1));
49                 echo "$(tput setaf 2)[OK]$(tput sgr0) gt $1 -- failed as expected";
50         fi
51
52 }
53
54 expect_success "settings set default-udc=udc1" "default-udc=udc1, ";
55 expect_success "settings set default-udc=udc1 default-template-path=path1"\
56         "default-udc=udc1, default-template-path=path1, ";
57 expect_success "settings get config-fs-path" "config-fs-path, ";
58 expect_success "settings get config-fs-path default-udc"\
59         "config-fs-path, default-udc,";
60 expect_success "settings get" "";
61 expect_success "settings append lookup-path value" "var=lookup-path, val=value";
62 expect_success "settings detach lookup-path value" "var=lookup-path, val=value";
63
64 expect_failure "settings set badopt=val";
65 expect_failure "settings get badopt";
66 expect_failure "settings append badopt badval";
67 expect_failure "settings append lookup-path too many";
68 expect_failure "settings append lookup-path";
69 expect_failure "settings detach badopt badval";
70 expect_failure "settings detach lookup-path and more";
71 expect_failure "settings detach lookup-path";
72
73 expect_success "create gadget1" "name=gadget1, force=0";
74 expect_success "create -f gadget2" "name=gadget2, force=1";
75 expect_success "create -f gadget2 attr=val" "name=gadget2, force=1, attr=val";
76 expect_success "create --force gadget3 attr1=val1 attr2=val2"\
77         "name=gadget3, force=1, attr1=val1, attr2=val2";
78 expect_success "rm gadget1" "name=gadget1, force=0, recursive=0";
79 expect_success "rm -r gadget2" "name=gadget2, force=0, recursive=1";
80 expect_success "rm -f gadget3" "name=gadget3, force=1, recursive=0";
81 expect_success "rm -rf gadget4" "name=gadget4, force=1, recursive=1";
82
83 expect_failure "create gadget1 --verbose";
84 expect_failure "create gadget1 and more";
85 expect_failure "create";
86 expect_failure "rm -rf gadget gadget";
87 expect_failure "rm";
88
89 expect_success "get gadget1" "name=gadget1, attrs=";
90 expect_success "get gadget1 attr" "name=gadget1, attrs=attr,";
91 expect_success "get gadget2 attr1 attr2 attr3 attr4" \
92         "name=gadget2, attrs=attr1, attr2, attr3, attr4,";
93 expect_success "set gadget attr=val" "name=gadget, attr=val";
94 expect_success "set gadget attr1=val1 attr2=val2"\
95         "name=gadget, attr1=val1, attr2=val2";
96
97 expect_failure "get";
98 expect_failure "set gadget";
99 expect_failure "set gadget attr equals val";
100 expect_failure "set";
101
102 expect_success "enable" "";
103 expect_success "enable --gadget=gadget --udc=udc" "gadget=gadget, udc=udc";
104 expect_success "enable --gadget=gadget1" "gadget=gadget1,";
105 expect_success "enable --udc=udc1" "udc=udc1";
106 expect_success "disable" "";
107 expect_success "disable gadget1" "gadget=gadget1,";
108 expect_success "disable --udc=udc1" "udc=udc1";
109
110 expect_failure "disable gadget1 --udc=udc";
111 expect_failure "enable -f";
112 expect_failure "enable -v";
113 expect_failure "enable -r";
114 expect_failure "enable -o";
115 expect_failure "disable gadget1 sth";
116 expect_failure "disable gadget1 --gadget=gadget2";
117 expect_failure "disable gadget1 -f";
118 expect_failure "disable gadget1 -v";
119 expect_failure "disable gadget1 -r";
120 expect_failure "disable gadget1 -o";
121
122 expect_success "gadget gadget2" "name=gadget2, recursive=0, verbose=0";
123 expect_success "gadget gadget1 -v" "name=gadget1, recursive=0, verbose=1";
124 expect_success "gadget gadget3 -r" "name=gadget3, recursive=1, verbose=0";
125 expect_success "gadget gadget4 -vr" "name=gadget4, recursive=1, verbose=1";
126
127 expect_failure "gadget gadget -f";
128 expect_failure "gadget gadget gadget";
129
130 expect_success "load name gadget1" "name=name, gadget=gadget1, off=0, stdin=0";
131 expect_success "load name gadget1 --off" "name=name, gadget=gadget1, off=1, stdin=0";
132 expect_success "load name --stdin" "gadget=name, off=0, stdin=1";
133 expect_success "load name gadget1 --path=path"\
134         "name=name, gadget=gadget1, path=path, off=0, stdin=0";
135 expect_success "save gadget1 name" "gadget=gadget1, name=name, force=0, stdout=0";
136 expect_success "save gadget1 --file=file"\
137         "gadget=gadget1, file=file, force=0, stdout=0";
138 expect_success "save gadget1 --stdout attr=val"\
139         "gadget=gadget1, force=0, stdout=1, attr=val";
140 expect_success "save gadget1 name --path=path"\
141         "gadget=gadget1, name=name, path=path, force=0, stdout=0";
142 expect_success "save gadget1 name -f"\
143         "gadget=gadget1, name=name, force=1, stdout=0";
144
145 expect_failure "load name --file=file1 --stdin";
146 expect_failure "load name --stdin --path=path1";
147 expect_failure "load name --path=path1 --file=file1";
148 expect_failure "load name --path";
149 expect_failure "load name --file";
150 expect_failure "load";
151 expect_failure "save gadget --file=file1 --stdin";
152 expect_failure "save gadget --stdin --path=path1";
153 expect_failure "save gadget --path=path1 --file=file1";
154 expect_failure "save gadget --path";
155 expect_failure "save gadget --file";
156 expect_failure "save";
157
158 expect_success "template name" "name=name, verbose=0, recursive=0";
159 expect_success "template" "verbose=0, recursive=0";
160 expect_success "template --verbose --recursive" "verbose=1, recursive=1";
161 expect_success "template --verbose name" "name=name, verbose=1, recursive=0";
162 expect_success "template --recursive name" "name=name, verbose=0, recursive=1";
163
164 expect_failure "template -f";
165 expect_failure "template -o";
166 expect_failure "template name1 name2";
167
168 expect_success "template get name" "name=name, attr=";
169 expect_success "template get name attr" "name=name, attr=attr,";
170 expect_success "template set name attr=val" "name=name, attr=val";
171 expect_success "template rm name" "name=name";
172
173 expect_failure "template get"
174 expect_failure "template set name"
175 expect_failure "template set name attr"
176 expect_failure "template set name attr1=val1 attr2"
177 expect_failure "template rm"
178 expect_failure "template rm name1 name2"
179
180 expect_success "config create gadget1 config1"\
181         "gadget=gadget1, config=config1, force=0";
182 expect_success "config create gadget1 config1 attr=val"\
183         "gadget=gadget1, config=config1, force=0, attr=val";
184 expect_success "config create -f gadget1 config1"\
185         "gadget=gadget1, config=config1, force=1";
186 expect_success "config rm gadget config"\
187         "gadget=gadget, config=config, force=0, recursive=0";
188 expect_success "config rm -rf gadget config"\
189         "gadget=gadget, config=config, force=1, recursive=1";
190
191 expect_failure "config create -r gadget1 config1";
192 expect_failure "config create -f gadget1";
193 expect_failure "config rm gadget";
194 expect_failure "config rm -rfv gadget config";
195 expect_failure "config rm gadget config function";
196
197 echo "Testing finished, $SUCCESS_COUNT tests passed, $ERROR_COUNT failed.";