35 lines
1007 B
Bash
Executable File
35 lines
1007 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if ! command -v nm >/dev/null 2>&1; then
|
|
echo "nm not found on PATH"
|
|
exit 1
|
|
fi
|
|
|
|
os="$(uname -s)"
|
|
case "${os}" in
|
|
Linux)
|
|
golden="${TEST_SRCDIR}/io_ray/python/ray/tests/raylet_exported_symbols_linux.txt"
|
|
nm_args=(-D --defined-only -g)
|
|
;;
|
|
Darwin)
|
|
golden="${TEST_SRCDIR}/io_ray/python/ray/tests/raylet_exported_symbols_macos.txt"
|
|
nm_args=(-gUj)
|
|
;;
|
|
*)
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
raylet_so="${TEST_SRCDIR}/io_ray/python/ray/_raylet.so"
|
|
if [[ ! -f "${raylet_so}" ]]; then
|
|
echo "Cannot find _raylet.so in runfiles"
|
|
exit 1
|
|
fi
|
|
|
|
symbols_non_ray="${TEST_TMPDIR}/raylet_exported_symbols.non_ray.txt"
|
|
symbols_original="${TEST_TMPDIR}/raylet_exported_symbols.original.txt"
|
|
nm "${nm_args[@]}" "${raylet_so}" | awk '{print $NF}' > "${symbols_original}" # keep symbol names only
|
|
grep -v '3ray' "${symbols_original}" > "${symbols_non_ray}" # drop Ray mangled symbols; check only non-Ray leaks
|
|
diff -u <(sort "${golden}") <(sort "${symbols_non_ray}")
|