git_update/test_git_update.sh

181 lines
3.8 KiB
Bash
Raw Normal View History

2024-06-24 16:09:48 +00:00
#! /bin/bash
#importer driglibash
. driglibash-base
echo "<execution of test_git_update.sh>"
REPO_NAME=performance_testing
2024-07-11 16:31:19 +00:00
REMOTE=ssh://git@git.jean-cloud.net:22529/eleonore/performance_testing.git
WITH_SUBMODULE="true"
FILENAMES=("sample0" "sample1")
2024-07-11 16:31:19 +00:00
FILENAMES_TAG=("sample0")
TAG_NAME=start
if [ "$WITH_SUBMODULE" = "true" ]; then
bash creation_repo.sh -s &> /dev/null
else
bash creation_repo.sh &> /dev/null
2024-06-24 16:09:48 +00:00
fi
Help()
{
echo "
NAME
test_git_update.sh
SYNOPSIS
test_git_update.sh [-a] [-h] [-n number]
OPTIONS
-a excutes all the tests.
-n number executes test number
-h prints the help.
DESCRIPTION"
}
cloning_check(){
if [ -d "./$REPO_NAME" ]; then
echo "$REPO_NAME has been created"
cloning_result=0
2024-07-12 07:54:26 +00:00
local FILENAMES=$@
for FILE in ${FILENAMES[@]}
2024-06-24 16:09:48 +00:00
do
if [ -f "./$REPO_NAME/$FILE" ]; then
2024-07-11 16:31:19 +00:00
echo "the file $FILE has correctly been imported"
else
echo "the file $FILE could not be imported"
2024-07-11 16:31:19 +00:00
cloning_result=1
2024-06-24 16:09:48 +00:00
fi
done
else
cloning_result=1
echo "the folder $REPO_NAME could not be created"
2024-06-24 16:09:48 +00:00
fi
}
2024-06-24 16:09:48 +00:00
history_check(){
run cd $REPO_NAME
history_result=0
if [ $(git log | grep "commit" | wc -l) -gt 1 ]; then
echo "Several commits have been saved"
history_result=1
elif [ $(git log | grep "commit" | wc -l) = 1 ]; then
echo "Only the last commit has been saved"
else
history_result=1
echo "Cloning error, incoherent git log"
fi
cd ..
}
2024-06-24 16:09:48 +00:00
2024-07-11 16:31:19 +00:00
tag_check(){
run cd $REPO_NAME
run git branch > res
if [ $(grep "no branch" res | wc -l) = 1 ];then
2024-07-12 07:54:26 +00:00
echo "The tag instruction has been respected"
2024-07-11 16:31:19 +00:00
tag_result=0
else
tag_result=1
2024-07-12 07:54:26 +00:00
echo "The tag instruction has not been respected"
2024-07-11 16:31:19 +00:00
fi
cd ..
}
test0 (){
#CASE 0: git cloned in an empty directory without tag
section TEST0
#if it exists, delete the directory
if [ -d $REPO_NAME ]; then
rm -rf $REPO_NAME
fi
2024-07-11 16:31:19 +00:00
run ./git_update.sh -d $REPO_NAME $REMOTE
#checks
2024-07-12 07:54:26 +00:00
cloning_check ${FILENAMES[@]}
history_check
2024-07-12 07:54:26 +00:00
case0=$(($history_result+$cloning_result))
2024-07-11 16:31:19 +00:00
if [ "$case0" = "0" ]; then
echo "case 0, in a empty directory without history, without tag : OK"
else
2024-07-11 16:31:19 +00:00
echo "case 0, in a empty directory without history, without tag : FAIL"
fi
}
2024-06-24 16:09:48 +00:00
test1(){
#CASE 1: git cloned in an empty directory with tag
section TEST1
#if it exists, delete the directory
if [ -d $REPO_NAME ]; then
run rm -rf $REPO_NAME
fi
2024-07-12 07:54:26 +00:00
run ./git_update.sh -d $REPO_NAME -r $TAG_NAME $REMOTE
#checks
2024-07-11 16:31:19 +00:00
cloning_check $FILENAMES_TAG
history_check
2024-07-11 16:31:19 +00:00
tag_check
2024-07-12 07:54:26 +00:00
case1=$(($cloning_result+$history_result+$tag_result))
2024-07-11 16:31:19 +00:00
if [ $case1 = 0 ]; then
2024-07-12 07:54:26 +00:00
echo "case 1, in a empty directory without history, with tag : OK"
else
2024-07-12 07:54:26 +00:00
echo "case 1, in a empty directory without history, with tag : FAIL"
fi
}
test2(){
2024-06-24 16:09:48 +00:00
}
while getopts ":hn:a" option; do
case $option in
h) # display Help
Help
exit;;
n)
TEST_NUM=$OPTARG;;
a)
ALL_TESTS=true;;
\?) # Invalid option
echo "Error: Invalid option here"
exit;;
esac
done
if [ "$ALL_TESTS" = "true" ]; then
test0
test1
test2
test3
test4
test5
test6
test7
test8
test9
elif [ -n "$TEST_NUM" ]; then
case $TEST_NUM in
0)
test0;;
1)
test1;;
2)
test2;;
3)
test3;;
4)
test4;;
5)
test5;;
6)
test6;;
7)
test7;;
8)
test8;;
9)
test9;;
*)
echo "Error: Invalid test number"
die;;
esac
else
Help
fi