mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
106 lines
2.6 KiB
Bash
106 lines
2.6 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage:
|
|
sh android-plugin/run-trace-replay-cases-ci.sh \
|
|
--apk-file FILE \
|
|
--package PACKAGE \
|
|
--backend BACKEND \
|
|
--cases-file FILE \
|
|
--result-root DIR \
|
|
--fixture-root DIR
|
|
EOF
|
|
}
|
|
|
|
die() {
|
|
echo "run-trace-replay-cases-ci.sh: $*" >&2
|
|
usage >&2
|
|
exit 2
|
|
}
|
|
|
|
next_arg() {
|
|
if [ "$#" -lt 2 ]; then
|
|
die "$1 requires a value"
|
|
fi
|
|
printf '%s' "$2"
|
|
}
|
|
|
|
require_value() {
|
|
value="$1"
|
|
name="$2"
|
|
if [ -z "${value}" ]; then
|
|
die "missing ${name}"
|
|
fi
|
|
}
|
|
|
|
apk_file=""
|
|
package_name=""
|
|
backend=""
|
|
cases_file=""
|
|
result_root=""
|
|
fixture_root=""
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case "$1" in
|
|
--apk-file) apk_file="$(next_arg "$@")"; shift 2 ;;
|
|
--package) package_name="$(next_arg "$@")"; shift 2 ;;
|
|
--backend) backend="$(next_arg "$@")"; shift 2 ;;
|
|
--cases-file) cases_file="$(next_arg "$@")"; shift 2 ;;
|
|
--result-root) result_root="$(next_arg "$@")"; shift 2 ;;
|
|
--fixture-root) fixture_root="$(next_arg "$@")"; shift 2 ;;
|
|
-h|--help) usage; exit 0 ;;
|
|
*) die "unknown argument: $1" ;;
|
|
esac
|
|
done
|
|
|
|
require_value "${apk_file}" "--apk-file"
|
|
require_value "${package_name}" "--package"
|
|
require_value "${backend}" "--backend"
|
|
require_value "${cases_file}" "--cases-file"
|
|
require_value "${result_root}" "--result-root"
|
|
require_value "${fixture_root}" "--fixture-root"
|
|
|
|
status=0
|
|
mkdir -p "${result_root}/status"
|
|
|
|
if [ ! -f "${apk_file}" ]; then
|
|
echo "APK does not exist: ${apk_file}" >&2
|
|
echo 1 > "${result_root}/status/${backend}.status"
|
|
exit 0
|
|
fi
|
|
|
|
if [ ! -f "${cases_file}" ]; then
|
|
echo "cases file does not exist: ${cases_file}" >&2
|
|
echo 1 > "${result_root}/status/${backend}.status"
|
|
exit 0
|
|
fi
|
|
|
|
while IFS='|' read -r case_name trace_archive trace_file golden target_call width height tolerance crop_x crop_y crop_width crop_height fuzz_percent timeout_seconds; do
|
|
[ -n "${case_name}" ] || continue
|
|
sh android-plugin/trace-replay-ci.sh \
|
|
--apk-file "${apk_file}" \
|
|
--package "${package_name}" \
|
|
--backend "${backend}" \
|
|
--result-root "${result_root}" \
|
|
--fixture-root "${fixture_root}" \
|
|
--case "${case_name}" \
|
|
--trace-archive "${trace_archive}" \
|
|
--trace-file "${trace_file}" \
|
|
--golden "${golden}" \
|
|
--target-call "${target_call}" \
|
|
--width "${width}" \
|
|
--height "${height}" \
|
|
--tolerance "${tolerance}" \
|
|
--crop-x "${crop_x}" \
|
|
--crop-y "${crop_y}" \
|
|
--crop-width "${crop_width}" \
|
|
--crop-height "${crop_height}" \
|
|
--fuzz-percent "${fuzz_percent}" \
|
|
--timeout-seconds "${timeout_seconds}" \
|
|
|| status=1
|
|
done < "${cases_file}"
|
|
|
|
echo "${status}" > "${result_root}/status/${backend}.status"
|