]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Mise à jour des Makefiles de test / Makefike Vimmp : Meilleur gestion des tests
authorEric F <eric.fayolle.77@gmail.com>
Mon, 23 Nov 2020 08:51:24 +0000 (09:51 +0100)
committerEric F <eric.fayolle.77@gmail.com>
Mon, 23 Nov 2020 08:51:24 +0000 (09:51 +0100)
Tests/MappingAccasXsd/Ambiguite/GNUmakefile
Tests/MappingAccasXsd/GNUmakefile
Tests/MappingAccasXsd/MultipleCata/GNUmakefile

index 36f646ef2b03223447e178019eff212b9cf7bb04..56707baff1e6c2c71dd952c3d6b2f773891223d8 100644 (file)
@@ -68,10 +68,8 @@ xsdAll: $(xsd_files)
 driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
 # qtEficasSlm.sh
 
-#driverAll: cata_blocs_En_Cascade_driver.py cata_Ambigu_1_Commun_genere.py cata_Ambigu_2_Commun_genere.py cataSimpMemeNomTypesDifferents_genere.py
 
-
-#$(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
+# Exemple PyxB : $(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
 # L'utilisation de $? ne fonctionne pas si l'on ne modifie qu'un seul catalogue car il liste uniquement les fichiers modifiés et pyxb détecte 
 # que l'autre fichier en dépend et qu'il n'a pas été regénéré en même temps: $^
 .py.xsd:
@@ -81,9 +79,36 @@ 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
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.xml: 
+#            il faut les définir à part
+define test_xml_rule =
+%_test_driver_$1.xml : %_test_driver_$1.comm $$(realpath $$(*).py)
+       @echo -e "\n\n------ Generate xml test file $$(@) ------\n"
+       @[[ -f $$(*).py ]] || (echo "Le fichier catalogue $$(*).py est introuvable" && false)
+       $(tooldir)/generateXML.py -c $$(realpath $$(*).py) $$<
+endef
+
+
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.py:
+#            il faut les définir à part
+define test_driver_rule =
+%_test_driver_$1.py : %_test_driver_$1.comm
+       @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" 
@@ -91,25 +116,15 @@ driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
 
 check test: testAll
 
-#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 : Gestion ds un build séparé du srcdir
-testGen: $(confdir)/test_driver_subst.py
-       for i in `ls *_test_driver_?.comm`; \
-       do \
-       $(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
-
-#multiple target avec règle non possible.
-#Ecrire une génération avec un define
-# $(wildcard *_test_driver_?.xml) : test_driver.py
-#      do sed -e "s,@module@,${@:%_test_driver=%_driver},g" -e 's,@file@,$@,g' test_driver.py > ${@:%.xml=%.py}; done
+#################     REGLES DE TESTS     ########################
+
+testAll: exec.sh driverAll $(test_driver_py) $(test_driver_xml)
+       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
+
+#################   REGLES DE NETTOYAGE   ########################
 
 clean:
        rm -f *.pyc *~ qtEficasSlm.sh exec.sh environ.sh
index 38a5e7b327d0847dd8181c65d6607371291db356..340aa09b3089723e6220e3c7871277b0c763f2e9 100644 (file)
@@ -18,7 +18,7 @@ tooldir=$(srcdir)/Tools
 # Règle en tête de Makefile
 all:  driverAll
 
-############# ENVIRONEMENT DE CONSTRUCTION VIMMP Traning ################
+######### ENVIRONEMENT DE CONSTRUCTION VIMMP Traning / Local ############
 
 ifeq ($(findstring vimmp,$dir($(realpath GNUmakefile))),vimmp)
 include $(confdir)/GNUmakefile.mdm
@@ -51,10 +51,8 @@ xsdAll: $(xsd_files)
 driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
 # qtEficasSlm.sh
 
-#driverAll: cata_blocs_En_Cascade_driver.py cata_Ambigu_1_Commun_genere.py cata_Ambigu_2_Commun_genere.py cataSimpMemeNomTypesDifferents_genere.py
 
-
-#$(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
+# Exemple PyxB : $(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
 # L'utilisation de $? ne fonctionne pas si l'on ne modifie qu'un seul catalogue car il liste uniquement les fichiers modifiés et pyxb détecte 
 # que l'autre fichier en dépend et qu'il n'a pas été regénéré en même temps: $^
 .py.xsd:
@@ -64,9 +62,36 @@ 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
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.xml: 
+#            il faut les définir à part
+define test_xml_rule =
+%_test_driver_$1.xml : %_test_driver_$1.comm $$(realpath $$(*).py)
+       @echo -e "\n\n------ Generate xml test file $$(@) ------\n"
+       @[[ -f $$(*).py ]] || (echo "Le fichier catalogue $$(*).py est introuvable" && false)
+       $(tooldir)/generateXML.py -c $$(realpath $$(*).py) $$<
+endef
+
+
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.py:
+#            il faut les définir à part
+define test_driver_rule =
+%_test_driver_$1.py : %_test_driver_$1.comm
+       @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" 
@@ -76,25 +101,11 @@ check test: testAll
 
 #################     REGLES DE TESTS     ########################
 
-#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 : Gestion ds un build séparé du srcdir
-testGen: $(confdir)/test_driver_subst.py
-       for i in `ls *_test_driver_?.comm`; \
-       do \
-       $(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 echo "------ Launching $$i ------" && ./exec.sh python $$i ; done
-
-#multiple target avec règle non possible.
-#Ecrire une génération avec un define
-# $(wildcard *_test_driver_?.xml) : test_driver.py
-#      do sed -e "s,@module@,${@:%_test_driver=%_driver},g" -e 's,@file@,$@,g' test_driver.py > ${@:%.xml=%.py}; done
+testAll: exec.sh driverAll $(test_driver_py) $(test_driver_xml)
+       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
 
 #################   REGLES DE NETTOYAGE   ########################
 
index e757db5d28d70fb6d3679d87f51a23af57e610eb..05ffcc5f3b4945cbaf7c8f659e990d0adc751801 100644 (file)
@@ -18,7 +18,7 @@ tooldir=$(srcdir)/Tools
 # Règle en tête de Makefile
 all:  driverAll
 
-############# ENVIRONEMENT DE CONSTRUCTION VIMMP Traning ################
+######### ENVIRONEMENT DE CONSTRUCTION VIMMP Traning / Local ############
 
 ifeq ($(findstring vimmp,$dir($(realpath GNUmakefile))),vimmp)
 include $(confdir)/GNUmakefile.mdm
@@ -60,10 +60,8 @@ xsdAll: $(xsd_files)
 driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
 # qtEficasSlm.sh
 
-#driverAll: cata_blocs_En_Cascade_driver.py cata_Ambigu_1_Commun_genere.py cata_Ambigu_2_Commun_genere.py cataSimpMemeNomTypesDifferents_genere.py
 
-
-#$(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
+# Exemple PyxB : $(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
 # L'utilisation de $? ne fonctionne pas si l'on ne modifie qu'un seul catalogue car il liste uniquement les fichiers modifiés et pyxb détecte 
 # que l'autre fichier en dépend et qu'il n'a pas été regénéré en même temps: $^
 .py.xsd:
@@ -73,9 +71,36 @@ 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
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.xml: 
+#            il faut les définir à part
+define test_xml_rule =
+%_test_driver_$1.xml : %_test_driver_$1.comm $$(realpath $$(*).py)
+       @echo -e "\n\n------ Generate xml test file $$(@) ------\n"
+       @[[ -f $$(*).py ]] || (echo "Le fichier catalogue $$(*).py est introuvable" && false)
+       $(tooldir)/generateXML.py -c $$(realpath $$(*).py) $$<
+endef
+
+
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.py:
+#            il faut les définir à part
+define test_driver_rule =
+%_test_driver_$1.py : %_test_driver_$1.comm
+       @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" 
@@ -83,25 +108,15 @@ driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
 
 check test: testAll
 
-#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 : Gestion ds un build séparé du srcdir
-testGen: $(confdir)/test_driver_subst.py
-       for i in `ls *_test_driver_?.comm`; \
-       do \
-       $(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
-
-#multiple target avec règle non possible.
-#Ecrire une génération avec un define
-# $(wildcard *_test_driver_?.xml) : test_driver.py
-#      do sed -e "s,@module@,${@:%_test_driver=%_driver},g" -e 's,@file@,$@,g' test_driver.py > ${@:%.xml=%.py}; done
+#################     REGLES DE TESTS     ########################
+
+testAll: exec.sh driverAll $(test_driver_py) $(test_driver_xml)
+       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
+
+#################   REGLES DE NETTOYAGE   ########################
 
 clean:
        rm -f *.pyc *~ qtEficasSlm.sh exec.sh environ.sh