Ajout de nouveaux fichiers de test et suppression de fichiers obsolètes
This commit is contained in:
parent
ca42e51636
commit
f1f378d68d
tests
BakeTestRunner.java
C
bakefile.jar
test-01-from-nothing
test-02-already-exist
test-03-circular
test-04-edited
test-05-variables
test-06-variables-on-cascade
Java
bakefile.jar
test-01-from-nothing
test-02-already-exist
test-03-circular
test-04-edited
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,7 +0,0 @@
|
||||
all: test1 Devinette
|
||||
|
||||
test1: test1.java
|
||||
javac test1.java
|
||||
|
||||
Devinette: Devinette.java
|
||||
javac Devinette.java
|
@ -1,36 +0,0 @@
|
||||
import java.util.Scanner;
|
||||
import java.util.Random;
|
||||
|
||||
public class Devinette {
|
||||
public static void main(String[] args) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
Random random = new Random();
|
||||
int nombreMystere = random.nextInt(100) + 1; // Nombre entre 1 et 100
|
||||
int essais = 5;
|
||||
boolean gagne = false;
|
||||
|
||||
System.out.println("Bienvenue dans le jeu de devinette !");
|
||||
System.out.println("Essayez de deviner le nombre mystère entre 1 et 100. Vous avez " + essais + " tentatives.");
|
||||
|
||||
for (int i = 0; i < essais; i++) {
|
||||
System.out.print("Entrez votre tentative : ");
|
||||
int tentative = scanner.nextInt();
|
||||
|
||||
if (tentative == nombreMystere) {
|
||||
System.out.println("Bravo ! Vous avez trouvé le nombre mystère.");
|
||||
gagne = true;
|
||||
break;
|
||||
} else if (tentative < nombreMystere) {
|
||||
System.out.println("Trop bas ! Essayez encore.");
|
||||
} else {
|
||||
System.out.println("Trop haut ! Essayez encore.");
|
||||
}
|
||||
}
|
||||
|
||||
if (!gagne) {
|
||||
System.out.println("Dommage ! Le nombre mystère était : " + nombreMystere);
|
||||
}
|
||||
|
||||
scanner.close();
|
||||
}
|
||||
}
|
Binary file not shown.
@ -1,6 +0,0 @@
|
||||
public class test1 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Compilation à partir de rien !");
|
||||
}
|
||||
}
|
Binary file not shown.
@ -1,36 +0,0 @@
|
||||
import java.util.Scanner;
|
||||
import java.util.Random;
|
||||
|
||||
public class Devinette {
|
||||
public static void main(String[] args) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
Random random = new Random();
|
||||
int nombreMystere = random.nextInt(100) + 1; // Nombre entre 1 et 100
|
||||
int essais = 5;
|
||||
boolean gagne = false;
|
||||
|
||||
System.out.println("Bienvenue dans le jeu de devinette !");
|
||||
System.out.println("Essayez de deviner le nombre mystère entre 1 et 100. Vous avez " + essais + " tentatives.");
|
||||
|
||||
for (int i = 0; i < essais; i++) {
|
||||
System.out.print("Entrez votre tentative : ");
|
||||
int tentative = scanner.nextInt();
|
||||
|
||||
if (tentative == nombreMystere) {
|
||||
System.out.println("Bravo ! Vous avez trouvé le nombre mystère.");
|
||||
gagne = true;
|
||||
break;
|
||||
} else if (tentative < nombreMystere) {
|
||||
System.out.println("Trop bas ! Essayez encore.");
|
||||
} else {
|
||||
System.out.println("Trop haut ! Essayez encore.");
|
||||
}
|
||||
}
|
||||
|
||||
if (!gagne) {
|
||||
System.out.println("Dommage ! Le nombre mystère était : " + nombreMystere);
|
||||
}
|
||||
|
||||
scanner.close();
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
all: test1 Devinette
|
||||
|
||||
test1: test1.java
|
||||
javac test1.java
|
||||
|
||||
Devinette: Devinette.java
|
||||
javac Devinette.java
|
Binary file not shown.
@ -1,6 +0,0 @@
|
||||
public class test1 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Compilation à partir de rien !");
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
# Test 2 : Compilation où le résultat existe déjà
|
||||
|
||||
## Description
|
||||
Ce test vérifie que si l'exécutable `Main.class` est déjà présent et que `Main.java`
|
||||
n'a pas été modifié, alors `Bake` ne tente pas de recompiler.
|
||||
|
||||
## Fichiers utilisés
|
||||
- `Main.java` : Fichier source inchangé.
|
||||
- `Bakefile` : Contient les règles de compilation.
|
||||
- `Main.class` : Fichier compilé déjà généré.
|
||||
|
||||
## Étapes du test
|
||||
|
||||
1. **Première compilation**
|
||||
- Exécuter `bake` pour compiler le programme.
|
||||
- Vérifier que `Main.class` est bien créé.
|
||||
|
||||
2. **Vérification de l'absence de recompilation**
|
||||
- Exécuter `bake` une seconde fois **sans modifier** `Main.java`.
|
||||
- Aucun message indiquant la recompilation ne doit apparaître.
|
||||
|
||||
3. **Modification du fichier source**
|
||||
- Modifier `Main.java` en ajoutant une ligne de code.
|
||||
- Exécuter `bake` à nouveau.
|
||||
- Cette fois, `bake` doit détecter la modification et recompiler `Main.java`.
|
||||
|
||||
## Résultat attendu
|
||||
- Si `Main.class` existe et que `Main.java` n'a pas été modifié, **`Bake` ne doit pas recompiler.**
|
||||
- Si `Main.java` est modifié, `Bake` doit **uniquement** recompiler ce fichier.
|
||||
|
||||
✅ **Si `bake` évite de recompiler sans raison et ne recompile que lorsque c’est nécessaire, alors le test est réussi !** 🚀
|
@ -1,6 +0,0 @@
|
||||
# Bakefile
|
||||
|
||||
Main.class: Main.java
|
||||
javac Main.java
|
||||
|
||||
all: Main.class
|
@ -1,6 +0,0 @@
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Ceci est un programme de test du Bakefile !");
|
||||
System.out.println("test");
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Ceci est un programme de test du Bakefile !");
|
||||
System.out.println("test");
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
# Makefile
|
||||
|
||||
Main.class: Main.java
|
||||
javac Main.java
|
||||
|
||||
all: Main.class
|
@ -1,11 +0,0 @@
|
||||
main: ClasseA ClasseB ClasseC Main.java
|
||||
javac Main.java
|
||||
|
||||
ClasseA: ClasseB
|
||||
javac ClasseA.java
|
||||
|
||||
ClasseB: ClasseA
|
||||
javac ClasseB.java
|
||||
|
||||
ClasseC: ClasseB ClasseA
|
||||
javac ClasseC.java
|
@ -1,7 +0,0 @@
|
||||
public class ClasseA {
|
||||
private ClasseB b;
|
||||
|
||||
public ClasseA(ClasseB b) {
|
||||
this.b = b;
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
public class ClasseB {
|
||||
private ClasseA a;
|
||||
|
||||
public ClasseB(ClasseA a) {
|
||||
this.a = a;
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
public class ClasseC {
|
||||
private ClasseA a;
|
||||
private ClasseB b;
|
||||
|
||||
public ClasseC(ClasseA a, ClasseB b) {
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
public class Main {
|
||||
private ClasseA a;
|
||||
private ClasseB b;
|
||||
private ClasseC c;
|
||||
|
||||
public Main() {
|
||||
this.a = new ClasseA(b);
|
||||
this.b = new ClasseB(a);
|
||||
this.c = new ClasseC(a,b);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Main m = new Main();
|
||||
System.out.println("Ceci est un test de dépendences circulaires");
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,7 +0,0 @@
|
||||
public class ClasseA {
|
||||
private ClasseB b;
|
||||
|
||||
public ClasseA(ClasseB b) {
|
||||
this.b = b;
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
public class ClasseB {
|
||||
private ClasseA a;
|
||||
|
||||
public ClasseB(ClasseA a) {
|
||||
this.a = a;
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
public class ClasseC {
|
||||
private ClasseA a;
|
||||
private ClasseB b;
|
||||
|
||||
public ClasseC(ClasseA a, ClasseB b) {
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
public class Main {
|
||||
private ClasseA a;
|
||||
private ClasseB b;
|
||||
private ClasseC c;
|
||||
|
||||
public Main() {
|
||||
this.a = new ClasseA(b);
|
||||
this.b = new ClasseB(a);
|
||||
this.c = new ClasseC(a,b);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Main m = new Main();
|
||||
System.out.println("Ceci est un test de dépendences circulaires");
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
main: ClasseA ClasseB ClasseC Main.java
|
||||
javac Main.java
|
||||
|
||||
ClasseA: ClasseB
|
||||
javac ClasseA.java
|
||||
|
||||
ClasseB: ClasseA
|
||||
javac ClasseB.java
|
||||
|
||||
ClasseC: ClasseB ClasseA
|
||||
javac ClasseC.java
|
Binary file not shown.
@ -1,108 +0,0 @@
|
||||
# Test 4 : Compilation où le résultat existe déjà OU est modifier
|
||||
|
||||
## 📌 Description
|
||||
Ce test vérifie que si l’exécutable `Main.class` est déjà présent et que `Main.java`
|
||||
n'a pas été modifié, alors `bake` ne doit **pas recompiler** inutilement.
|
||||
|
||||
Cela permet d’optimiser la compilation en évitant de perdre du temps et des ressources
|
||||
à recompiler des fichiers inchangés, comme `make` en C.
|
||||
|
||||
---
|
||||
|
||||
## 📂 **Fichiers utilisés**
|
||||
- **`Main.java`** : Fichier source contenant le programme principal.
|
||||
- **`Bakefile`** : Contient les règles de compilation.
|
||||
- **`Main.class`** : Fichier compilé qui doit exister avant le test.
|
||||
|
||||
---
|
||||
|
||||
## ✅ **Résultat attendu**
|
||||
1️⃣ **Première exécution de `bake`**
|
||||
- Si `Main.class` **n’existe pas**, `bake` doit **compiler** `Main.java`.
|
||||
- **Commande exécutée :**
|
||||
```sh
|
||||
javac Main.java
|
||||
```
|
||||
- `Main.class` est généré.
|
||||
|
||||
2️⃣ **Seconde exécution de `bake` sans modification**
|
||||
- Si `Main.class` est **déjà à jour**, `bake` **ne doit rien faire**.
|
||||
- **Aucune commande `javac` ne doit être exécutée**.
|
||||
|
||||
3️⃣ **Modification de `Main.java` et recompilation**
|
||||
- Si `Main.java` est **modifié**, `bake` doit **détecter le changement** et
|
||||
recompiler uniquement `Main.java`.
|
||||
- **Commande exécutée :**
|
||||
```sh
|
||||
javac Main.java
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔬 **Procédure de test**
|
||||
### **1️⃣ Étape 1 : Compilation initiale**
|
||||
1. Supprimer `Main.class` s’il existe déjà :
|
||||
```sh
|
||||
rm -f Main.class
|
||||
```
|
||||
2. Exécuter `bake` :
|
||||
```sh
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||||
javac Main.java
|
||||
```
|
||||
3. **Attendu** :
|
||||
- `bake` doit exécuter `javac Main.java` et créer `Main.class`.
|
||||
|
||||
### **2️⃣ Étape 2 : Vérification sans modification**
|
||||
1. Exécuter `bake` une seconde fois :
|
||||
```sh
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||||
javac Main.java
|
||||
```
|
||||
2. **Attendu** :
|
||||
- **Aucune recompilation** ne doit avoir lieu.
|
||||
- `bake` **ne doit afficher aucun message de compilation**.
|
||||
|
||||
### **3️⃣ Étape 3 : Modifier `Main.java`**
|
||||
1. Modifier `Main.java`, par exemple en ajoutant une ligne :
|
||||
```java
|
||||
System.out.println("Nouvelle ligne ajoutée !");
|
||||
```
|
||||
2. Exécuter `bake` :
|
||||
```sh
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||||
javac Main.java
|
||||
```
|
||||
3. **Attendu** :
|
||||
- `bake` détecte la modification et exécute `javac Main.java`.
|
||||
- `Main.class` est mis à jour.
|
||||
|
||||
---
|
||||
|
||||
## 🛠 **Fichier `Bakefile` utilisé**
|
||||
```make
|
||||
# Bakefile
|
||||
|
||||
Main.class: Main.java
|
||||
javac Main.java
|
||||
|
||||
all: Main.class
|
||||
```
|
||||
➡ Ce `Bakefile` garantit que `bake` **ne recompile `Main.java` que si nécessaire**.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **Validation du test**
|
||||
| Situation | Comportement attendu |
|
||||
|-----------|----------------------|
|
||||
| **Première compilation (`bake`)** | `javac Main.java` est exécuté ✅ |
|
||||
| **Seconde exécution sans modification (`bake`)** | **Aucune recompilation** ✅ |
|
||||
| **Modification de `Main.java`** | `javac Main.java` est exécuté à nouveau ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 📌 **Conclusion**
|
||||
- Si `bake` **ne recompile pas sans raison** et ne recompile `Main.java` **que si modifié**, alors **le test est réussi !** ✅
|
||||
- Cela assure une **optimisation de la compilation** et empêche le gaspillage de ressources.
|
||||
|
||||
🚀 **Lance le test et vérifie que `bake` fonctionne correctement !**
|
@ -1,4 +0,0 @@
|
||||
Main.class: Main.java
|
||||
javac Main.java
|
||||
|
||||
all: Main.class
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user