From 55d21196b8d96f73cc05be4aa3d061a0c44e39d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Tue, 18 Mar 2025 12:00:30 +0100 Subject: [PATCH] cmdgroup: start implementing debug routines --- spec/minishell_spec.sh | 11 ------ src/minishell.c | 17 ++++++-- src/parser/cmdgroup/cmdgroup.c | 11 ++++-- src/parser/cmdgroup/cmdgroup.h | 3 +- tests/Makefile | 1 - tests/test_cmdgroup_parsing.c | 71 ---------------------------------- 6 files changed, 22 insertions(+), 92 deletions(-) delete mode 100644 tests/test_cmdgroup_parsing.c diff --git a/spec/minishell_spec.sh b/spec/minishell_spec.sh index 27e4b48..e69de29 100644 --- a/spec/minishell_spec.sh +++ b/spec/minishell_spec.sh @@ -1,11 +0,0 @@ -It "echos output" - Data - #|hello - #|there - End - - When call ./minishell - The output line 1 should eq "hello" - The output line 2 should eq "there" - The output line 3 should be undefined -End diff --git a/src/minishell.c b/src/minishell.c index 1c4f386..7477805 100644 --- a/src/minishell.c +++ b/src/minishell.c @@ -6,16 +6,21 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/06 13:44:06 by kcolin #+# #+# */ -/* Updated: 2025/02/20 15:00:46 by khais ### ########.fr */ +/* Updated: 2025/03/18 12:00:23 by khais ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" #include "get_command.h" +#include "parser/cmdgroup/cmdgroup.h" +#include "parser/wordlist/wordlist.h" +#include "parser/wordsplit/wordsplit.h" +#include int main(int argc, char *argv[], char **envp) { - char *line; + char *line; + t_cmdgroup *cmd; + t_wordlist *words; (void)argc; (void)argv; @@ -23,8 +28,12 @@ int main(int argc, char *argv[], char **envp) line = get_command(); while (line != NULL) { - ft_printf("%s\n", line); + words = minishell_wordsplit(line); free(line); + cmd = cmdgroup_from_wordlist(words); + wordlist_destroy(words); + cmdgroup_debug(cmd); + cmdgroup_destroy(cmd); line = get_command(); } return (0); diff --git a/src/parser/cmdgroup/cmdgroup.c b/src/parser/cmdgroup/cmdgroup.c index 8ff2548..6dca923 100644 --- a/src/parser/cmdgroup/cmdgroup.c +++ b/src/parser/cmdgroup/cmdgroup.c @@ -6,14 +6,12 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/03/11 15:18:02 by khais #+# #+# */ -/* Updated: 2025/03/18 11:48:33 by khais ### ########.fr */ +/* Updated: 2025/03/18 12:08:36 by khais ### ########.fr */ /* */ /* ************************************************************************** */ #include "cmdgroup.h" #include -#include "cmdgroup_item.h" -#include "cmdgroup_item_type.h" #include "libft.h" t_cmdgroup *cmdgroup_from_wordlist(t_wordlist *words) @@ -30,5 +28,10 @@ t_cmdgroup *cmdgroup_from_wordlist(t_wordlist *words) void cmdgroup_destroy(t_cmdgroup *cmd) { - (void)cmd; + free(cmd); +} + +void cmdgroup_debug(t_cmdgroup *cmd) +{ + ft_printf("%p\n", cmd); } diff --git a/src/parser/cmdgroup/cmdgroup.h b/src/parser/cmdgroup/cmdgroup.h index 05fd216..8ed499e 100644 --- a/src/parser/cmdgroup/cmdgroup.h +++ b/src/parser/cmdgroup/cmdgroup.h @@ -6,7 +6,7 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/03/11 15:11:57 by khais #+# #+# */ -/* Updated: 2025/03/18 12:07:29 by khais ### ########.fr */ +/* Updated: 2025/03/18 12:07:47 by khais ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,5 +35,6 @@ typedef struct s_cmdgroup t_cmdgroup *cmdgroup_from_wordlist(t_wordlist *words); void cmdgroup_destroy(t_cmdgroup *cmd); +void cmdgroup_debug(t_cmdgroup *cmd); #endif // CMDGROUP_H diff --git a/tests/Makefile b/tests/Makefile index 259c7fe..aab4b01 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -2,7 +2,6 @@ # file are prefixed with test_ rawtests = \ expansion \ - test_cmdgroup_parsing \ test_here_doc \ test_wordlist_idx \ test_redirection_parsing \ diff --git a/tests/test_cmdgroup_parsing.c b/tests/test_cmdgroup_parsing.c deleted file mode 100644 index 403e9c1..0000000 --- a/tests/test_cmdgroup_parsing.c +++ /dev/null @@ -1,71 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* test_cmdgroup_parsing.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: khais +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2025/03/18 11:49/19 by khais #+# #+# */ -/* Updated: 2025/03/18 11:49:19 by khais ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "testutil.h" -#include -#include "libft.h" -#include "../src/parser/cmdgroup/cmdgroup.h" -#include "../src/parser/cmdgroup/cmdgroup_item.h" - -static void test_cmdgroup_parsing_empty(void) -{ - t_cmdgroup *cmd; - - // arange - ft_dprintf(STDERR_FILENO, "==> %s <==\n", __FUNCTION__); - cmd = parse_cmdgroup(""); - // assert - assert(NULL == cmd); - // cleanup - cmdgroup_destroy(cmd); - do_leak_check(); -} - -static void test_cmdgroup_parsing_single_cmdlist(void) -{ - t_cmdgroup *cmd; - - // arange - ft_dprintf(STDERR_FILENO, "==> %s <==\n", __FUNCTION__); - cmd = parse_cmdgroup("echo this | cat -e && echo works | wc -c"); - // assert - assert(NULL != cmd); - // TODO - // cleanup - cmdgroup_destroy(cmd); - do_leak_check(); -} - -static void test_cmdgroup_parsing_two_cmdlist(void) -{ - t_cmdgroup *cmd; - - // arange - ft_dprintf(STDERR_FILENO, "==> %s <==\n", __FUNCTION__); - cmd = parse_cmdgroup("echo this | cat -e && echo works | wc -c"); - // assert - // TODO - assert(NULL != cmd); - assert_cmdgroup_itemlistequal("echo this | cat -e && echo works | wc -c", cmd, 0); - // cleanup - cmdgroup_destroy(cmd); - do_leak_check(); -} - -int main(void) -{ - test_cmdgroup_parsing_empty(); - test_cmdgroup_parsing_single_cmdlist(); - test_cmdgroup_parsing_two_cmdlist(); - // redirections - return (0); -}