From 623f737ccceb245dc827985b206a4ce980680d07 Mon Sep 17 00:00:00 2001 From: Louay DARDOURI <louay.dardouri@etu.u-pec.fr> Date: Sun, 9 Feb 2025 17:16:48 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20l'h=C3=A9ritage=20des=20entr=C3=A9?= =?UTF-8?q?es/sorties=20dans=20CommandExecutor=20+=20Ajout=20du=20test=201?= =?UTF-8?q?1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monlouyan/bakefile/CommandExecutor.java | 24 +------------------ tests/C/test-11-error-in-code/README.md | 1 + tests/C/test-11-error-in-code/bake/Bakefile | 7 ++++++ tests/C/test-11-error-in-code/bake/main.c | 15 ++++++++++++ tests/C/test-11-error-in-code/make/Makefile | 7 ++++++ tests/C/test-11-error-in-code/make/main.c | 15 ++++++++++++ 6 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 tests/C/test-11-error-in-code/README.md create mode 100644 tests/C/test-11-error-in-code/bake/Bakefile create mode 100644 tests/C/test-11-error-in-code/bake/main.c create mode 100644 tests/C/test-11-error-in-code/make/Makefile create mode 100644 tests/C/test-11-error-in-code/make/main.c diff --git a/src/fr/monlouyan/bakefile/CommandExecutor.java b/src/fr/monlouyan/bakefile/CommandExecutor.java index 852693e..065ea24 100644 --- a/src/fr/monlouyan/bakefile/CommandExecutor.java +++ b/src/fr/monlouyan/bakefile/CommandExecutor.java @@ -37,31 +37,9 @@ public class CommandExecutor { } if (debug) System.out.println("Debug: Executing " + command); ProcessBuilder pb = new ProcessBuilder("sh", "-c", command); + pb.inheritIO(); Process process = pb.start(); - // Lire et afficher la sortie standard (stdout) - new Thread(() -> { - try (var reader = new java.io.BufferedReader(new java.io.InputStreamReader(process.getInputStream()))) { - String line; - while ((line = reader.readLine()) != null) { - System.out.println(line); - } - } catch (IOException e) { - e.printStackTrace(); - } - }).start(); - - // Lire et afficher la sortie d'erreur (stderr) - new Thread(() -> { - try (var reader = new java.io.BufferedReader(new java.io.InputStreamReader(process.getErrorStream()))) { - String line; - while ((line = reader.readLine()) != null) { - System.err.println(line); - } - } catch (IOException e) { - e.printStackTrace(); - } - }).start(); // Attendre la fin du processus int exitCode = process.waitFor(); diff --git a/tests/C/test-11-error-in-code/README.md b/tests/C/test-11-error-in-code/README.md new file mode 100644 index 0000000..306987e --- /dev/null +++ b/tests/C/test-11-error-in-code/README.md @@ -0,0 +1 @@ +Quand il y a une erreur dans le code, ça affiche l'erreur + stop le programme exactement comme make. \ No newline at end of file diff --git a/tests/C/test-11-error-in-code/bake/Bakefile b/tests/C/test-11-error-in-code/bake/Bakefile new file mode 100644 index 0000000..9dab9f6 --- /dev/null +++ b/tests/C/test-11-error-in-code/bake/Bakefile @@ -0,0 +1,7 @@ +all: main + +main: main.c + gcc -o main main.c + +clean: + rm -f main diff --git a/tests/C/test-11-error-in-code/bake/main.c b/tests/C/test-11-error-in-code/bake/main.c new file mode 100644 index 0000000..a2c1c2f --- /dev/null +++ b/tests/C/test-11-error-in-code/bake/main.c @@ -0,0 +1,15 @@ +#include <stdlib.h> +#include <stdio.h> + +int main(void){ + printf("Normalement, ce code ne fonctionne par car j'ai été stupide...\n"); + + // La fonction qui suit n'existe pas donc le programme ne peut pas compiler et renvoie une erreur. + fonctionQuiNexistePas(); + + // La division par zéro est impossible, le programme renvoie un warning. + int a = 15; + a = a/0; + + return 0; +} \ No newline at end of file diff --git a/tests/C/test-11-error-in-code/make/Makefile b/tests/C/test-11-error-in-code/make/Makefile new file mode 100644 index 0000000..9dab9f6 --- /dev/null +++ b/tests/C/test-11-error-in-code/make/Makefile @@ -0,0 +1,7 @@ +all: main + +main: main.c + gcc -o main main.c + +clean: + rm -f main diff --git a/tests/C/test-11-error-in-code/make/main.c b/tests/C/test-11-error-in-code/make/main.c new file mode 100644 index 0000000..a2c1c2f --- /dev/null +++ b/tests/C/test-11-error-in-code/make/main.c @@ -0,0 +1,15 @@ +#include <stdlib.h> +#include <stdio.h> + +int main(void){ + printf("Normalement, ce code ne fonctionne par car j'ai été stupide...\n"); + + // La fonction qui suit n'existe pas donc le programme ne peut pas compiler et renvoie une erreur. + fonctionQuiNexistePas(); + + // La division par zéro est impossible, le programme renvoie un warning. + int a = 15; + a = a/0; + + return 0; +} \ No newline at end of file