]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Amélioration de la génération et du lancement des tests par le GNUmakefile
authorEric F <eric.fayolle.77@gmail.com>
Wed, 23 Sep 2020 21:23:09 +0000 (23:23 +0200)
committerEric F <eric.fayolle.77@gmail.com>
Wed, 23 Sep 2020 21:23:09 +0000 (23:23 +0200)
Vimmp/GNUmakefile

index b7d1787e6f468918ebb614c24ed27371f66c83eb..71449ac5fbcd8f54e3c4d85fd9943a609cf36e33 100644 (file)
@@ -1,4 +1,5 @@
-.SUFFIXES: .xsd .py _driver.py .comm .xml
+.SUFFIXES: .xsd .py _driver.py _test_driver_0.comm _test_driver_1.comm _test_driver_0.xml _test_driver_1.xml _test_driver_0.py _test_driver_1.py .comm .xml 
+#TODO :Généraliser le suffixes pour les test_$i
 .PHONY: xsdAll driverAll
 SHELL=bash
 
@@ -40,7 +41,9 @@ $(eval $(call cata_dependencies,.xsd))
 
 cata_files= \
 cata_gromacs.py \
-cata_Vimmp.py
+cata_Vimmp.py \
+cata_CSAndCPS.py 
+#cata_cps.py 
 
 xsd_files   = $(cata_files:%.py=%.xsd)
 driver_files= $(cata_files:%.py=%_driver.py)
@@ -60,9 +63,51 @@ driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
        $(PYXB) -m $(basename $@) -u $^  --write-for-customization
        xmllint --path $(confdir) --schema XMLSchema11_local.xsd --noout $^
 
-#Les Tools ont besoins d'un chemin absolu
-.comm.xml:
-       $(tooldir)/generateXML.py -c $(realpath $(<:%.comm=%.py)) $<
+#Les Tools eficas ont besoins d'un chemin absolu
+# old
+#.comm.xml:
+#      $(tooldir)/generateXML.py -c $(realpath $(<:%.comm=%.py)) $<
+# new
+#_test_driver_0.comm_test_driver_0.xml:
+#      $(tooldir)/generateXML.py -c $(realpath $(*).py) $<
+#ok:
+#define test_driver_rule =
+#_test_driver_$1.comm_test_driver_$1.xml:
+#      $(tooldir)/generateXML.py -c $$(realpath $$(*).py) $$<
+#endef
+#ok mais a séparer en deux règles :
+#define test_driver_rule =
+#_test_driver_$1.comm_test_driver_$1.xml: $$(confdir)/test_driver_subst.py
+#      @echo -e "\n\n------ Generate xml test file $$(@) ------\n"
+#      $(tooldir)/generateXML.py -c $$(realpath $$(*).py) $$<
+#      @echo -e "\n\n------ Generate xml test driver $$(@:%.xml=%.py) ------\n"
+#      sed -e "s,@module@,$$(*)_driver,g" -e "s,@file@,$$(@),g" $$(confdir)/test_driver_subst.py > $$(<:%.comm=%.py) && \
+#        chmod +x $$(<:%.comm=%.py);
+#endef
+
+define test_xml_rule =
+_test_driver_$1.comm_test_driver_$1.xml:
+       @echo -e "\n\n------ Generate xml test file $$(@) ------\n"
+       $(tooldir)/generateXML.py -c $$(realpath $$(*).py) $$<
+endef
+
+#ATTENTION : De mémoire la .sufix rule n'utilise pas les dépendances après le :
+# il faut les définir à part
+define test_driver_rule =
+_test_driver_$1.comm_test_driver_$1.py: $$(confdir)/test_driver_subst.py
+       @echo -e "\n\n------ Generate xml test driver $$(@) ------\n"
+       sed -e "s,@module@,$$(*)_driver,g" -e "s,@file@,$$(<:%.comm=%.xml),g" $$(confdir)/test_driver_subst.py > $$(@) && \
+        chmod +x $$(<:%.comm=%.py);
+endef
+
+#Définition des règles de construction pour les tests
+#$(eval $(call test_driver_rule,0))
+#$(eval $(call test_driver_rule,1))
+$(foreach it,0 1 2 3 4 5 6 7 8 9, $(eval $(call test_xml_rule,$(it))) )
+$(foreach it,0 1 2 3 4 5 6 7 8 9, $(eval $(call test_driver_rule,$(it))) )
+
+test_driver_xml:= $(patsubst %.comm,%.xml,$(wildcard *_test_driver_?.comm))
+test_driver_py:= $(patsubst %.comm,%.py,$(wildcard *_test_driver_?.comm))
 
 # xml:
 #      @echo "Reminder: a .comm file is needed for this step" 
@@ -72,20 +117,28 @@ check test: testAll
 
 #################     REGLES DE TESTS     ########################
 
+#OLD, UNUSED :
 #Génération d'un .py de test par .xml de référence
-#TODO : Améliorer la génération pour ne pas regénérer inutilement les drivers, utilser plus les règles Makefiles...
+#TODO : Améliorer la génération pour ne pas regénérer inutilement les drivers, utiliser plus les règles Makefiles...
 #TODO : Gestion ds un build séparé du srcdir
 testGen: $(confdir)/test_driver_subst.py
        for i in `ls *_test_driver_?.comm`; \
        do \
+       echo -e "\n\n------ Generate test $${i/comm/py} ------\n" \
        $(tooldir)/generateXML.py -c $$PWD/$${i/_test_driver_?.comm/.py} $${i} && \
        sed -e "s,@module@,$${i/_test_driver_?.comm/}_driver,g" -e "s,@file@,$${i/.comm/.xml},g" $(confdir)/test_driver_subst.py > $${i/comm/py} && \
        chmod +x $${i/comm/py};\
        done
 
 #Lancement de chaque test ds l'environement minimal
-testAll: testGen exec.sh driverAll
-       for i in `ls *_test_driver*.py`  ; do ./exec.sh python $$i ; done
+#testAll: testGen exec.sh driverAll
+#      for i in `ls *_test_driver*.py`  ; do echo -e "\n\n------ Launching $$i ------" && ./exec.sh python $$i || break ; done
+#
+testAll: exec.sh driverAll $(test_driver_xml) $(test_driver_py)
+       echo $(test_driver_xml) 
+       echo $(test_driver_py)
+       for i in `ls *_test_driver*.py`  ; do echo -e "\n\n------ Launching $$i ------" && ./exec.sh python $$i ; done
+#      for i in `ls *_test_driver*.py`  ; do echo -e "\n\n------ Launching $$i ------" && ./exec.sh python $$i || break ; done
 
 #multiple target avec règle non possible.
 #Ecrire une génération avec un define