spiegel-keyman/resources/build/test/trees/build.sh
Marc Durdin 74f9276695 chore(common): run common and resources tests
This sets us up to run all common/ and resources/ tests from a single
script, common/build.sh. This test will be run on each platform for all
changes made in common/ or resources/.

Also renamed files and paths for consistency in resources/ and updated
tests accordingly.
2023-04-28 14:07:34 +07:00

87 lines
No EOL
2.2 KiB
Bash
Executable file

#!/usr/bin/env bash
set -eu
## START STANDARD BUILD SCRIPT INCLUDE
# adjust relative paths as necessary
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
. "${THIS_SCRIPT%/*}/../../../../resources/build/build-utils.sh"
# END STANDARD BUILD SCRIPT INCLUDE
cd "$THIS_SCRIPT_PATH"
# Test builder_describe_outputs and dependencies
builder_describe "parent test module" \
:child1 \
:child2 \
:child3=child3_renamed/src \
clean \
configure \
build \
test \
install \
error
builder_parse "$@"
if builder_is_child_build; then
builder_die "FAIL: builder_is_child_build should be false but was $_builder_is_child for the parent script"
else
builder_echo "PASS: builder_is_child_build is false ($_builder_is_child) for the parent script"
fi
# All child actions will generate files which we need to verify for test
rm -f ./child?.* ./dep.clean ./dep.configure ./dep.build
function test_present() {
local target=$1
local action=$2
local CHECK="${COLOR_GREEN}${COLOR_RESET}" # ✔
local CROSS="${COLOR_RED}${COLOR_RESET}" # ❌
if builder_has_action $action:$target; then
if [ ! -f $target.$action ]; then
builder_die "$CROSS FAIL: ./$target.$action to be present"
else
echo -e "$CHECK PASS: ./$target.$action found as expected"
fi
fi
}
# We need to specify the order to run actions in the parent script
#
# This may looks as simple as:
#
# builder_run_child_actions clean configure build test install
#
builder_run_child_actions clean
test_present child1 clean
test_present child2 clean
test_present child3 clean
builder_run_child_actions configure
test_present child1 configure
test_present child2 configure
test_present child3 configure
# Test chaining commands in a single statement
builder_run_child_actions build test
test_present child1 build
test_present child2 build
test_present child3 build
test_present child1 test
test_present child2 test
test_present child3 test
# We are customising the order in which child scripts are installed, so 2 goes before 1
builder_run_child_actions install:child2
test_present child2 install
builder_run_child_actions install:child1
test_present child1 install
builder_run_child_actions error
echo Done