Files
vnidrop/packaging/version/test-version.sh

52 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
resolver="$script_dir/resolve-version.sh"
scratch="$(mktemp -d)"
trap 'rm -rf "$scratch"' EXIT
write_version() {
printf '%s\n' \
"PRODUCT_VERSION=$1" \
"RELEASE_CHANNEL=$2" \
"ANDROID_VERSION_CODE=$3" \
"APPLE_BUILD_NUMBER=$4" \
"WINDOWS_VERSION_EPOCH=$5" \
> "$scratch/version.properties"
}
resolve() {
VNIDROP_VERSION_FILE="$scratch/version.properties" "$resolver" "$@"
}
expect_failure() {
if "$@" >/dev/null 2>&1; then
printf 'Expected command to fail: %s\n' "$*" >&2
exit 1
fi
}
write_version 0.2.0 beta 2 2 1
[[ $(resolve product) == 0.2.0 ]]
[[ $(resolve android-code) == 2 ]]
[[ $(resolve apple-build) == 2 ]]
[[ $(resolve windows-package) == 1.2.0.0 ]]
resolve verify-tag v0.2.0
expect_failure resolve verify-tag v1.0.0
write_version 1.0.0 stable 42 42 1
[[ $(resolve windows-package) == 2.0.0.0 ]]
write_version 01.0.0 beta 2 2 1
expect_failure resolve verify
write_version 0.2.0 beta 0 2 1
expect_failure resolve verify
write_version 65535.0.0 stable 2 2 1
expect_failure resolve verify
printf 'Version resolver tests passed.\n'