2024-06-24 16:09:48 +00:00
|
|
|
#! /bin/bash
|
2024-06-25 13:52:05 +00:00
|
|
|
#importer driglibash
|
2024-07-11 12:04:25 +00:00
|
|
|
. 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
|
2024-07-11 12:04:25 +00:00
|
|
|
WITH_SUBMODULE="true"
|
|
|
|
FILENAMES=("sample0" "sample1")
|
2024-07-11 16:31:19 +00:00
|
|
|
FILENAMES_TAG=("sample0")
|
2024-07-11 12:04:25 +00:00
|
|
|
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
|
2024-07-11 12:04:25 +00:00
|
|
|
|
|
|
|
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
|
2024-07-11 12:04:25 +00:00
|
|
|
if [ -f "./$REPO_NAME/$FILE" ]; then
|
2024-07-11 16:31:19 +00:00
|
|
|
echo "the file $FILE has correctly been imported"
|
2024-06-25 13:52:05 +00:00
|
|
|
else
|
2024-07-11 12:04:25 +00:00
|
|
|
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
|
2024-07-11 12:04:25 +00:00
|
|
|
cloning_result=1
|
|
|
|
echo "the folder $REPO_NAME could not be created"
|
2024-06-24 16:09:48 +00:00
|
|
|
fi
|
2024-07-11 12:04:25 +00:00
|
|
|
}
|
2024-06-24 16:09:48 +00:00
|
|
|
|
2024-07-11 12:04:25 +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 ..
|
|
|
|
}
|
|
|
|
|
2024-07-11 12:04:25 +00:00
|
|
|
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
|
2024-07-11 12:04:25 +00:00
|
|
|
#checks
|
2024-07-12 07:54:26 +00:00
|
|
|
cloning_check ${FILENAMES[@]}
|
2024-07-11 12:04:25 +00:00
|
|
|
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"
|
2024-07-11 12:04:25 +00:00
|
|
|
else
|
2024-07-11 16:31:19 +00:00
|
|
|
echo "case 0, in a empty directory without history, without tag : FAIL"
|
2024-07-11 12:04:25 +00:00
|
|
|
fi
|
|
|
|
}
|
2024-06-24 16:09:48 +00:00
|
|
|
|
2024-07-11 12:04:25 +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
|
2024-07-11 12:04:25 +00:00
|
|
|
#checks
|
2024-07-11 16:31:19 +00:00
|
|
|
cloning_check $FILENAMES_TAG
|
2024-07-11 12:04:25 +00:00
|
|
|
history_check
|
2024-07-11 16:31:19 +00:00
|
|
|
tag_check
|
2024-06-25 13:52:05 +00:00
|
|
|
|
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"
|
2024-07-11 12:04:25 +00:00
|
|
|
else
|
2024-07-12 07:54:26 +00:00
|
|
|
echo "case 1, in a empty directory without history, with tag : FAIL"
|
2024-07-11 12:04:25 +00:00
|
|
|
fi
|
|
|
|
}
|
2024-06-25 13:52:05 +00:00
|
|
|
|
2024-07-11 12:04:25 +00:00
|
|
|
test2(){
|
2024-06-24 16:09:48 +00:00
|
|
|
|
2024-07-11 12:04:25 +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
|