radeon: add symbols test

Will allow us to catch when the library exports more symbols than
the ones in the public headers.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
main
Emil Velikov 2015-04-05 15:51:28 +01:00
parent ab84a95e85
commit 552de225bf
2 changed files with 62 additions and 1 deletions

View File

@ -44,4 +44,4 @@ libdrm_radeoninclude_HEADERS = $(LIBDRM_RADEON_H_FILES)
pkgconfigdir = @pkgconfigdir@
pkgconfig_DATA = libdrm_radeon.pc
EXTRA_DIST = Android.mk $(LIBDRM_RADEON_BOF_FILES)
EXTRA_DIST = Android.mk $(LIBDRM_RADEON_BOF_FILES) $(TESTS)

61
radeon/radeon-symbol-check Executable file
View File

@ -0,0 +1,61 @@
#!/bin/bash
# The following symbols (past the first five) are taken from the public headers.
# A list of the latter should be available Makefile.sources/LIBDRM_RADEON_H_FILES
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_radeon.so} | awk '{print $3}'| while read func; do
( grep -q "^$func$" || echo $func ) <<EOF
__bss_start
_edata
_end
_fini
_init
radeon_bo_debug
radeon_bo_get_handle
radeon_bo_get_src_domain
radeon_bo_get_tiling
radeon_bo_is_busy
radeon_bo_is_referenced_by_cs
radeon_bo_is_static
radeon_bo_manager_gem_ctor
radeon_bo_manager_gem_dtor
radeon_bo_map
radeon_bo_open
radeon_bo_ref
radeon_bo_set_tiling
radeon_bo_unmap
radeon_bo_unref
radeon_bo_wait
radeon_cs_begin
radeon_cs_create
radeon_cs_destroy
radeon_cs_emit
radeon_cs_end
radeon_cs_erase
radeon_cs_get_id
radeon_cs_manager_gem_ctor
radeon_cs_manager_gem_dtor
radeon_cs_need_flush
radeon_cs_print
radeon_cs_set_limit
radeon_cs_space_add_persistent_bo
radeon_cs_space_check
radeon_cs_space_check_with_bo
radeon_cs_space_reset_bos
radeon_cs_space_set_flush
radeon_cs_write_reloc
radeon_gem_bo_open_prime
radeon_gem_get_kernel_name
radeon_gem_get_reloc_in_cs
radeon_gem_name_bo
radeon_gem_prime_share_bo
radeon_gem_set_domain
radeon_surface_best
radeon_surface_init
radeon_surface_manager_free
radeon_surface_manager_new
EOF
done)
test ! -n "$FUNCS" || echo $FUNCS
test ! -n "$FUNCS"