test/lua.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Sat Oct 04 18:12:58 2014 +0100 (2014-10-04)
changeset 454 56ff755c268c
child 456 bae5adee8c8c
permissions -rwxr-xr-x
Only export symbols starting with razor_ in dynamic library.

Apart from being good practice to avoid clashes with higher-level
libraries and the application, this also fixes an obscure bug: The
gnulib library is used both by librazor (the dynamic library) and
by razor (the executable). In doing so, we want to have two separate
copies of the library despite the code duplication this involves.
Without the explicit limit to export only razor_ symbols, the razor
executable under mingw64 was picking up the getopt_long function
from librazor and the optind variable from libgnu which meant that
it did not see optind changing. Hiding librazor's copy of getopt
causes the linker to find libgnu's copy and everything works.

Note that under mingw librazor-#.dll still contains undocumented
(private) razor_ symbols but these will do no harm as long as nobody
tries to use them.
ali@352
     1
#!/bin/sh
ali@352
     2
check_filesystem()
ali@352
     3
{
ali@352
     4
    if [ ! -e "$RAZOR_ROOT$1" ]; then 
ali@352
     5
	echo $1: Not in filesystem >&2
ali@352
     6
	exit 1
ali@352
     7
    fi
ali@352
     8
}
ali@352
     9
check_file()
ali@352
    10
{
ali@352
    11
    ../src/razor list-files | grep -x "$1" > /dev/null
ali@352
    12
    if [ $? -ne 0 ]; then
ali@352
    13
	echo $1: Not in database >&2
ali@352
    14
	exit 1
ali@352
    15
    fi
ali@352
    16
    check_filesystem "$1"
ali@352
    17
}
ali@352
    18
export RAZOR_ROOT=`mktemp -dt` || exit 1
ali@352
    19
../src/razor init || exit 1
ali@352
    20
export YUM_URL="file://localhost/`pwd`"
ali@352
    21
../src/razor import-yum || exit 1
ali@352
    22
../src/razor install filesystem || exit 1
ali@352
    23
check_file /etc
ali@352
    24
check_file /usr/bin
ali@352
    25
check_file /usr/lib
ali@352
    26
check_file /usr/include
ali@352
    27
check_filesystem /media/cdrom
ali@352
    28
rm -rf "$RAZOR_ROOT"