mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 16:35:33 +00:00
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by giving the scripts more appropriate names. Most build scripts should use builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh. Documented in resources/build/README.md. Renames: * resources/build/builder.inc.sh to resources/build/builder-full.inc.sh * resources/build/build-utils.sh to resources/build/builder-basic.inc.sh Other changes: * Moves Android-specific functions out of builder-basic.inc.sh and into android/build.sh. * Renames functions in builder-basic.inc.sh More functions may be moved from builder-basic.inc.sh into utils.inc.sh or other scripts in the future. Fixes: #14065 Build-bot: build all Test-bot: skip
105 lines
3.1 KiB
Bash
Executable file
105 lines
3.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Unit tests for verify_api.inc.sh
|
|
set -eu
|
|
shopt -s inherit_errexit
|
|
|
|
## START STANDARD BUILD SCRIPT INCLUDE
|
|
# adjust relative paths as necessary
|
|
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|
. "${THIS_SCRIPT%/*}/../../../resources/build/builder-basic.inc.sh"
|
|
## END STANDARD BUILD SCRIPT INCLUDE
|
|
|
|
. "${THIS_SCRIPT%/*}/test.inc.sh"
|
|
. "${KEYMAN_ROOT}/linux/scripts/verify_api.inc.sh"
|
|
|
|
|
|
fixture_setup() {
|
|
SONAME=1
|
|
LIB_NAME=libkeymancore
|
|
PKG_NAME="${LIB_NAME}${SONAME}"
|
|
EXIT_CODE=-1
|
|
}
|
|
|
|
test_compare_versions__less_patch() {
|
|
[[ $(compare_versions "17.0.197" "17.0.198") == -1 ]]
|
|
}
|
|
|
|
test_compare_versions__less_minor() {
|
|
[[ $(compare_versions "17.0.197" "17.1.197") == -1 ]]
|
|
}
|
|
|
|
test_compare_versions__less_major() {
|
|
[[ $(compare_versions "17.0.197" "18.0.0") == -1 ]]
|
|
}
|
|
|
|
test_compare_versions__greater() {
|
|
[[ $(compare_versions "17.0.198" "17.0.197") == 1 ]]
|
|
}
|
|
|
|
test_compare_versions__same() {
|
|
[[ $(compare_versions "17.0.197" "17.0.197") == 0 ]]
|
|
}
|
|
|
|
test_compare_versions__greater0() {
|
|
[[ $(compare_versions "17.0.197" "0") == 1 ]]
|
|
}
|
|
|
|
test_get_highest_version_in_symbols_file() {
|
|
local output
|
|
createBase alpha
|
|
echo ' (c++|optional)"typeinfo name for std::codecvt@Base" 17.0.244' >> linux/debian/libkeymancore1.symbols
|
|
git add linux/debian/libkeymancore1.symbols
|
|
git commit -m "API method added"
|
|
|
|
# Execute
|
|
output=$(get_highest_version_in_symbols_file "$(git rev-parse HEAD)")
|
|
echo "${output[*]}" # for logging
|
|
[[ "${output}" == "17.0.244" ]]
|
|
}
|
|
|
|
test_check_updated_version_number__LineInsertedInBranch_OK() {
|
|
local output
|
|
createBase alpha
|
|
|
|
local base_sha=$(git rev-parse master)
|
|
|
|
# Add a line in chore branch
|
|
sed -i 's/km_core_actions_dispose@Base 17.0.197/km_core_actions_dispose@Base 17.0.201/' linux/debian/libkeymancore1.symbols
|
|
echo " km_core_foo@Base 17.0.200" >> linux/debian/libkeymancore1.symbols
|
|
git add linux/debian/libkeymancore1.symbols
|
|
git commit -m "API method added in chore branch"
|
|
|
|
# Add a line in master branch
|
|
git checkout master
|
|
sed -i 's/km_core_actions_dispose@Base 17.0.197/km_core_actions_dispose@Base 17.0.199/' linux/debian/libkeymancore1.symbols
|
|
git add linux/debian/libkeymancore1.symbols
|
|
git commit -m "API method changed in master branch"
|
|
echo "readme" > README.md
|
|
git add README.md
|
|
git commit -m "Some change on master"
|
|
git checkout chore
|
|
|
|
# merge master into chore
|
|
git merge --strategy-option=ours master
|
|
|
|
echo "## Calling API verification"
|
|
pwd
|
|
GIT_SHA="$(git rev-parse HEAD)"
|
|
GIT_BASE="${base_sha}"
|
|
|
|
output=$(check_updated_version_number)
|
|
echo "${output[*]}" # for logging
|
|
[[ "${output[*]}" == *"OK: libkeymancore1.symbols file got updated with package version number"* ]]
|
|
}
|
|
|
|
|
|
fixture_setup
|
|
echo "(test logs are in /tmp/<testname>.log)"
|
|
run_test test_compare_versions__less_patch
|
|
run_test test_compare_versions__less_minor
|
|
run_test test_compare_versions__less_major
|
|
run_test test_compare_versions__greater
|
|
run_test test_compare_versions__same
|
|
run_test test_compare_versions__greater0
|
|
run_test test_get_highest_version_in_symbols_file
|
|
run_test test_check_updated_version_number__LineInsertedInBranch_OK
|