check leaks d01

This commit is contained in:
hugogogo
2022-03-14 15:05:24 +01:00
parent 3f0c94360a
commit 189f76260c
13 changed files with 38 additions and 63 deletions

View File

@@ -52,6 +52,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME)
clean:
rm -f $(OBJS)

View File

@@ -51,6 +51,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME)
clean:
rm -f $(OBJS)

View File

@@ -49,6 +49,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME)
clean:
rm -f $(OBJS)

View File

@@ -54,6 +54,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME)
clean:
rm -f $(OBJS)

View File

@@ -50,8 +50,12 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) Makefile OBJS BANANE
clean:
rm -f $(OBJS)
rm -f *.replace
fclean: clean
rm -f $(NAME)

View File

@@ -1,62 +0,0 @@
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# . name = value . name is case sensitive #
# VARIABLES . or name = value \ . use VPATH only for .c #
# . value . or .cpp #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
NAME = sed
CC = clang++
CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 -g3
VPATH = $(D_SRCS)
LIBS =
INCLUDES = -I$(D_HEADERS)
D_SRCS = .
SRCS = main.cpp \
Sed.cpp
D_HEADERS = .
HEADERS = Sed.hpp
D_OBJS = builds
OBJS = $(SRCS:%.cpp=$(D_OBJS)/%.o)
RM_D_OBJS = rm -rf $(D_OBJS)
ifeq "$(D_OBJS)" "."
RM_D_OBJS =
endif
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# . target: prerequisites . $@ : target #
# RULES . recipe . $< : 1st prerequisite #
# . recipe . $^ : all prerequisites #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
all: $(NAME)
$(D_OBJS)/%.o: %.cpp | $(D_OBJS)
$(CC) $(CFLAGS) -c $< -o $@
$(D_OBJS):
mkdir $@
$(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
clean:
rm -f $(OBJS)
fclean: clean
rm -f $(NAME)
$(RM_D_OBJS)
re: fclean all
.PHONY : all clean fclean re bonus run valgrind

View File

@@ -2,7 +2,14 @@
cd $(dirname $0)
source ./colors.sh
mkdir -p test_log
make -C ../ &> /dev/null
EXECUTABLE="sed"
LEAKS=""
if [ $1 == "leaks" ] || [ $1 == "valgrind" ]
then
LEAKS="valgrind --leak-check=full --show-leak-kinds=all"
fi
# RUN TESTS
function run_tests
@@ -10,7 +17,7 @@ EXECUTABLE="sed"
touch $TESTNAME
echo "$CONTENT" > $TESTNAME
../$EXECUTABLE $TESTNAME "$FIND" "$REPLACEMENT"
$LEAKS ../$EXECUTABLE $TESTNAME "$FIND" "$REPLACEMENT"
OUTPUT=$( cat $TESTNAME.replace )
if [ "$OUTPUT" == "$RESULT" ]
then

View File

@@ -50,6 +50,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME)
clean:
rm -f $(OBJS)

View File

@@ -50,6 +50,9 @@ $(OBJS): $(HEADERS:%=$(D_HEADERS)/%)
$(NAME): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
leaks: $(NAME)
valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) DEBUG
clean:
rm -f $(OBJS)

BIN
d01/ex06/karenFilter Executable file

Binary file not shown.

View File

@@ -9,7 +9,10 @@ int main(int ac, char *av[])
int i;
if (ac != 2)
{
std::cout << "need 1 argument of type DEBUG, INFO, WARNING or ERROR\n";
return (1);
}
for (i = 0; i < 4; i++)
if (level[i].compare(av[1]) == 0)
@@ -21,14 +24,17 @@ int main(int ac, char *av[])
std::cout << "[ DEBUG ]" << '\n';
karen.complain("DEBUG");
std::cout << '\n';
/* FALLTHRU */
case (1):
std::cout << "[ INFO ]" << '\n';
karen.complain("INFO");
std::cout << '\n';
/* FALLTHRU */
case (2):
std::cout << "[ WARNING ]" << '\n';
karen.complain("WARNING");
std::cout << '\n';
/* FALLTHRU */
case (3):
std::cout << "[ ERROR ]" << '\n';
karen.complain("ERROR");