diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-03-13 14:25:15 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-03-13 14:25:15 +0000 |
commit | 30cc264b7381cd1895ea8a3b709567e6eaf1113d (patch) | |
tree | 3683e4fe3647dbb5332b0d2988c0f3b07085194f | |
parent | f2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a (diff) | |
download | vhc-30cc264b7381cd1895ea8a3b709567e6eaf1113d.tar.gz vhc-30cc264b7381cd1895ea8a3b709567e6eaf1113d.tar.bz2 vhc-30cc264b7381cd1895ea8a3b709567e6eaf1113d.zip |
Creation d'un systeme de test automatise.
-rw-r--r-- | .cproject | 12 | ||||
-rw-r--r-- | Doxyfile | 2 | ||||
-rw-r--r-- | JOURNAL.txt | 5 | ||||
-rw-r--r-- | Makefile | 18 | ||||
-rw-r--r-- | src/main/Makefile | 6 | ||||
-rw-r--r-- | src/main/Particle.h | 28 | ||||
-rw-r--r-- | src/main/Vector3D.cc | 2 | ||||
-rw-r--r-- | src/main/Vector3D.h | 6 | ||||
-rw-r--r-- | src/main/vhc.cc | 2 | ||||
-rw-r--r-- | src/test/Makefile | 6 | ||||
-rw-r--r-- | src/test/Vector3DTest.cc | 2 | ||||
-rwxr-xr-x | testr.sh | 53 |
12 files changed, 117 insertions, 25 deletions
@@ -148,7 +148,6 @@ <buildTargets> <target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <buildCommand>make</buildCommand> - <buildArguments/> <buildTarget>all</buildTarget> <stopOnError>true</stopOnError> <useDefaultCommand>true</useDefaultCommand> @@ -156,7 +155,6 @@ </target> <target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <buildCommand>make</buildCommand> - <buildArguments/> <buildTarget>clean</buildTarget> <stopOnError>true</stopOnError> <useDefaultCommand>true</useDefaultCommand> @@ -164,7 +162,6 @@ </target> <target name="test-build" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <buildCommand>make</buildCommand> - <buildArguments/> <buildTarget>test-build</buildTarget> <stopOnError>true</stopOnError> <useDefaultCommand>true</useDefaultCommand> @@ -172,12 +169,19 @@ </target> <target name="build" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <buildCommand>make</buildCommand> - <buildArguments/> <buildTarget>build</buildTarget> <stopOnError>true</stopOnError> <useDefaultCommand>true</useDefaultCommand> <runAllBuilders>false</runAllBuilders> </target> + <target name="test" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> + <buildCommand>make</buildCommand> + <buildArguments/> + <buildTarget>test</buildTarget> + <stopOnError>true</stopOnError> + <useDefaultCommand>true</useDefaultCommand> + <runAllBuilders>false</runAllBuilders> + </target> </buildTargets> </storageModule> </cconfiguration> @@ -60,7 +60,7 @@ CREATE_SUBDIRS = NO # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. -OUTPUT_LANGUAGE = English +OUTPUT_LANGUAGE = French # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in diff --git a/JOURNAL.txt b/JOURNAL.txt index f79ea32..89395f3 100644 --- a/JOURNAL.txt +++ b/JOURNAL.txt @@ -2,4 +2,7 @@ [01/03/2011] Discussion sur la structure du projet, conventions de style de code, mise en place d'un serveur SVN: https://svn.epfl.ch/svn/virtual-hadron-collider/. [02/03/2011 jakob] Repondu a la premiere question. Amelioration de la classe `Vector3'. [08/03/2011] Installation de linux et configuration de l'environement de developpement sur le portable de Christian. -[08/03/2011] Traduction des commentaires en francais. Desormais, tout identificateur restera en anglais mais tous les commentaires seront ecris en francais.
\ No newline at end of file +[08/03/2011] Traduction des commentaires en francais. Desormais, tout identificateur restera en anglais mais tous les commentaires seront ecris en francais. +[10/03/2011 jakob] Definition de la classe particule. +[12/03/2011 jakob] Mise en place d'un systeme de makefiles recursifs. Le makefile principale appelle des makefiles dans les differents repertoires source. Voir document "structure.pdf" pour plus de detailles. +[13/03/2011 jakob] Creation d'un systeme de test automatise. Les fichiers test compiles sont executes par un script shell et leur valeur de retour. Ce script est aussi appele par make, via la command `make test'. @@ -2,9 +2,9 @@ # Makefile principale # #=======================================================================# # Les variables suivantes sont definis pour des makefiles plus bas. # -# BASEDIR repertoire de base du projet # -# SRCDIR repertoire contenant le code source # -# BINDIR repertoire ou sont places toutes objets compiles # +# BASEDIR repertoire de base du projet # +# SRCDIR repertoire contenant le code source # +# BINDIR repertoire ou sont places toutes objets compiles # ######################################################################### @@ -31,7 +31,7 @@ export BINDIR = $(BASEDIR)/bin .PHONY: all checkdirs build clean doc -all: checkdirs build test-build doc +all: checkdirs build test-build doc test # Compile les fichiers source principales build: checkdirs @@ -40,7 +40,7 @@ build: checkdirs @echo "Done building main sources." # Compile les tests -test-build: checkdirs build +test-build: build @echo "Building test sources..." make all -C $(SRCDIR)/test @echo "Done building test sources." @@ -59,4 +59,10 @@ $(BINDIR): @mkdir -p $@ clean: - @rm -rf $(BINDIR)
\ No newline at end of file + @rm -rf $(BINDIR) + +# Lance les tests +test: test-build + ./testr.sh $(BINDIR)/test + +
\ No newline at end of file diff --git a/src/main/Makefile b/src/main/Makefile index af9deab..20a44ec 100644 --- a/src/main/Makefile +++ b/src/main/Makefile @@ -2,9 +2,9 @@ # Makefile recursif # #=======================================================================# # Les variables suivantes sont definis dans un makefile plus haut. # -# BASEDIR repertoire de base du projet # -# SRCDIR repertoire contenant le code source # -# BINDIR repertoire ou sont places toutes objets compiles # +# BASEDIR repertoire de base du projet # +# SRCDIR repertoire contenant le code source # +# BINDIR repertoire ou sont places toutes objets compiles # ######################################################################### # Nom du repertoire contenant ce makefile diff --git a/src/main/Particle.h b/src/main/Particle.h index 128dbb1..cc15c93 100644 --- a/src/main/Particle.h +++ b/src/main/Particle.h @@ -16,10 +16,27 @@ class Particle { private: Vector3D position; + Vector3D force; + double mass; + double charge; public: -/* - Vector3D getPosition(); + + void applyForce(const Vector3D& f) {force = force + f;} + + Vector3D getPosition() const {return position;} + + void setPosition(const Vector3D& pos) {position = pos;} + + Vector3D getForce() const {return force;} + + double getMass() const {return mass;} + + double getCharge() const {return charge;} + + + /* + Vector3D getPosition() {return position;} Vector3D getVelocity(); @@ -29,7 +46,12 @@ public: Vector3D getMomentum(); */ - Particle(): position(0, 0, 0) {}; + Particle(const Vector3D& position0, double mass, double charge): + position(position0), + force(0, 0, 0), + mass(mass), + charge(charge) {}; + virtual ~Particle(); }; diff --git a/src/main/Vector3D.cc b/src/main/Vector3D.cc index 258922f..8acaa86 100644 --- a/src/main/Vector3D.cc +++ b/src/main/Vector3D.cc @@ -17,7 +17,7 @@ Vector3D const Vector3D::i = Vector3D(1.0, 0.0, 0.0); Vector3D const Vector3D::j = Vector3D(0.0, 1.0, 0.0); Vector3D const Vector3D::k = Vector3D(0.0, 0.0, 1.0); -ostream& operator<< (ostream& output, const Vector3D& v) { +std::ostream& operator<< (ostream& output, const Vector3D& v) { output << v.toString(); return output; } diff --git a/src/main/Vector3D.h b/src/main/Vector3D.h index 042463d..31094da 100644 --- a/src/main/Vector3D.h +++ b/src/main/Vector3D.h @@ -39,9 +39,9 @@ private: public: /** Cree une nouvelle instance de <code>Vector3D</code>. - * @param x 1e composante - * @param y 2e composante - * @param z 3e composante + * @param _x 1e composante + * @param _y 2e composante + * @param _z 3e composante */ Vector3D(double _x, double _y, double _z) : x(_x), y(_y), z(_z) {}; diff --git a/src/main/vhc.cc b/src/main/vhc.cc index 52d293c..6f95ca6 100644 --- a/src/main/vhc.cc +++ b/src/main/vhc.cc @@ -1,2 +1,4 @@ +//ce fichier ne contient que la documentation de l'espace de nom + /** Espace de nom contenant tout code relatif au projet `Virtual Hadron Collider'. */ namespace vhc {}; diff --git a/src/test/Makefile b/src/test/Makefile index e8a9340..9e217a6 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -2,9 +2,9 @@ # Makefile recursif # #=======================================================================# # Les variables suivantes sont definis dans un makefile plus haut. # -# BASEDIR repertoire de base du projet # -# SRCDIR repertoire contenant le code source # -# BINDIR repertoire ou sont places toutes objets compiles # +# BASEDIR repertoire de base du projet # +# SRCDIR repertoire contenant le code source # +# BINDIR repertoire ou sont places toutes objets compiles # #=======================================================================# # ==> indique des champs modifiables aisement # #=======================================================================# diff --git a/src/test/Vector3DTest.cc b/src/test/Vector3DTest.cc index bf4203a..e96f09b 100644 --- a/src/test/Vector3DTest.cc +++ b/src/test/Vector3DTest.cc @@ -33,6 +33,8 @@ int main() { //length test assert(Vector3D(0,3,4).getNorm() == 5); + //assert(false); + bool caught = false; try { ~Vector3D::Null; diff --git a/testr.sh b/testr.sh new file mode 100755 index 0000000..6ddbdc0 --- /dev/null +++ b/testr.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +# testr.sh +# by Jakob Odersky + +# Usage: testr.sh TESTDIR +# Runs all files in TESTDIR that match *Test +# A test is considered successful if it returns 0 upon execution. + +red='\033[0;31m' +green='\033[0;32m' +blue='\033[0;34m' +nc='\033[0m' # No Color + +#Test directory specified by first parameter +TESTDIR=$1 +cd $TESTDIR + +echo "[info] Analyzing directory." +TESTCOUNT=`ls -A ./*Test | wc -l` +echo "[info] Found $TESTCOUNT tests in $TESTDIR." +echo "[info] Running tests." +echo "" + +FAILED=0 + +for filename in ./*Test +do + + echo "[info] ${blue}== $filename ==${nc}" + $filename + OUT=$? + echo "[info] ${blue}== $filename ==${nc}" + + if [ $OUT -eq 0 ];then + echo "[info] $filename PASS" + else + echo "[${red}error${nc}] $filename FAIL" + FAILED=$(($FAILED + 1)) + fi + echo "" +done; + +echo "[info] Total: $TESTCOUNT, Failed: $FAILED, Passed: $(($TESTCOUNT - $FAILED))" + +if [ $FAILED -eq 0 ];then + echo "[${green}success${nc}] All tests PASSED." +else + echo "[${red}error${nc}] Some tests FAILED." +fi +tput sgr0 + + |