Modification des tests (Création de répertoire make et bake)

This commit is contained in:
Moncef STITI 2025-02-06 18:54:15 +01:00
parent c28c877ce8
commit 2a6599c5ae
68 changed files with 225 additions and 0 deletions

@ -0,0 +1,12 @@
# Test 1 : Compilation depuis rien
## Description
Ce test vérifie que lorsque les fichiers objets et exécutables sont absents,
le programme Bake compile correctement le fichier source `main.c` en `main`.
## Fichiers utilisés
- `main.c` : Fichier source en C.
- `Bakefile` : Contient les règles de compilation.
## Résultat attendu
La compilation doit se faire.

@ -0,0 +1,15 @@
# Test 3 : Gestion des dépendances circulaires
## Description
Ce test vérifie que le système de compilation peut détecter et gérer correctement les dépendances circulaires. Il simule un projet où plusieurs fichiers `.c` et `.h` s'incluent mutuellement, créant ainsi une boucle dans les dépendances.
## Fichiers utilisés
- `a.c` : Implémente functionA qui appelle functionB.
- `b.c` : Implémente functionB qui appelle functionC.
- `c.c` : Implémente functionC et inclut a.h, créant une boucle indirecte.
- `a.h`, `b.h`, `c.h` : Fichiers d'en-tête correspondant.
- `Bakefile` : Contient les règles de compilation et les dépendances.
- `bakefile.jar` : Version compilée de notre système de build.
## Résultat attendu
Si le système de build détecte une dépendance circulaire, il doit la gérer automatiquement en évitant la boucle infinie et en compilant correctement les fichiers.

@ -0,0 +1,12 @@
#include <stdio.h>
#include "b.h"
void functionA(void) {
printf("Fonction A appelée\n");
functionB();
}
int main(void) {
functionA();
return 0;
}

@ -0,0 +1,6 @@
#ifndef A_H
#define A_H
void functionA(void);
#endif

@ -0,0 +1,7 @@
#include <stdio.h>
#include "c.h"
void functionB(void) {
printf("Fonction B appelée\n");
functionC();
}

@ -0,0 +1,6 @@
#ifndef B_H
#define B_H
void functionB(void);
#endif

@ -0,0 +1,8 @@
#include <stdio.h>
#include <stdlib.h>
#include "a.h"
void functionC(void) {
printf("Fonction C appelée\n");
return;
}

@ -0,0 +1,6 @@
#ifndef C_H
#define C_H
void functionC(void);
#endif

@ -0,0 +1,13 @@
# Test 2 : Compilation où le résultat existe déjà
## Description
Ce test vérifie que si l'exécutable `main` est déjà présent et que `main.c`
n'a pas été modifié, alors `Bake` ne tente pas de recompiler.
## Fichiers utilisés
- `main.c` : Fichier source inchangé.
- `Bakefile` : Contient les règles de compilation.
- `main` : Exécutable déjà généré.
## Résultat attendu
Aucun message indiquant la compilation ne doit apparaître.

BIN
tests/C/test-04-edited/bake/main Executable file

Binary file not shown.

@ -0,0 +1,7 @@
#include <stdio.h>
int main(void) {
printf("Ceci est un programme de test du Bakefile !\n");
printf("test\n");
return 0;
}

@ -0,0 +1,13 @@
# Test 2 : Compilation où le résultat existe déjà
## Description
Ce test vérifie que si l'exécutable `main` est déjà présent et que `main.c`
n'a pas été modifié, alors `Bake` ne tente pas de recompiler.
## Fichiers utilisés
- `main.c` : Fichier source inchangé.
- `Bakefile` : Contient les règles de compilation.
- `main` : Exécutable déjà généré.
## Résultat attendu
Aucun message indiquant la compilation ne doit apparaître.

BIN
tests/C/test-04-edited/make/main Executable file

Binary file not shown.

@ -0,0 +1,7 @@
#include <stdio.h>
int main(void) {
printf("Ceci est un programme de test du Bakefile !\n");
printf("test\n");
return 0;
}

@ -0,0 +1 @@
# Test 5 : Utilisation de variables

@ -0,0 +1,6 @@
#include <stdio.h>
int main(void) {
printf("Ceci est un programme de test du Bakefile !\n");
return 0;
}

@ -0,0 +1,6 @@
#include <stdio.h>
int main(void) {
printf("Ceci est un programme de test du Bakefile !\n");
return 0;
}

@ -0,0 +1,6 @@
FLAGS = -ansi -pedantic
FLAGSS = $(FLAGS)
FLAGSSS = $(FLAGSS)
main: main.c
gcc $(FLAGSSS) -o main main.c

@ -0,0 +1,6 @@
FLAGS = -ansi -pedantic
FLAGSS = $(FLAGS)
FLAGSSS = $(FLAGSS)
main: main.c
gcc $(FLAGSSS) -o main main.c

Some files were not shown because too many files have changed in this diff Show More