(file) Return to regress CVS log (file) (dir) Up to [OMI] / omi

  1 krisbash 1.1 #!/bin/sh
  2              
  3              run_char=1
  4              run_wchar=1
  5              run_size=1
  6              run_check=1
  7              
  8              ##==============================================================================
  9              ##
 10              ## Get command line options that start with dash:
 11              ##
 12              ##==============================================================================
 13              for opt
 14              do
 15              
 16                arg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
 17              
 18                case $opt in
 19              
 20                  -h | --help)
 21                    help=1
 22 krisbash 1.1       ;;
 23              
 24                  --runs=*)
 25                      run_char=0
 26                      run_wchar=0
 27                      run_size=0
 28                      run_check=0
 29                      runs=`echo $arg | sed 's/:/ /g'`
 30                      for i in $runs
 31                      do
 32                          case $i in
 33                              char)
 34                                  run_char=1
 35                                  ;;
 36                              wchar)
 37                                  run_wchar=1
 38                                  ;;
 39                              size)
 40                                  run_size=1
 41                                  ;;
 42                              check)
 43 krisbash 1.1                     run_check=1
 44                                  ;;
 45                              all)
 46                                  run_char=1
 47                                  run_wchar=1
 48                                  run_size=1
 49                                  run_check=1
 50                                  ;;
 51                              *)
 52                                  echo "$0: unknown option argument for --runs:  $i"
 53                                  exit 1
 54                          esac
 55                      done
 56                      ;;
 57                    
 58                  *)
 59                    echo "$0: unknown option:  $opt"
 60                    exit 1
 61                    ;;
 62              
 63                esac
 64 krisbash 1.1 done
 65              
 66              ##=============================================================================
 67              ##
 68              ## Handle --help option:
 69              ##
 70              ##==============================================================================
 71              
 72              if [ "$help" = "1" ]; then
 73              
 74                  cat<<EOF
 75              
 76              Usage: ./regress [OPTIONS] TESTNAME(S)
 77              
 78              OVERVIEW:
 79              
 80              Runs regression tests for OMI.
 81              
 82                  $ ./regress [OPTIONS] TESTNAME(S)
 83              
 84              OPTIONS:
 85 krisbash 1.1     -h, --help              Print this help message.
 86                  --enable-ut             Enable UT tests.
 87                  --runs=TESTNAME(S)  Run only those test runs
 88              TESTNAME(S):
 89                  char                  run (single byte) char tests run
 90                  wchar                 run wchar tests run
 91                  size                  run (optimized for) size tests run
 92                  check                 run check tests run
 93                  all                   run all test runs (char, wchar, size, check)
 94              
 95              Examples:
 96                     ./regress
 97                     ./regress --runs=char:wchar
 98                     
 99              EOF
100                  exit 0
101              fi
102              
103              ##==============================================================================
104              ##
105              ## Determine configure and root directories:
106 krisbash 1.1 ##
107              ##==============================================================================
108              
109              root=`dirname $0`
110              
111              ##==============================================================================
112              ##
113              ## 'world' tests
114              ##
115              ##==============================================================================
116              
117              if [ "$run_char" = "1" ]; then
118              
119              rm -rf ./output1 GNUmakefile
120              $root/configure --dev --outputdirname=output1 $options
121              make world
122              
123              if [ "$?" != "0" ]; then
124                  echo "$0: failed 'world' tests"
125                  exit 1
126              fi
127 krisbash 1.1 
128              rm -rf ./output1 GNUmakefile
129              
130              fi
131              
132              ##==============================================================================
133              ##
134              ## 'wchar' tests:
135              ##
136              ##==============================================================================
137              
138              if [ "$run_wchar" = "1" ]; then
139              
140              rm -rf ./output2 GNUmakefile
141              $root/configure --dev --enable-wchar --outputdirname=output2 $options
142              make world
143              
144              if [ "$?" != "0" ]; then
145                  echo "$0: failed 'wchar' tests"
146                  exit 1
147              fi
148 krisbash 1.1 
149              rm -rf ./output2 GNUmakefile
150              
151              fi
152              
153              ##==============================================================================
154              ##
155              ## 'size' tests
156              ##
157              ##==============================================================================
158              
159              if [ "$run_size" = "1" ]; then
160              
161              rm -rf ./output3 GNUmakefile
162              $root/configure --dev --favorsize --outputdirname=output3  $options
163              make world
164              
165              if [ "$?" != "0" ]; then
166                  echo "$0: failed 'size' tests"
167                  exit 1
168              fi
169 krisbash 1.1 
170              rm -rf ./output3 GNUmakefile
171              
172              fi
173              
174              ##==============================================================================
175              ##
176              ## make dist + check tests
177              ##
178              ##==============================================================================
179              
180              if [ "$run_check" = "1" ]; then
181              
182              rm -rf ./output4 GNUmakefile
183              
184              # compose omi tar package name
185              major=`cut -d. -f1 $root/VERSION`
186              minor=`cut -d. -f2 $root/VERSION`
187              revision=`cut -d. -f3 $root/VERSION`
188              version="$major.$minor.$revision"
189              omitarname=omi-$version.tar.gz
190 krisbash 1.1 
191              # create tar package
192              $root/configure
193              make dist
194              
195              # copy tar package to a temp directory
196              checkdir=$root/disttemp
197              echo "checkdir=$checkdir"
198              rm -rf $checkdir
199              mkdir $checkdir
200              cp $root/$omitarname $checkdir
201              
202              # validate the tar package
203              cd $checkdir
204              ls $omitarname
205              gzip -d $omitarname
206              tar xf omi-$version.tar
207              cd omi-$version
208              
209              ##
210              ## Create the prefix directory:
211 krisbash 1.1 ##
212              
213              prefix=/tmp/OMI932E75578CAB46E4A3EB87787B9EA40F
214              rm -rf $prefix
215              
216              if [ -d "$prefix" ]; then
217                  echo "$0: failed: directory already exists (please remove and retry): $prefix"
218                  exit 1;
219              fi
220              
221              ##
222              ## configure:
223              ##
224              
225              rm -rf $prefix
226              ./configure --prefix=$prefix --outputdirname=output4 $options
227              
228              if [ "$?" != "0" ]; then
229                  echo "$0: configure failed"
230                  exit 1
231              fi
232 krisbash 1.1 
233              ##
234              ## make:
235              ##
236              
237              make
238              
239              if [ "$?" != "0" ]; then
240                  echo "$0: make failed"
241                  exit 1
242              fi
243              
244              ##
245              ## check:
246              ##
247              
248              make check
249              
250              if [ "$?" != "0" ]; then
251                  echo "$0: check failed"
252                  exit 1
253 krisbash 1.1 fi
254              
255              ##
256              ## install:
257              ##
258              
259              make install
260              
261              if [ "$?" != "0" ]; then
262                  echo "$0: make install failed"
263                  rm -rf $prefix
264                  exit 1
265              fi
266              
267              ##
268              ## Generate C++ provider:
269              ##
270              
271              mkdir $prefix/ocsprovider
272              
273              if [ "$?" != "0" ]; then
274 krisbash 1.1     echo "$0: failed to create $prefix/oscprovider directory"
275                  rm -rf $prefix
276                  exit 1
277              fi
278              
279              cat > $prefix/ocsprovider/schema.mof  <<EOF
280              class OMI_ComputerSystem : CIM_ComputerSystem { };
281              EOF
282              
283              if [ "$?" != "0" ]; then
284                  echo "$0: failed to create schema.mof"
285                  rm -rf $prefix
286                  exit 1
287              fi
288              
289              savedir=`pwd`
290              
291              cd $prefix/ocsprovider
292              $prefix/bin/omigen --cpp -m oscprovider ./schema.mof OMI_ComputerSystem
293              
294              if [ "$?" != "0" ]; then
295 krisbash 1.1     echo "$0: failed to generate provider"
296                  rm -rf $prefix
297                  exit 1
298              fi
299              
300              ##
301              ## Build the C++ provider:
302              ##
303              
304              make
305              
306              if [ "$?" != "0" ]; then
307                  echo "$0: failed to build provider"
308                  rm -rf $prefix
309                  exit 1
310              fi
311              
312              ##
313              ## Register the C++ provider:
314              ##
315              
316 krisbash 1.1 make reg
317              
318              if [ "$?" != "0" ]; then
319                  echo "$0: failed to register provider"
320                  rm -rf $prefix
321                  exit 1
322              fi
323              
324              ##
325              ## Start the server with these options:
326              ##     -i -- ignore authentication (allowing to run as non-root)
327              ##     -d -- daemonize (run in the background)
328              ##     --livetime 60 -- exit server in 60 seconds
329              ##     --httpport 0 -- don't bind to an HTTP port
330              ##     --httpports 0 -- don't bind to an HTTPS port
331              ##
332              
333              $prefix/bin/omiserver -i -d --livetime 60 --httpport 0 --httpsport 0
334              
335              if [ "$?" != "0" ]; then
336                  echo "$0: failed to start server"
337 krisbash 1.1     rm -rf $prefix
338                  exit 1
339              fi
340              
341              sleep 3
342              
343              ##
344              ## Enumerate instances of OMI_ComputerSystem (expect MI_RESULT_NOT_SUPPORTED=7)
345              ##
346              
347              $prefix/bin/omicli ei root/cimv2 OMI_ComputerSystem
348              
349              if [ "$?" != "7" ]; then
350                  echo "$0: failed to enumerate instances of OMI_ComputerSystem"
351                  rm -rf $prefix
352                  exit 1
353              fi
354              
355              ##
356              ## Stop the server:
357              ##
358 krisbash 1.1 
359              $prefix/bin/omiserver -s
360              
361              if [ "$?" != "0" ]; then
362                  echo "$0: failed to stop the server"
363                  rm -rf $prefix
364                  exit 1
365              fi
366              
367              ##
368              ## Cleanup:
369              ##
370              
371              cd $savedir
372              rm -rf $prefix
373              rm -rf ./output4 GNUmakefile
374              cd ../..
375              rm -rf $root/$omitarname $root/GNUmakefile $checkdir
376              
377              fi
378              
379 krisbash 1.1 ##==============================================================================
380              ##
381              ## SUCCESS
382              ##
383              ##==============================================================================
384              
385              echo ""
386              echo ""
387              echo "##===================##"
388              echo "##                   ##"
389              echo "## ALL TESTS PASSED! ##"
390              echo "##                   ##"
391              echo "##===================##"
392              echo ""
393              exit 0

ViewCVS 0.9.2