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() {
|
run_sh_test() {
|
||||||
echo "--- Running test script: $1"
|
echo "--- Running test script: '$1'"
|
||||||
bash $1 || { echo "--- Test failed. Exiting"; exit 1; }
|
bash $1 || { echo "--- Test failed. Exiting"; exit 1; }
|
||||||
echo "--- Test script $1 executed successfully"
|
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
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||||
|
|
||||||
test_call() {
|
test_call() {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||||
|
|
||||||
std_header() {
|
std_header() {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
|
||||||
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
source $(dirname ${BASH_SOURCE[0]})/utils.sh
|
||||||
|
|
||||||
create() {
|
create() {
|
||||||
|
|
|
@ -1,65 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
source $(dirname ${BASH_SOURCE[0]})/../tests/utils.sh
|
||||||
|
|
||||||
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-store() {
|
imag-store() {
|
||||||
local searchdir=$(dirname ${BASH_SOURCE[0]})/../target/debug/
|
imag-call-binary "$(dirname ${BASH_SOURCE[0]})/../target/debug/" imag-store $*
|
||||||
[[ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
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