This commit is contained in:
2025-08-06 13:29:28 +08:00
commit 957a372209
230 changed files with 43801 additions and 0 deletions

90
expkg/vendor/lz4/tests/check_stdvars.sh vendored Normal file
View File

@ -0,0 +1,90 @@
#!/usr/bin/env sh
set -e # exit on first command error
###############################################################################
# check_stdvars.sh verify that user-supplied CC/CFLAGS/CPPFLAGS/LDFLAGS/
# LDLIBS reach every compile- and link-command emitted by a recursive Make.
#
# Usage: tests/check_stdvars.sh build.log
# where build.log is produced with:
# make -nr V=1 \
# CC='cc -DCC_TEST' \
# CFLAGS='-DCFLAGS_TEST' \
# CPPFLAGS='-DCPPFLAGS_TEST' \
# LDFLAGS='-DLDFLAGS_TEST' \
# LDLIBS='-DLDLIBS_TEST' \
# > build.log
###############################################################################
log_file=${1:?need build-log file}
# marker flags injected by the Makefile test target
CC_TAG='-DCC_TEST'
CF_TAG='-DCFLAGS_TEST'
CP_TAG='-DCPPFLAGS_TEST'
LD_TAG='-DLDFLAGS_TEST'
LL_TAG='-DLDLIBS_TEST'
compile_seen=0 ; compile_ok=0
link_seen=0 ; link_ok=0
fail=0
report() {
echo "$1:" >&2
echo " $2" >&2
fail=1
}
# read log line-by-line
while IFS= read -r line
do
# skip blank lines, comments, or progress "echo …" lines
[ -z "$line" ] && continue
case "$line" in
\#*) continue ;;
' echo '*) continue ;; # leading whitespace + echo
'echo '*) continue ;; # echo with no leading whitespace
esac
# classify
step=other
case "$line" in
*' -c '*) step=compile ;; # compile if -c appears
*' cc '*|cc\ *|*' gcc '*|gcc\ *|*' clang '*|clang\ *|*' g++ '*|g++\ *|*' clang++ '*|clang++\ *)
step=link ;; # compiler without -c ⇒ link
esac
[ "$step" = other ] && continue
if [ "$step" = compile ]; then
compile_seen=$((compile_seen + 1))
ok=1
case "$line" in *"$CC_TAG"*) : ;; *) ok=0 ;; esac
case "$line" in *"$CF_TAG"*) : ;; *) ok=0 ;; esac
case "$line" in *"$CP_TAG"*) : ;; *) ok=0 ;; esac
if [ "$ok" -eq 1 ]; then
compile_ok=$((compile_ok + 1))
else
report "compile cmd missing marker(s)" "$line"
fi
else # link
link_seen=$((link_seen + 1))
ok=1
case "$line" in *"$LD_TAG"*) : ;; *) ok=0 ;; esac
case "$line" in *"$LL_TAG"*) : ;; *) ok=0 ;; esac
if [ "$ok" -eq 1 ]; then
link_ok=$((link_ok + 1))
else
report "link cmd missing marker(s)" "$line"
fi
fi
done < "$log_file"
if [ "$fail" -ne 0 ]; then
echo "standard-variable propagation test FAILED" >&2
echo " compile: $compile_ok / $compile_seen OK" >&2
echo " link : $link_ok / $link_seen OK" >&2
exit 1
fi
echo "$compile_seen compile + $link_seen link commands: all markers present"
exit 0