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