130 lines
2.5 KiB
Bash
Executable File
130 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
nb_tests=0
|
|
TEST_SUITE_NAME="add/file/"
|
|
|
|
get_exe() {
|
|
exe=$(pwd)
|
|
exe+="/../target/debug/nextsync"
|
|
if [ ! -f $exe ]; then
|
|
echo "No executable found, try to compile first" >&2
|
|
exit 4
|
|
fi
|
|
}
|
|
setup_env() {
|
|
[ ! -v exe ] && get_exe
|
|
path=$(mktemp -d)
|
|
cd $path
|
|
}
|
|
|
|
add_cmp() {
|
|
res=$($exe status --nostyle)
|
|
diff <(echo -e "$2" ) <(echo -e "$res") 2> /dev/null > /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "$TEST_SUITE_NAME$1: Output differ:" >&2
|
|
diff -u <(echo -e "$2" ) <(echo -e "$res") | grep "^[-\+\ ][^-\+]" >&2
|
|
echo -e "\nMore in $path" >&2
|
|
echo $nb_tests
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
add_test_no_env() {
|
|
touch $2
|
|
$exe add $3
|
|
add_cmp "$1" "$4"
|
|
}
|
|
|
|
add_test() {
|
|
nb_tests=$((nb_tests + 1))
|
|
setup_env
|
|
$exe init
|
|
add_test_no_env "$1" "$2" "$3" "$4"
|
|
}
|
|
|
|
add_basics() {
|
|
add_test "basic" "toto" "toto" "new: toto"
|
|
}
|
|
|
|
add_space() {
|
|
nb_tests=$((nb_tests + 1))
|
|
setup_env
|
|
$exe init
|
|
touch 'to to'
|
|
$exe add 'to to'
|
|
res=$($exe status --nostyle)
|
|
add_cmp "space" "new: to to"
|
|
}
|
|
|
|
add_multiple() {
|
|
add_test "multiple" "titi riri" "titi riri" "new: titi\nnew: riri"
|
|
}
|
|
|
|
add_regex() {
|
|
add_test "regex" "titi riri" "./*" "new: riri\nnew: titi"
|
|
}
|
|
|
|
add_subdir() {
|
|
nb_tests=$((nb_tests + 1))
|
|
setup_env
|
|
$exe init
|
|
mkdir dir
|
|
touch dir/toto
|
|
$exe add "./dir/toto"
|
|
res=$($exe status --nostyle)
|
|
add_cmp "subdir" "new: dir/toto"
|
|
}
|
|
|
|
add_subdir_regex() {
|
|
nb_tests=$((nb_tests + 1))
|
|
setup_env
|
|
$exe init
|
|
mkdir dir
|
|
touch dir/toto dir/roro
|
|
$exe add "./dir/*"
|
|
res=$($exe status --nostyle)
|
|
add_cmp "subdir_regex" "new: dir/roro\nnew: dir/toto"
|
|
}
|
|
|
|
add_duplication() {
|
|
add_test "duplication" "toto" "toto toto" "new: toto"
|
|
}
|
|
|
|
add_duplication_subdir() {
|
|
nb_tests=$((nb_tests + 1))
|
|
setup_env
|
|
$exe init
|
|
mkdir dir
|
|
add_test_no_env "duplication_subdir" "dir/toto" "dir/toto dir/toto" "new: dir/toto"
|
|
}
|
|
|
|
add_all() {
|
|
nb_tests=$((nb_tests + 1))
|
|
setup_env
|
|
$exe init
|
|
mkdir dir
|
|
touch dir/toto dir/roro lolo
|
|
$exe add -A
|
|
res=$($exe status --nostyle)
|
|
add/file/all: Output differ:
|
|
add_cmp "all" "new: dir/roro\nnew: dir/toto\nnew: lolo\nnew: .nextsyncignore"
|
|
}
|
|
|
|
#test nextsyncignore
|
|
#test inside folder
|
|
#test -A duplication
|
|
#test add file without changes
|
|
|
|
add_basics
|
|
add_space
|
|
add_multiple
|
|
add_regex
|
|
add_subdir
|
|
add_subdir_regex
|
|
add_duplication
|
|
add_duplication_subdir
|
|
add_all
|
|
|
|
echo $nb_tests
|
|
exit 0
|