summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-03-13 14:25:15 +0000
committerJakob Odersky <jodersky@gmail.com>2011-03-13 14:25:15 +0000
commit30cc264b7381cd1895ea8a3b709567e6eaf1113d (patch)
tree3683e4fe3647dbb5332b0d2988c0f3b07085194f
parentf2163b32810d75bb4ea3e3f7c91ccdf2c6ada61a (diff)
downloadvhc-30cc264b7381cd1895ea8a3b709567e6eaf1113d.tar.gz
vhc-30cc264b7381cd1895ea8a3b709567e6eaf1113d.tar.bz2
vhc-30cc264b7381cd1895ea8a3b709567e6eaf1113d.zip
Creation d'un systeme de test automatise.
-rw-r--r--.cproject12
-rw-r--r--Doxyfile2
-rw-r--r--JOURNAL.txt5
-rw-r--r--Makefile18
-rw-r--r--src/main/Makefile6
-rw-r--r--src/main/Particle.h28
-rw-r--r--src/main/Vector3D.cc2
-rw-r--r--src/main/Vector3D.h6
-rw-r--r--src/main/vhc.cc2
-rw-r--r--src/test/Makefile6
-rw-r--r--src/test/Vector3DTest.cc2
-rwxr-xr-xtestr.sh53
12 files changed, 117 insertions, 25 deletions
diff --git a/.cproject b/.cproject
index c036af7..b1944f8 100644
--- a/.cproject
+++ b/.cproject
@@ -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>
diff --git a/Doxyfile b/Doxyfile
index f8472e5..e62aaba 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -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'.
diff --git a/Makefile b/Makefile
index 4cc5c84..a8b5021 100644
--- a/Makefile
+++ b/Makefile
@@ -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
+
+