51 lines
2.4 KiB
Bash
Executable File
51 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
manifest=${1:-linuxcnc-rs274-wasm-source-files.txt}
|
|
|
|
missing_root=/tmp/does-not-exist-linuxcnc
|
|
missing_root_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_wasm_blocker_missing_root.XXXXXX.log")
|
|
if LINUXCNC_ROOT="$missing_root" ./analyze-linuxcnc-wasm-blockers.sh "$manifest" >"$missing_root_log" 2>&1; then
|
|
echo "wasm blocker analyzer accepted missing LinuxCNC root" >&2
|
|
exit 1
|
|
fi
|
|
if ! grep -F "missing LinuxCNC root: $missing_root" "$missing_root_log" >/dev/null; then
|
|
echo "wasm blocker analyzer did not report missing LinuxCNC root clearly" >&2
|
|
sed -n '1,20p' "$missing_root_log" >&2
|
|
exit 1
|
|
fi
|
|
rm -f "$missing_root_log"
|
|
|
|
output=$(./analyze-linuxcnc-wasm-blockers.sh "$manifest")
|
|
|
|
missing_source_manifest=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_wasm_blocker_manifest_source.XXXXXX.txt")
|
|
missing_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_wasm_blocker_manifest_source.XXXXXX.log")
|
|
printf 'blocked:src/emc/tooldata/does_not_exist.cc:test missing blocked source\n' >"$missing_source_manifest"
|
|
if ./analyze-linuxcnc-wasm-blockers.sh "$missing_source_manifest" >"$missing_source_log" 2>&1; then
|
|
echo "wasm blocker analyzer accepted missing manifest source" >&2
|
|
exit 1
|
|
fi
|
|
if ! grep -F "missing manifest source: src/emc/tooldata/does_not_exist.cc" "$missing_source_log" >/dev/null; then
|
|
echo "wasm blocker analyzer did not report missing manifest source clearly" >&2
|
|
sed -n '1,20p' "$missing_source_log" >&2
|
|
exit 1
|
|
fi
|
|
rm -f "$missing_source_manifest" "$missing_source_log"
|
|
|
|
grep -F "[python]" <<<"$output" >/dev/null
|
|
grep -F "(none)" <<<"$(sed -n '/^\[python\]/,/^$/p' <<<"$output")" >/dev/null
|
|
grep -F "[dlopen]" <<<"$output" >/dev/null
|
|
grep -F "(none)" <<<"$(sed -n '/^\[dlopen\]/,/^$/p' <<<"$output")" >/dev/null
|
|
grep -F "[tooldata]" <<<"$output" >/dev/null
|
|
grep -F "src/emc/tooldata/tooldata_mmap.cc" <<<"$output" >/dev/null
|
|
grep -F "[tooldata-users]" <<<"$output" >/dev/null
|
|
grep -F "(none)" <<<"$(sed -n '/^\[tooldata-users\]/,/^$/p' <<<"$output")" >/dev/null
|
|
grep -F "[native-backend]" <<<"$output" >/dev/null
|
|
grep -F "src/emc/tooldata/tooldata_mmap.cc" <<<"$(sed -n '/^\[native-backend\]/,/^$/p' <<<"$output")" >/dev/null
|
|
grep -F "[native-fs]" <<<"$output" >/dev/null
|
|
grep -F "src/emc/tooldata/tooldata_mmap.cc" <<<"$(sed -n '/^\[native-fs\]/,/^$/p' <<<"$output")" >/dev/null
|
|
|
|
echo "linuxcnc wasm blocker scan passed"
|