Ajout de nouveaux fichiers de test et suppression de fichiers obsolètes

This commit is contained in:
Moncef STITI 2025-03-07 21:53:09 +01:00
parent ca42e51636
commit f1f378d68d
202 changed files with 0 additions and 1163 deletions

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.

@ -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();
}
}

@ -1,6 +0,0 @@
public class test1 {
public static void main(String[] args) {
System.out.println("Compilation à partir de rien !");
}
}

@ -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

@ -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 cest 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.

@ -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

@ -1,108 +0,0 @@
# Test 4 : Compilation où le résultat existe déjà OU est modifier
## 📌 Description
Ce test vérifie que si lexé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 doptimiser 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` **nexiste 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` sil 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