diff --git a/Makefile b/Makefile index a3c23d7..8bd368c 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ BUILD_DIR = ./build INC_DIR = ./include LIBFT_DIR = ./libft SRC = $(SRC_DIR)/main.c \ - $(SRC_DIR)/is_invalid_argument.c \ + $(SRC_DIR)/check_args.c \ $(SRC_DIR)/generate_stack.c \ $(SRC_DIR)/nano_sort.c \ $(SRC_DIR)/utils/exit_with_error.c diff --git a/include/push_swap.h b/include/push_swap.h index 386467b..3a2f4c8 100644 --- a/include/push_swap.h +++ b/include/push_swap.h @@ -6,7 +6,7 @@ /* By: reasuke +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/10 12:37:54 by reasuke #+# #+# */ -/* Updated: 2024/01/12 16:02:39 by reasuke ### ########.fr */ +/* Updated: 2024/01/15 13:19:05 by reasuke ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,7 +23,7 @@ # include "../libft/libft.h" -bool is_invalid_argument(int argc, char **argv); +int check_args(int argc, char **argv); t_list *generate_stack(int argc, char **argv); diff --git a/src/is_invalid_argument.c b/src/check_args.c similarity index 85% rename from src/is_invalid_argument.c rename to src/check_args.c index 2f54836..75f6abf 100644 --- a/src/is_invalid_argument.c +++ b/src/check_args.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* is_invalid_argument.c :+: :+: :+: */ +/* check_args.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: reasuke +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/11 14:44:55 by reasuke #+# #+# */ -/* Updated: 2024/01/11 18:16:19 by reasuke ### ########.fr */ +/* Updated: 2024/01/15 13:18:39 by reasuke ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,9 +64,11 @@ static bool _has_duplicate(int argc, char **argv) return (false); } -bool is_invalid_argument(int argc, char **argv) +int check_args(int argc, char **argv) { - return (_has_not_digit(argc, argv) + if (_has_not_digit(argc, argv) || _has_overflow(argc, argv) - || _has_duplicate(argc, argv)); + || _has_duplicate(argc, argv)) + exit_with_error(); + return (0); } diff --git a/src/main.c b/src/main.c index fab2d41..6d5c0cc 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: reasuke +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/10 12:37:36 by reasuke #+# #+# */ -/* Updated: 2024/01/15 12:04:04 by reasuke ### ########.fr */ +/* Updated: 2024/01/15 13:04:27 by reasuke ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,10 +35,7 @@ int main(int argc, char **argv) { t_list *stack_a; - if (argc < 2) - return (0); - if (is_invalid_argument(argc, argv)) - exit_with_error(); + check_args(argc, argv); stack_a = generate_stack(argc, argv); if (argc < 5) nano_sort(stack_a, argc); diff --git a/test/test_is_invalid_argument.cpp b/test/test_is_invalid_argument.cpp index 6364569..f3e3066 100644 --- a/test/test_is_invalid_argument.cpp +++ b/test/test_is_invalid_argument.cpp @@ -6,66 +6,66 @@ extern "C" { #include "push_swap.h" } -TEST(is_invalid_argument, OneArgumentValid) { +TEST(check_args, OneArgumentValid) { int argc = 2; const char *args[] = { "push_swap", "1" }; char **argv = const_cast(args); - EXPECT_FALSE(is_invalid_argument(argc, argv)); + EXPECT_EQ(check_args(argc, argv), 0); } -TEST(is_invalid_argument, ArgumentIsZero) { +TEST(check_args, ArgumentIsZero) { int argc = 2; const char *args[] = { "push_swap", "0" }; char **argv = const_cast(args); - EXPECT_FALSE(is_invalid_argument(argc, argv)); + EXPECT_EQ(check_args(argc, argv), 0); } -TEST(is_invalid_argument, ArgumentIsNegative) { +TEST(check_args, ArgumentIsNegative) { int argc = 2; const char *args[] = { "push_swap", "-42" }; char **argv = const_cast(args); - EXPECT_FALSE(is_invalid_argument(argc, argv)); + EXPECT_EQ(check_args(argc, argv), 0); } -TEST(is_invalid_argument, OneArgumentNonDigit) { +TEST(check_args, OneArgumentNonDigit) { int argc = 2; const char *args[] = { "push_swap", "abc" }; char **argv = const_cast(args); - EXPECT_TRUE(is_invalid_argument(argc, argv)); + EXPECT_EXIT(check_args(argc, argv), ::testing::ExitedWithCode(1), "Error\n"); } -TEST(is_invalid_argument, OneArgumentIncludingNonDigit) { +TEST(check_args, OneArgumentIncludingNonDigit) { int argc = 2; const char *args[] = { "push_swap", "42abc" }; char **argv = const_cast(args); - EXPECT_TRUE(is_invalid_argument(argc, argv)); + EXPECT_EXIT(check_args(argc, argv), ::testing::ExitedWithCode(1), "Error\n"); } -TEST(is_invalid_argument, OneArgumentMaxOverflow) { +TEST(check_args, OneArgumentMaxOverflow) { int argc = 2; const char *args[] = { "push_swap", "2147483648" }; // INT_MAX + 1 char **argv = const_cast(args); - EXPECT_TRUE(is_invalid_argument(argc, argv)); + EXPECT_EXIT(check_args(argc, argv), ::testing::ExitedWithCode(1), "Error\n"); } -TEST(is_invalid_argument, OneArgumentMinOverflow) { +TEST(check_args, OneArgumentMinOverflow) { int argc = 2; const char *args[] = { "push_swap", "-2147483649" }; // INT_MIN - 1 char **argv = const_cast(args); - EXPECT_TRUE(is_invalid_argument(argc, argv)); + EXPECT_EXIT(check_args(argc, argv), ::testing::ExitedWithCode(1), "Error\n"); } -TEST(is_invalid_argument, MultipleArgumentsWithDuplicate) { +TEST(check_args, MultipleArgumentsWithDuplicate) { int argc = 5; const char *args[] = { "push_swap", "1", "3", "5", "1" }; // Duplicate '1' char **argv = const_cast(args); - EXPECT_TRUE(is_invalid_argument(argc, argv)); + EXPECT_EXIT(check_args(argc, argv), ::testing::ExitedWithCode(1), "Error\n"); }