Commit e9b90e4ec9ac1d0b3c6e7d4541a34af9285b8931

Authored by Jürgen Knödlseder
1 parent 1531900e

Add cscripts and Python coverage measure.

.gitignore
@@ -40,6 +40,7 @@ stamp-h1 @@ -40,6 +40,7 @@ stamp-h1
40 depcomp 40 depcomp
41 test-driver 41 test-driver
42 testconf.sh 42 testconf.sh
  43 +coverage-report-python.xml
43 44
44 doc/html 45 doc/html
45 doc/man 46 doc/man
@@ -77,6 +78,8 @@ test/reports/*.xml @@ -77,6 +78,8 @@ test/reports/*.xml
77 test/butterfly.txt 78 test/butterfly.txt
78 test/model.reg 79 test/model.reg
79 test/obs.reg 80 test/obs.reg
  81 +test/.coverage
  82 +test/test_python.sh
80 examples/*.fits 83 examples/*.fits
81 examples/*.xml 84 examples/*.xml
82 examples/*.dat 85 examples/*.dat
Makefile.am
@@ -93,9 +93,15 @@ cppncss: @@ -93,9 +93,15 @@ cppncss:
93 # Add coverage rule 93 # Add coverage rule
94 coverage: 94 coverage:
95 @if type gcovr >/dev/null 2>&1; then \ 95 @if type gcovr >/dev/null 2>&1; then \
96 - gcovr -r . -x -o gcovr-reports-data.xml; \ 96 + gcovr -r . -x -o coverage-report-cxx.xml; \
97 else \ 97 else \
98 echo "gcovr script not found in PATH."; \ 98 echo "gcovr script not found in PATH."; \
  99 + fi; \
  100 + if type coverage >/dev/null 2>&1; then \
  101 + export COVERAGE_FILE=test/.coverage; \
  102 + coverage xml --omit=**/gammalib/** -o coverage-report-python.xml; \
  103 + else \
  104 + echo "coverage script not found in PATH."; \
99 fi 105 fi
100 106
101 # Add Valgrind rule 107 # Add Valgrind rule
configure.ac
@@ -754,6 +754,32 @@ fi @@ -754,6 +754,32 @@ fi
754 754
755 755
756 ############################################################################# 756 #############################################################################
  757 +# Checks for coverage option #
  758 +#############################################################################
  759 +# Initialise Python coverage with empty string
  760 +PYTHON_COVERAGE=
  761 +
  762 +# Check for coverage option
  763 +AC_MSG_CHECKING(whether to build ctools for code coverage measure)
  764 +AC_ARG_ENABLE([coverage],
  765 + AS_HELP_STRING([--enable-coverage],
  766 + [turn on code coverage measure [default=no]]),
  767 + [enable_coverage="$enableval"],
  768 + [enable_coverage="no"])
  769 +if test "x$enable_coverage" = "xyes"; then
  770 + CXXFLAGS="--coverage $CXXFLAGS"
  771 + LDFLAGS="--coverage $LDFLAGS"
  772 + if test "x$has_python" = "xyes"; then
  773 + PYTHON_COVERAGE="coverage run --append "
  774 + fi
  775 + AC_MSG_RESULT(yes)
  776 +else
  777 + AC_MSG_RESULT(no)
  778 +fi
  779 +AC_SUBST(PYTHON_COVERAGE)
  780 +
  781 +
  782 +#############################################################################
757 # Checks for GammaLib library # 783 # Checks for GammaLib library #
758 ############################################################################# 784 #############################################################################
759 # Initialise GammaLib availability 785 # Initialise GammaLib availability
@@ -971,6 +997,7 @@ AC_CONFIG_FILES([Makefile @@ -971,6 +997,7 @@ AC_CONFIG_FILES([Makefile
971 src/ctools-setup 997 src/ctools-setup
972 test/Makefile 998 test/Makefile
973 test/test_cscripts.sh 999 test/test_cscripts.sh
  1000 + test/test_python.sh
974 pyext/Makefile 1001 pyext/Makefile
975 pyext/setup.py 1002 pyext/setup.py
976 pyext/ctools/__init__.py 1003 pyext/ctools/__init__.py
@@ -982,6 +1009,7 @@ AC_CONFIG_FILES([Makefile @@ -982,6 +1009,7 @@ AC_CONFIG_FILES([Makefile
982 ctools.pc 1009 ctools.pc
983 testconf.sh], 1010 testconf.sh],
984 [if test -f test/test_cscripts.sh; then chmod +x test/test_cscripts.sh; fi; 1011 [if test -f test/test_cscripts.sh; then chmod +x test/test_cscripts.sh; fi;
  1012 + if test -f test/test_python.sh; then chmod +x test/test_python.sh; fi;
985 if test -f testconf.sh; then chmod +x testconf.sh; fi]) 1013 if test -f testconf.sh; then chmod +x testconf.sh; fi])
986 AC_OUTPUT 1014 AC_OUTPUT
987 1015
test/Makefile.am
@@ -7,7 +7,7 @@ MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@ @@ -7,7 +7,7 @@ MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@
7 # Optional python bindings 7 # Optional python bindings
8 if WITH_PYTHON 8 if WITH_PYTHON
9 TEST_CSCRIPTS = test_cscripts.sh 9 TEST_CSCRIPTS = test_cscripts.sh
10 - TEST_PYTHON_SCRIPT = test_python.py 10 + TEST_PYTHON_SCRIPT = test_python.sh
11 TEST_PYTHON_ENV = PYTHONPATH=$(top_builddir):$(top_builddir)/pyext:$(top_builddir)/pyext/build/ctools/ctools:$(pythondir):$(pyexecdir):$(PYTHONPATH) 11 TEST_PYTHON_ENV = PYTHONPATH=$(top_builddir):$(top_builddir)/pyext:$(top_builddir)/pyext/build/ctools/ctools:$(pythondir):$(pyexecdir):$(PYTHONPATH)
12 endif 12 endif
13 13
test/test_cscripts.sh.in
@@ -36,7 +36,7 @@ $ECHO "*****************" @@ -36,7 +36,7 @@ $ECHO "*****************"
36 # 36 #
37 # Remove any existing result files 37 # Remove any existing result files
38 # ================================ 38 # ================================
39 -rm -rf *.fits *.xml *.dat *.reg 39 +rm -rf *.fits *.xml *.dat *.reg .coverage
40 40
41 41
42 # 42 #
@@ -56,7 +56,7 @@ mkdir -p $CALDB @@ -56,7 +56,7 @@ mkdir -p $CALDB
56 # ================ 56 # ================
57 $ECHO -n "Test csobs2caldb: " 57 $ECHO -n "Test csobs2caldb: "
58 chmod +x @abs_top_srcdir@/cscripts/csobs2caldb.py 58 chmod +x @abs_top_srcdir@/cscripts/csobs2caldb.py
59 -@abs_top_srcdir@/cscripts/csobs2caldb.py \ 59 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csobs2caldb.py \
60 inobs="data/obs_unbinned.xml" \ 60 inobs="data/obs_unbinned.xml" \
61 rspname="test_irfs" \ 61 rspname="test_irfs" \
62 chatter=4 > csobs2caldb.log 62 chatter=4 > csobs2caldb.log
@@ -76,7 +76,7 @@ $ECHO " ok" @@ -76,7 +76,7 @@ $ECHO " ok"
76 # ============= 76 # =============
77 $ECHO -n "Test csobsdef: " 77 $ECHO -n "Test csobsdef: "
78 chmod +x @abs_top_srcdir@/cscripts/csobsdef.py 78 chmod +x @abs_top_srcdir@/cscripts/csobsdef.py
79 -@abs_top_srcdir@/cscripts/csobsdef.py \ 79 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csobsdef.py \
80 inpnt="data/pntdef.dat" \ 80 inpnt="data/pntdef.dat" \
81 outobs="obs.xml" \ 81 outobs="obs.xml" \
82 caldb="irf" \ 82 caldb="irf" \
@@ -101,7 +101,7 @@ $ECHO " ok" @@ -101,7 +101,7 @@ $ECHO " ok"
101 # ============== 101 # ==============
102 $ECHO -n "Test csobsinfo: " 102 $ECHO -n "Test csobsinfo: "
103 chmod +x @abs_top_srcdir@/cscripts/csobsinfo.py 103 chmod +x @abs_top_srcdir@/cscripts/csobsinfo.py
104 -@abs_top_srcdir@/cscripts/csobsinfo.py \ 104 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csobsinfo.py \
105 inobs="obs.xml" \ 105 inobs="obs.xml" \
106 ds9file="obs.reg" \ 106 ds9file="obs.reg" \
107 offset=yes \ 107 offset=yes \
@@ -123,7 +123,7 @@ $ECHO " ok" @@ -123,7 +123,7 @@ $ECHO " ok"
123 # ================ 123 # ================
124 $ECHO -n "Test csmodelinfo: " 124 $ECHO -n "Test csmodelinfo: "
125 chmod +x @abs_top_srcdir@/cscripts/csmodelinfo.py 125 chmod +x @abs_top_srcdir@/cscripts/csmodelinfo.py
126 -@abs_top_srcdir@/cscripts/csmodelinfo.py \ 126 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csmodelinfo.py \
127 inmodel="data/crab.xml" \ 127 inmodel="data/crab.xml" \
128 ds9file="model.reg" > csmodelinfo.log 128 ds9file="model.reg" > csmodelinfo.log
129 $ECHO -n "." 129 $ECHO -n "."
@@ -143,7 +143,7 @@ $ECHO " ok" @@ -143,7 +143,7 @@ $ECHO " ok"
143 $ECHO -n "Test csmodelmerge: " 143 $ECHO -n "Test csmodelmerge: "
144 # === space-separated === 144 # === space-separated ===
145 chmod +x @abs_top_srcdir@/cscripts/csmodelmerge.py 145 chmod +x @abs_top_srcdir@/cscripts/csmodelmerge.py
146 -@abs_top_srcdir@/cscripts/csmodelmerge.py \ 146 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csmodelmerge.py \
147 inmodels="data/crab.xml data/source1.xml" \ 147 inmodels="data/crab.xml data/source1.xml" \
148 outmodel="merged_models.xml" > csmodelmerge.log 148 outmodel="merged_models.xml" > csmodelmerge.log
149 $ECHO -n "." 149 $ECHO -n "."
@@ -155,7 +155,7 @@ else @@ -155,7 +155,7 @@ else
155 exit 1 155 exit 1
156 fi 156 fi
157 # === comma-separated === 157 # === comma-separated ===
158 -@abs_top_srcdir@/cscripts/csmodelmerge.py \ 158 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csmodelmerge.py \
159 inmodels="data/crab.xml,data/source1.xml" \ 159 inmodels="data/crab.xml,data/source1.xml" \
160 outmodel="merged_models2.xml" > csmodelmerge.log 160 outmodel="merged_models2.xml" > csmodelmerge.log
161 $ECHO -n "." 161 $ECHO -n "."
@@ -167,7 +167,7 @@ else @@ -167,7 +167,7 @@ else
167 exit 1 167 exit 1
168 fi 168 fi
169 # === wildcard string === 169 # === wildcard string ===
170 -@abs_top_srcdir@/cscripts/csmodelmerge.py \ 170 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csmodelmerge.py \
171 inmodels="data/model_cube_background*.xml" \ 171 inmodels="data/model_cube_background*.xml" \
172 outmodel="merged_models3.xml" > csmodelmerge.log 172 outmodel="merged_models3.xml" > csmodelmerge.log
173 $ECHO -n "." 173 $ECHO -n "."
@@ -180,7 +180,7 @@ else @@ -180,7 +180,7 @@ else
180 fi 180 fi
181 # === ascii-file === 181 # === ascii-file ===
182 ls data/model_cube_background* > models.txt 182 ls data/model_cube_background* > models.txt
183 -@abs_top_srcdir@/cscripts/csmodelmerge.py \ 183 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csmodelmerge.py \
184 inmodels="@models.txt" \ 184 inmodels="@models.txt" \
185 outmodel="merged_models4.xml" > csmodelmerge.log 185 outmodel="merged_models4.xml" > csmodelmerge.log
186 $ECHO -n "." 186 $ECHO -n "."
@@ -201,7 +201,7 @@ rm models.txt @@ -201,7 +201,7 @@ rm models.txt
201 $ECHO -n "Test cstsmapmerge: " 201 $ECHO -n "Test cstsmapmerge: "
202 # === comma-separated === 202 # === comma-separated ===
203 chmod +x @abs_top_srcdir@/cscripts/cstsmapmerge.py 203 chmod +x @abs_top_srcdir@/cscripts/cstsmapmerge.py
204 -@abs_top_srcdir@/cscripts/cstsmapmerge.py \ 204 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cstsmapmerge.py \
205 inmaps="data/tsmap_0.fits,data/tsmap_1.fits" \ 205 inmaps="data/tsmap_0.fits,data/tsmap_1.fits" \
206 outmap="merged_tsmap1.fits" > cstsmapmerge.log 206 outmap="merged_tsmap1.fits" > cstsmapmerge.log
207 $ECHO -n "." 207 $ECHO -n "."
@@ -213,7 +213,7 @@ else @@ -213,7 +213,7 @@ else
213 exit 1 213 exit 1
214 fi 214 fi
215 # === space-separated === 215 # === space-separated ===
216 -@abs_top_srcdir@/cscripts/cstsmapmerge.py \ 216 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cstsmapmerge.py \
217 inmaps="data/tsmap_0.fits data/tsmap_1.fits" \ 217 inmaps="data/tsmap_0.fits data/tsmap_1.fits" \
218 outmap="merged_tsmap2.fits" > cstsmapmerge.log 218 outmap="merged_tsmap2.fits" > cstsmapmerge.log
219 $ECHO -n "." 219 $ECHO -n "."
@@ -225,7 +225,7 @@ else @@ -225,7 +225,7 @@ else
225 exit 1 225 exit 1
226 fi 226 fi
227 # === wildcard string === 227 # === wildcard string ===
228 -@abs_top_srcdir@/cscripts/cstsmapmerge.py \ 228 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cstsmapmerge.py \
229 inmaps="data/tsmap_*.fits" \ 229 inmaps="data/tsmap_*.fits" \
230 outmap="merged_tsmap3.fits" > cstsmapmerge.log 230 outmap="merged_tsmap3.fits" > cstsmapmerge.log
231 $ECHO -n "." 231 $ECHO -n "."
@@ -238,7 +238,7 @@ else @@ -238,7 +238,7 @@ else
238 fi 238 fi
239 # === ascii-file === 239 # === ascii-file ===
240 ls data/tsmap_*.fits > tsmaps.txt 240 ls data/tsmap_*.fits > tsmaps.txt
241 -@abs_top_srcdir@/cscripts/cstsmapmerge.py \ 241 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cstsmapmerge.py \
242 inmaps="@tsmaps.txt" \ 242 inmaps="@tsmaps.txt" \
243 outmap="merged_tsmap4.fits" > cstsmapmerge.log 243 outmap="merged_tsmap4.fits" > cstsmapmerge.log
244 $ECHO -n "." 244 $ECHO -n "."
@@ -258,7 +258,7 @@ rm tsmaps.txt @@ -258,7 +258,7 @@ rm tsmaps.txt
258 # =========== 258 # ===========
259 $ECHO -n "Test cspull: " 259 $ECHO -n "Test cspull: "
260 chmod +x @abs_top_srcdir@/cscripts/cspull.py 260 chmod +x @abs_top_srcdir@/cscripts/cspull.py
261 -@abs_top_srcdir@/cscripts/cspull.py \ 261 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cspull.py \
262 inmodel="data/crab.xml" \ 262 inmodel="data/crab.xml" \
263 outfile="pull.dat" \ 263 outfile="pull.dat" \
264 ntrials="3" \ 264 ntrials="3" \
@@ -291,7 +291,7 @@ $ECHO " ok" @@ -291,7 +291,7 @@ $ECHO " ok"
291 # =========== 291 # ===========
292 $ECHO -n "Test cssens: " 292 $ECHO -n "Test cssens: "
293 chmod +x @abs_top_srcdir@/cscripts/cssens.py 293 chmod +x @abs_top_srcdir@/cscripts/cssens.py
294 -@abs_top_srcdir@/cscripts/cssens.py \ 294 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cssens.py \
295 inmodel="data/crab.xml" \ 295 inmodel="data/crab.xml" \
296 srcname="Crab" \ 296 srcname="Crab" \
297 caldb="irf" \ 297 caldb="irf" \
@@ -317,7 +317,7 @@ $ECHO " ok" @@ -317,7 +317,7 @@ $ECHO " ok"
317 # ============= 317 # =============
318 $ECHO -n "Test cstsdist: " 318 $ECHO -n "Test cstsdist: "
319 chmod +x @abs_top_srcdir@/cscripts/cstsdist.py 319 chmod +x @abs_top_srcdir@/cscripts/cstsdist.py
320 -@abs_top_srcdir@/cscripts/cstsdist.py \ 320 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cstsdist.py \
321 inmodel="data/crab.xml" \ 321 inmodel="data/crab.xml" \
322 srcname="Crab" \ 322 srcname="Crab" \
323 outfile="ts.dat" \ 323 outfile="ts.dat" \
@@ -349,7 +349,7 @@ $ECHO " ok" @@ -349,7 +349,7 @@ $ECHO " ok"
349 # ============= 349 # =============
350 $ECHO -n "Test csresmap: " 350 $ECHO -n "Test csresmap: "
351 chmod +x @abs_top_srcdir@/cscripts/csresmap.py 351 chmod +x @abs_top_srcdir@/cscripts/csresmap.py
352 -@abs_top_srcdir@/cscripts/csresmap.py \ 352 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csresmap.py \
353 inobs="data/crab_events.fits" \ 353 inobs="data/crab_events.fits" \
354 outmap="resmap.fits" \ 354 outmap="resmap.fits" \
355 inmodel="data/crab.xml" \ 355 inmodel="data/crab.xml" \
@@ -381,7 +381,7 @@ $ECHO " ok" @@ -381,7 +381,7 @@ $ECHO " ok"
381 $ECHO -n "Test csspec: " 381 $ECHO -n "Test csspec: "
382 # === Unbinned === 382 # === Unbinned ===
383 chmod +x @abs_top_srcdir@/cscripts/csspec.py 383 chmod +x @abs_top_srcdir@/cscripts/csspec.py
384 -@abs_top_srcdir@/cscripts/csspec.py \ 384 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csspec.py \
385 inobs="data/crab_events.fits" \ 385 inobs="data/crab_events.fits" \
386 inmodel="data/crab.xml" \ 386 inmodel="data/crab.xml" \
387 caldb="irf" \ 387 caldb="irf" \
@@ -401,7 +401,7 @@ else @@ -401,7 +401,7 @@ else
401 exit 1 401 exit 1
402 fi 402 fi
403 # === Binned === 403 # === Binned ===
404 -@abs_top_srcdir@/cscripts/csspec.py \ 404 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csspec.py \
405 inobs="data/crab_cntmap_small.fits.gz" \ 405 inobs="data/crab_cntmap_small.fits.gz" \
406 expcube="data/crab_expcube.fits.gz" \ 406 expcube="data/crab_expcube.fits.gz" \
407 psfcube="data/crab_psfcube.fits.gz" \ 407 psfcube="data/crab_psfcube.fits.gz" \
@@ -431,7 +431,7 @@ $ECHO " ok" @@ -431,7 +431,7 @@ $ECHO " ok"
431 $ECHO -n "Test cslightcrv: " 431 $ECHO -n "Test cslightcrv: "
432 # === unbinned === 432 # === unbinned ===
433 chmod +x @abs_top_srcdir@/cscripts/cslightcrv.py 433 chmod +x @abs_top_srcdir@/cscripts/cslightcrv.py
434 -@abs_top_srcdir@/cscripts/cslightcrv.py \ 434 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cslightcrv.py \
435 inobs="data/crab_events.fits" \ 435 inobs="data/crab_events.fits" \
436 inmodel="data/crab.xml" \ 436 inmodel="data/crab.xml" \
437 srcname="Crab" \ 437 srcname="Crab" \
@@ -454,7 +454,7 @@ else @@ -454,7 +454,7 @@ else
454 exit 1 454 exit 1
455 fi 455 fi
456 # === binned === 456 # === binned ===
457 -@abs_top_srcdir@/cscripts/cslightcrv.py \ 457 +@PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/cslightcrv.py \
458 inobs="data/crab_events.fits" \ 458 inobs="data/crab_events.fits" \
459 inmodel="data/crab.xml" \ 459 inmodel="data/crab.xml" \
460 srcname="Crab" \ 460 srcname="Crab" \
@@ -494,7 +494,7 @@ if [ $python_version -ge 26 ]; then @@ -494,7 +494,7 @@ if [ $python_version -ge 26 ]; then
494 # ============== 494 # ==============
495 $ECHO -n "Test csfindobs: " 495 $ECHO -n "Test csfindobs: "
496 chmod +x @abs_top_srcdir@/cscripts/csfindobs.py 496 chmod +x @abs_top_srcdir@/cscripts/csfindobs.py
497 - @abs_top_srcdir@/cscripts/csfindobs.py \ 497 + @PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csfindobs.py \
498 datapath="iactdata/" \ 498 datapath="iactdata/" \
499 prodname="unit-test" \ 499 prodname="unit-test" \
500 ra="83.6331" \ 500 ra="83.6331" \
@@ -517,7 +517,7 @@ if [ $python_version -ge 26 ]; then @@ -517,7 +517,7 @@ if [ $python_version -ge 26 ]; then
517 # =============== 517 # ===============
518 $ECHO -n "Test csiactcopy: " 518 $ECHO -n "Test csiactcopy: "
519 chmod +x @abs_top_srcdir@/cscripts/csiactcopy.py 519 chmod +x @abs_top_srcdir@/cscripts/csiactcopy.py
520 - @abs_top_srcdir@/cscripts/csiactcopy.py \ 520 + @PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csiactcopy.py \
521 remote_master="iactdata/master.json" \ 521 remote_master="iactdata/master.json" \
522 outpath="iactdata_test" \ 522 outpath="iactdata_test" \
523 prodname="unit-test" > csiactcopy.log 523 prodname="unit-test" > csiactcopy.log
@@ -537,7 +537,7 @@ if [ $python_version -ge 26 ]; then @@ -537,7 +537,7 @@ if [ $python_version -ge 26 ]; then
537 # ============== 537 # ==============
538 $ECHO -n "Test csiactobs: " 538 $ECHO -n "Test csiactobs: "
539 chmod +x @abs_top_srcdir@/cscripts/csiactobs.py 539 chmod +x @abs_top_srcdir@/cscripts/csiactobs.py
540 - @abs_top_srcdir@/cscripts/csiactobs.py \ 540 + @PYTHON_COVERAGE@@abs_top_srcdir@/cscripts/csiactobs.py \
541 datapath="iactdata/" \ 541 datapath="iactdata/" \
542 prodname="unit-test" \ 542 prodname="unit-test" \
543 infile="iactrunlist.dat" \ 543 infile="iactrunlist.dat" \
test/test_python.sh.in 0 → 100755
  1 +#! /bin/sh
  2 +# ==========================================================================
  3 +# This script tests the ctools Python module
  4 +#
  5 +# Copyright (C) 2016 Juergen Knoedlseder
  6 +#
  7 +# This program is free software: you can redistribute it and/or modify
  8 +# it under the terms of the GNU General Public License as published by
  9 +# the Free Software Foundation, either version 3 of the License, or
  10 +# (at your option) any later version.
  11 +#
  12 +# This program is distributed in the hope that it will be useful,
  13 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15 +# GNU General Public License for more details.
  16 +#
  17 +# You should have received a copy of the GNU General Public License
  18 +# along with this program. If not, see <http://www.gnu.org/licenses/>.
  19 +#
  20 +# ==========================================================================
  21 +
  22 +#
  23 +# Run the Python test
  24 +# ===================
  25 +@PYTHON_COVERAGE@./test_python.py