Files
42_INT_09_piscine_cpp/d01/ex04/unitests/test.sh
2022-03-15 21:11:15 +01:00

256 lines
5.0 KiB
Bash

#!/bin/bash
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
{
touch $TESTNAME
echo "$CONTENT" > $TESTNAME
$LEAKS ../$EXECUTABLE $TESTNAME "$FIND" "$REPLACEMENT"
OUTPUT=$( cat $TESTNAME.replace )
if [ "$OUTPUT" == "$RESULT" ]
then
echo -e $B_GREEN"$TESTNAME success"$ENDCO
else
echo -e $B_RED"$TESTNAME faillure"$ENDCO
fi
mv $TESTNAME $TESTNAME.replace ./test_log
}
# TEST 1 ########################################
TESTNAME="test1"
FIND=" "
REPLACEMENT="hello"
CONTENT=" "
RESULT="hello"
run_tests
# TEST 2 ########################################
TESTNAME="test2"
FIND="ie"
REPLACEMENT="++"
CONTENT=$(cat << EOF
ce fichier
contient
plusieurs lignes
les unes au dessus des autres
youhouuu ioieux
EOF
)
RESULT=$(cat << EOF
ce fich++r
cont++nt
plus++urs lignes
les unes au dessus des autres
youhouuu io++ux
EOF
)
run_tests
# TEST 3 ########################################
TESTNAME="test3"
FIND="."
REPLACEMENT="+"
CONTENT=$(cat << EOF
....................................................;
EOF
)
RESULT=$(cat << EOF
++++++++++++++++++++++++++++++++++++++++++++++++++++;
EOF
)
run_tests
# TEST 4 ########################################
TESTNAME="test4"
FIND=".."
REPLACEMENT="++"
CONTENT=$(cat << EOF
...................................................;
. . . . . . . . . . . . . . . . . . . . . . . . . .;
EOF
)
RESULT=$(cat << EOF
++++++++++++++++++++++++++++++++++++++++++++++++++.;
. . . . . . . . . . . . . . . . . . . . . . . . . .;
EOF
)
run_tests
# TEST 5 ########################################
TESTNAME="test5"
FIND="mdr"
REPLACEMENT="|||"
CONTENT=$(cat << EOF
test de mmdr foubar
EOF
)
RESULT=$(cat << EOF
test de m||| foubar
EOF
)
run_tests
# TEST 6 ########################################
TESTNAME="test6"
FIND="toutouille"
REPLACEMENT="||||||||||"
CONTENT=$(cat << EOF
trouve ce mot toutouille
et celui-la toutoutouille
EOF
)
RESULT=$(cat << EOF
trouve ce mot ||||||||||
et celui-la tou||||||||||
EOF
)
run_tests
# TEST 7 ########################################
TESTNAME="test7"
FIND="n't"
REPLACEMENT="000"
CONTENT=$(cat << EOF
No more tears, my heart is dry
I don't laugh and I don't cry
I don't think about you all the time
But when I do - I wonder why
You have to go out of my door
And leave just like you did before
I know I said that I was sure
But rich men can't imagine poor.
One day baby, we'll be old
Oh baby, we'll be old
And think of all the stories that we could have told
Little me and little you
Kept doing all the things they do
They never really think it through
Like I can never think you're true
Here I go again - the blame
The guilt, the pain, the hurt, the shame
The founding fathers of our plane
That's stuck in heavy clouds of rain.
One day baby, we'll be old
Oh baby, we'll be old
And think of all the stories that we could have told
EOF
)
RESULT=$(cat << EOF
No more tears, my heart is dry
I do000 laugh and I do000 cry
I do000 think about you all the time
But when I do - I wonder why
You have to go out of my door
And leave just like you did before
I know I said that I was sure
But rich men ca000 imagine poor.
One day baby, we'll be old
Oh baby, we'll be old
And think of all the stories that we could have told
Little me and little you
Kept doing all the things they do
They never really think it through
Like I can never think you're true
Here I go again - the blame
The guilt, the pain, the hurt, the shame
The founding fathers of our plane
That's stuck in heavy clouds of rain.
One day baby, we'll be old
Oh baby, we'll be old
And think of all the stories that we could have told
EOF
)
run_tests
# TEST 8 ########################################
TESTNAME="test8"
FIND=$(cat << EOF
ry
I don't
EOF
)
REPLACEMENT=$(cat << EOF
oo
oooooooo
EOF
)
CONTENT=$(cat << EOF
No more tears, my heart is dry
I don't laugh and I don't cry
I don't think about you all the time
But when I do - I wonder why
EOF
)
RESULT=$(cat << EOF
No more tears, my heart is doo
oooooooolaugh and I don't coo
oooooooothink about you all the time
But when I do - I wonder why
EOF
)
run_tests
# TEST 9 ########################################
TESTNAME="test9"
FIND=""
REPLACEMENT="p"
CONTENT=$(cat << EOF
No more tears, my heart is dry
I don't laugh and I don't cry
I don't think about you all the time
But when I do - I wonder why
EOF
)
RESULT=$(cat << EOF
No more tears, my heart is dry
I don't laugh and I don't cry
I don't think about you all the time
But when I do - I wonder why
EOF
)
run_tests
# TEST 10 ########################################
TESTNAME="test10"
FIND=""
REPLACEMENT=""
CONTENT=$(cat << EOF
No more tears, my heart is dry
I don't laugh and I don't cry
I don't think about you all the time
But when I do - I wonder why
EOF
)
RESULT=$(cat << EOF
No more tears, my heart is dry
I don't laugh and I don't cry
I don't think about you all the time
But when I do - I wonder why
EOF
)
run_tests