Merge pull request #342 from matthiasbeyer/imag-link/testing
Imag link/testing
This commit is contained in:
commit
975eb18905
8 changed files with 160 additions and 62 deletions
|
@ -41,7 +41,7 @@ script:
|
|||
}
|
||||
|
||||
run_sh_test() {
|
||||
echo "--- Running test script: $1"
|
||||
echo "--- Running test script: '$1'"
|
||||
bash $1 || { echo "--- Test failed. Exiting"; exit 1; }
|
||||
echo "--- Test script $1 executed successfully"
|
||||
}
|
||||
|
|
69
imag-link/tests/link-test.sh
Normal file
69
imag-link/tests/link-test.sh
Normal file
|
@ -0,0 +1,69 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||
|
||||
default_entry() {
|
||||
cat <<EOS
|
||||
---
|
||||
[imag]
|
||||
links = []
|
||||
version = "0.1.0"
|
||||
---
|
||||
|
||||
EOS
|
||||
}
|
||||
|
||||
entry_linked_to() {
|
||||
cat <<EOS
|
||||
---
|
||||
[imag]
|
||||
links = [$1]
|
||||
version = "0.1.0"
|
||||
---
|
||||
|
||||
EOS
|
||||
}
|
||||
|
||||
mktestentry() {
|
||||
mkdir -p ${STORE}
|
||||
default_entry > ${STORE}/$1
|
||||
}
|
||||
|
||||
test_link_modificates() {
|
||||
mktestentry "test~0.1.0"
|
||||
mktestentry "test2~0.1.0"
|
||||
|
||||
imag-link internal add --from "test~0.1.0" --to "test2~0.1.0"
|
||||
|
||||
if [[ "$(default_entry)" -eq "$(cat_entry 'test~0.1.0')" ]] ||
|
||||
[[ "$(default_entry)" -eq "$(cat_entry 'test2~0.1.0')" ]]
|
||||
then
|
||||
err "Entry was unmodified after linking"
|
||||
return 1;
|
||||
fi
|
||||
}
|
||||
|
||||
test_linking_links() {
|
||||
mktestentry "test~0.1.0"
|
||||
mktestentry "test2~0.1.0"
|
||||
|
||||
imag-link internal add --from "test~0.1.0" --to "test2~0.1.0"
|
||||
|
||||
if [[ "$(entry_linked_to '/test~0.1.0')" == "$(cat_entry 'test2~0.1.0')" ]];
|
||||
then
|
||||
err "Linking to 'test~0.1.0' didn't succeed for 'test2~0.1.0'"
|
||||
err $(cat_entry 'test2~0.1.0')
|
||||
fi
|
||||
|
||||
if [[ "$(entry_linked_to '/test2~0.1.0')" == "$(cat_entry 'test~0.1.0')" ]];
|
||||
then
|
||||
err "Linking to 'test2~0.1.0' didn't succeed for 'test~0.1.0'"
|
||||
err $(cat_entry 'test~0.1.0')
|
||||
fi
|
||||
}
|
||||
|
||||
invoke_tests \
|
||||
test_link_modificates \
|
||||
test_linking_links
|
||||
|
6
imag-link/tests/utils.sh
Normal file
6
imag-link/tests/utils.sh
Normal file
|
@ -0,0 +1,6 @@
|
|||
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||
|
||||
imag-link() {
|
||||
imag-call-binary "$(dirname ${BASH_SOURCE[0]})/../target/debug/" imag-link $*
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||
|
||||
test_call() {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||
|
||||
std_header() {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||
|
||||
create() {
|
||||
|
|
|
@ -1,65 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
COLOR_OFF='\e[0m' # Text Reset
|
||||
RED='\e[0;31m' # Red
|
||||
YELLOW='\e[0;33m' # Yellow
|
||||
GREEN='\e[0;32m' # Green
|
||||
|
||||
RUNTIME="/tmp"
|
||||
STORE="${RUNTIME}/store"
|
||||
|
||||
out() {
|
||||
[[ -z "$DEBUG_OUTPUT_OFF" ]] && echo -e "${YELLOW}:: $*${COLOR_OFF}"
|
||||
}
|
||||
|
||||
success() {
|
||||
[[ -z "$DEBUG_OUTPUT_OFF" ]] && echo -e "${GREEN}>> $*${COLOR_OFF}"
|
||||
}
|
||||
|
||||
err() {
|
||||
[[ -z "$DEBUG_OUTPUT_OFF" ]] && echo -e "${RED}!! $*${COLOR_OFF}"
|
||||
}
|
||||
|
||||
silent() {
|
||||
DEBUG_OUTPUT_OFF=1 $*
|
||||
}
|
||||
source $(dirname ${BASH_SOURCE[0]})/../tests/utils.sh
|
||||
|
||||
imag-store() {
|
||||
local searchdir=$(dirname ${BASH_SOURCE[0]})/../target/debug/
|
||||
[[ -d $searchdir ]] || { err "FATAL: No directory $searchdir"; exit 1; }
|
||||
local bin=$(find $searchdir -iname imag-store -type f -executable)
|
||||
local flags="--debug --rtp $RUNTIME"
|
||||
out "Calling '$bin $flags $*'"
|
||||
$bin $flags $*
|
||||
}
|
||||
|
||||
reset_store() {
|
||||
rm -r "${STORE}"
|
||||
}
|
||||
|
||||
call_test() {
|
||||
out "-- TESTING: '$1' --"
|
||||
$1
|
||||
result=$?
|
||||
if [[ -z "$DONT_RESET_STORE" ]]; then
|
||||
out "Reseting store"
|
||||
reset_store
|
||||
out "Store reset done"
|
||||
fi
|
||||
[[ $result -eq 0 ]] || { err "-- FAILED: '$1'. Exiting."; exit 1; }
|
||||
success "-- SUCCESS: '$1' --"
|
||||
}
|
||||
|
||||
invoke_tests() {
|
||||
out "Invoking tests."
|
||||
if [[ ! -z "$INVOKE_TEST" ]]; then
|
||||
out "Invoking only $INVOKE_TEST"
|
||||
call_test "$INVOKE_TEST"
|
||||
else
|
||||
out "Invoking $*"
|
||||
for t in $*; do
|
||||
call_test "$t"
|
||||
done
|
||||
fi
|
||||
imag-call-binary "$(dirname ${BASH_SOURCE[0]})/../target/debug/" imag-store $*
|
||||
}
|
||||
|
||||
|
|
79
tests/utils.sh
Normal file
79
tests/utils.sh
Normal file
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
#
|
||||
# This file contains test utility functions which are used by the test scripts
|
||||
# for each binary.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
COLOR_OFF='\e[0m' # Text Reset
|
||||
RED='\e[0;31m' # Red
|
||||
YELLOW='\e[0;33m' # Yellow
|
||||
GREEN='\e[0;32m' # Green
|
||||
|
||||
RUNTIME="/tmp"
|
||||
STORE="${RUNTIME}/store"
|
||||
|
||||
out() {
|
||||
[[ -z "$DEBUG_OUTPUT_OFF" ]] && echo -e "${YELLOW}:: $*${COLOR_OFF}"
|
||||
}
|
||||
|
||||
success() {
|
||||
[[ -z "$DEBUG_OUTPUT_OFF" ]] && echo -e "${GREEN}>> $*${COLOR_OFF}"
|
||||
}
|
||||
|
||||
err() {
|
||||
[[ -z "$DEBUG_OUTPUT_OFF" ]] && echo -e "${RED}!! $*${COLOR_OFF}"
|
||||
}
|
||||
|
||||
silent() {
|
||||
DEBUG_OUTPUT_OFF=1 $*
|
||||
}
|
||||
|
||||
imag-call-binary() {
|
||||
local searchdir=$1; shift
|
||||
local binary=$1; shift
|
||||
[[ -d $searchdir ]] || { err "FATAL: No directory $searchdir"; exit 1; }
|
||||
local bin=$(find $searchdir -iname $binary -type f -executable)
|
||||
local flags="--debug --rtp $RUNTIME"
|
||||
out "Calling '$bin $flags $*'"
|
||||
$bin $flags $*
|
||||
}
|
||||
|
||||
cat_entry() {
|
||||
cat ${STORE}/$1
|
||||
}
|
||||
|
||||
reset_store() {
|
||||
rm -r "${STORE}"
|
||||
}
|
||||
|
||||
call_test() {
|
||||
out "-- TESTING: '$1' --"
|
||||
$1
|
||||
result=$?
|
||||
if [[ -z "$DONT_RESET_STORE" ]]; then
|
||||
out "Reseting store"
|
||||
reset_store
|
||||
out "Store reset done"
|
||||
fi
|
||||
[[ $result -eq 0 ]] || { err "-- FAILED: '$1'. Exiting."; exit 1; }
|
||||
success "-- SUCCESS: '$1' --"
|
||||
}
|
||||
|
||||
invoke_tests() {
|
||||
out "Invoking tests."
|
||||
if [[ ! -z "$INVOKE_TEST" ]]; then
|
||||
out "Invoking only $INVOKE_TEST"
|
||||
call_test "$INVOKE_TEST"
|
||||
else
|
||||
out "Invoking $*"
|
||||
for t in $*; do
|
||||
call_test "$t"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
Loading…
Reference in a new issue