Skip to content

Commit

Permalink
update test
Browse files Browse the repository at this point in the history
  • Loading branch information
rask24 committed Jan 15, 2024
1 parent ae0a2d3 commit 345608a
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 20 deletions.
4 changes: 2 additions & 2 deletions include/push_swap.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
/* By: reasuke <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/10 12:37:54 by reasuke #+# #+# */
/* Updated: 2024/01/15 13:07:40 by reasuke ### ########.fr */
/* Updated: 2024/01/15 13:19:05 by reasuke ### ########.fr */
/* */
/* ************************************************************************** */

Expand All @@ -23,7 +23,7 @@

# include "../libft/libft.h"

void check_args(int argc, char **argv);
int check_args(int argc, char **argv);

t_list *generate_stack(int argc, char **argv);

Expand Down
5 changes: 3 additions & 2 deletions src/check_args.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
/* By: reasuke <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/11 14:44:55 by reasuke #+# #+# */
/* Updated: 2024/01/15 13:07:33 by reasuke ### ########.fr */
/* Updated: 2024/01/15 13:18:39 by reasuke ### ########.fr */
/* */
/* ************************************************************************** */

Expand Down Expand Up @@ -64,10 +64,11 @@ static bool _has_duplicate(int argc, char **argv)
return (false);
}

void check_args(int argc, char **argv)
int check_args(int argc, char **argv)
{
if (_has_not_digit(argc, argv)
|| _has_overflow(argc, argv)
|| _has_duplicate(argc, argv))
exit_with_error();
return (0);
}
32 changes: 16 additions & 16 deletions test/test_is_invalid_argument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<char **>(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<char **>(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<char **>(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<char **>(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<char **>(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<char **>(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<char **>(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<char **>(args);

EXPECT_TRUE(is_invalid_argument(argc, argv));
EXPECT_EXIT(check_args(argc, argv), ::testing::ExitedWithCode(1), "Error\n");
}

0 comments on commit 345608a

Please sign in to comment.