In run_tests.sh, the function check_linkhuge_tests() checks if it is safe to run the legacy linkhuge tests by examining the default linker script. But when binaries are compiled with a different word size, they use a different linker script. Therefore, we must make a separate decision for each word size whether to run the linkhuge tests.
Splitting up test skipping by wordsize means we need a new skip_test_bits function. The reporting of skipped tests has now changed. Rather than reporting a SKIP that applies to all word sizes of a given test. A SKIP for each word size is printed. Signed-off-by: Adam Litke <[EMAIL PROTECTED]> --- tests/run_tests.sh | 38 ++++++++++++++++++++++++++------------ 1 files changed, 26 insertions(+), 12 deletions(-) diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 4fe6eed..dc2370f 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -81,10 +81,15 @@ function check_linkhuge_tests() { # system linker scripts use the SPECIAL keyword (for placing the got and # plt). Our linker scripts do not use SPECIAL and are thus broken when the # system scripts use it. - ld --verbose | grep -q SPECIAL - if [ $? -eq 0 ]; then - LINKHUGE_SKIP=1 - fi + LINKHUGE_WORDSIZES="" + for bits in $WORDSIZES; do + gcc -m$bits -Wl,--verbose 2> /dev/null | grep -q SPECIAL + if [ $? -eq 0 ]; then + bits="no$bits" + fi + LINKHUGE_WORDSIZES="$LINKHUGE_WORDSIZES $bits" + done +echo "LINKHUGE_WORDSIZES = $LINKHUGE_WORDSIZES" } run_test_bits () { @@ -117,22 +122,31 @@ run_test () { done } +skip_test_bits () { + bits=$1 + shift + + echo "$@ ($bits): SKIPPED" + tot_tests[$bits]=$[tot_tests[$bits] + 1] + tot_skip[$bits]=$[tot_skip[$bits] + 1] +} + # To manually disable a test (e.g., one that panics an older kernel), # replace "run_test <options>" with "skip_test <options>". skip_test () { - echo "$@: SKIPPED" for bits in $WORDSIZES; do - tot_tests[$bits]=$[tot_tests[$bits] + 1] - tot_skip[$bits]=$[tot_skip[$bits] + 1] + skip_test_bits $bits "$@" done } maybe_run_linkhuge_test () { - if [ "$LINKHUGE_SKIP" != "1" ]; then - run_test "$@" - else - skip_test "$@" - fi + for bits in $LINKHUGE_WORDSIZES; do + if [ "$bits" == "${bits#no}" ]; then + run_test_bits $bits "$@" + else + skip_test_bits ${bits#no} "$@" + fi + done } preload_test () { ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel