Skip to content
Snippets Groups Projects
Commit 03b8c017 authored by Jaewon Choi's avatar Jaewon Choi
Browse files

Add command validating test

parent ea92bf63
No related branches found
No related tags found
No related merge requests found
...@@ -12,9 +12,9 @@ mysh: $(OBJ) ...@@ -12,9 +12,9 @@ mysh: $(OBJ)
# For testing # For testing
CXX=g++ -std=c++11 CXX=g++ -std=c++11
TESTING_FLAGS=-I./tests/src -I./tests/include $(CFLAGS) TESTING_FLAGS=-I./tests/src -I./tests/include $(CFLAGS) -Wno-write-strings
TESTING_LIB=-lgtest -lgtest_main -L./tests/lib -lpthread $(LIB) TESTING_LIB=-lgtest -lgtest_main -L./tests/lib -lpthread $(LIB)
TESTING_SRC=./tests/src/command_parsing_test.cc TESTING_SRC=./tests/src/command_parsing_test.cc ./tests/src/command_validate_test.cc
TESTING_EXE=mysh-test TESTING_EXE=mysh-test
test: $(OBJ) test: $(OBJ)
......
#ifndef MYSH_COMMANDS_H_ #ifndef MYSH_COMMANDS_H_
#define MYSH_COMMANDS_H_ #define MYSH_COMMANDS_H_
/**
do_cd(argc, argv)
params:
argc: # of arguments. argc must be 2. just "cd" doesn't be approved.
argv: a list of arguments.
returns:
If success, return 0.
Else if arguments are not valid, return -1.
*/
int do_cd(int argc, char** argv); int do_cd(int argc, char** argv);
/**
do_pwd(argc, argv)
params:
argc: # of arguments. argc must be 1.
argv: a list of arguments.
returns:
If success, return 0.
Else if arguments are not valid, return -1.
*/
int do_pwd(int argc, char** argv); int do_pwd(int argc, char** argv);
/**
validate_cd_argv(argc, argv)
returns:
If success, return 1. (true)
Else return 0. (false)
*/
int validate_cd_argv(int argc, char** argv); int validate_cd_argv(int argc, char** argv);
/**
validate_pwd_argv(argc, argv)
returns:
If success, return 1. (true)
Else return 0. (false)
*/
int validate_pwd_argv(int argc, char** argv); int validate_pwd_argv(int argc, char** argv);
#endif // MYSH_COMMANDS_H_ #endif // MYSH_COMMANDS_H_
...@@ -21,8 +21,10 @@ int do_pwd(int argc, char** argv) { ...@@ -21,8 +21,10 @@ int do_pwd(int argc, char** argv) {
int validate_cd_argv(int argc, char** argv) { int validate_cd_argv(int argc, char** argv) {
// TODO: Fill it! // TODO: Fill it!
return 1;
} }
int validate_pwd_argv(int argc, char** argv) { int validate_pwd_argv(int argc, char** argv) {
// TODO: Fill it! // TODO: Fill it!
return 1;
} }
extern "C" {
#include "commands.h"
}
#include "gtest/gtest.h"
TEST(CDValidateTest, ValidateCDArgv) {
int argc = 2;
char* argv[] = {
"cd", "."
};
ASSERT_EQ(validate_cd_argv(argc, argv), 1);
}
TEST(CDValidateTest, ValidateCDArgv2) {
int argc = 3;
char* argv[] = {
"cd", ".", "."
};
ASSERT_EQ(validate_cd_argv(argc, argv), 0);
}
TEST(CDValidateTest, ValidateCDArgv3) {
int argc = 1;
char* argv[] = {
"cd"
};
ASSERT_EQ(validate_cd_argv(argc, argv), 0);
}
TEST(CDValidateTest, ValidateCDArgv4) {
int argc = 2;
char* argv[] = {
".", "cd"
};
ASSERT_EQ(validate_cd_argv(argc, argv), 0);
}
TEST(PWDValidateTest, ValidatePWDArgv) {
int argc = 1;
char* argv[] = {
"pwd"
};
ASSERT_EQ(validate_pwd_argv(argc, argv), 1);
}
TEST(PWDValidateTest, ValidatePWDArgv2) {
int argc = 2;
char* argv[] = {
"pwd", "cd"
};
ASSERT_EQ(validate_pwd_argv(argc, argv), 0);
}
TEST(PWDValidateTest, ValidatePWDArgv3) {
int argc = 1;
char* argv[] = {
"cd"
};
ASSERT_EQ(validate_pwd_argv(argc, argv), 0);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment