IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Problème d'instrumentation avec jContractor


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut Problème d'instrumentation avec jContractor
    Bonjour !

    je suis un débutant en java et je souhaite utiliser JContractor (http://jcontractor.sourceforge.net/) et pas un autre mode de programation par contrat...

    j'ai créé un petit programme tout simple avec une classe instrumentée. les voici
    La class main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class main_with_problem 
    {
    	/**
             * @param args
             */
    	public static void main(String[] args) 
    	{
    		@SuppressWarnings("unused")
    		double result = 0;
    		Operations Op = new Operations();
     
    		result = Op.sqrt(-4.0);
     
    	}
    }
    la class "Operations" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Operations
    {
    	public double sqrt(double value)
    	{
    		return Math.sqrt(value);
    	}
    }
    les contrats de la classe "Operations"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public class Operations_CONTRACT extends Operations
    {
    	protected boolean _Invariant()
    	{
    		System.out.println("=== Invariant ===");
    		return true;
    	}
     
    	protected boolean sqrt_PostCondition (double value)
    	{
    		System.out.println("=== PostCondition ===");
    		return value > 0;
    	}
     
    	protected boolean sqrt_PreCondition (double value)
    	{
    		System.out.println("=== PreCondition ===");
    		return value > 0;
    	}
    }

    J'effectue ensuite les opérations suivantes (j'ai volontairement enlevé ici les classpath etc pour que se soit lisible):
    javac *.java
    java jInstrument Operations.class
    java main_with_problem

    j'obtiens le resultat suivant:

    Instrumenting Operations at 'all' level
    === Invariant ===
    === Invariant ===
    === Invariant ===
    Je constate donc que le check d'invariant est bien appellé, mais pas les preconditions et postconditions... Pourquoi ???

    Merci d'avance pour votre aide !!!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut
    personne n'utilise Jcontractor ?

Discussions similaires

  1. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo