#!/bin/sh
#
# Copyright (C) 2016-2018 Red Hat, Inc.  All rights reserved.
#
# Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
#
# This software licensed under GPL-2.0+, LGPL-2.0+
#

srcdir="$1"/libtap
builddir="$2"/libtap

headerapicalls="$(grep tap_ "$srcdir"/libtap.h | grep -v "^ \*" | grep -v ^struct | grep -v "^[[:space:]]" | grep -v typedef | sed -e 's/(.*//g' -e 's/^const //g' -e 's/\*//g' | awk '{print $2}')"

exportedapicalls="$(nm -B -D "$builddir"/.libs/libtap.so | grep ' T ' | awk '{print $3}')"

echo "Checking for exported symbols NOT available in header file"

for i in $exportedapicalls; do
	found=0
	for x in $headerapicalls; do
		if [ "$x" = "$i" ]; then
			found=1
			break;
		fi
	done
	if [ "$found" = 0 ]; then
		echo "Symbol $i not found in header file"
		exit 1
	fi
done

echo "Checking for symbols in header file NOT exported by binary lib"

for i in $headerapicalls; do
	found=0
	for x in $exportedapicalls; do
		if [ "$x" = "$i" ]; then
			found=1
			break;
		fi
	done
	if [ "$found" = 0 ]; then
		echo "Symbol $i not found in binary lib"
		exit 1
	fi
done

exit 0
