#!/bin/bash

set -euo pipefail

# ./test_symbols.sh <library> <expected exported symbols file> <allowed imported symbols file>

diff -u <(sort < "$2" | grep -v ___asan_globals_registered) <(nm "$1" | grep " T " | cut -f3 -d " " | sort)
ec=0
for symbol in $(nm "$1" | grep " U " | sed 's/ U //') ; do
    if ! grep --fixed-strings "$symbol" "$3" > /dev/null ; then
        echo "Imported symbol $symbol not present in $3"
        ec=1
    fi
done

exit $ec