On 31.07.2008 [23:05:45 +0100], Mel Gorman wrote:
> Currently some of the linkhuge scripts are skipped in the event the
> keyboard SPECIAL is found in ld --verbose. Instead of skipping the tests,
> this will run them. However, if the test fails the user will be told it is
> an expected failure.
> 
> Signed-off-by: Mel Gorman <[EMAIL PROTECTED]>
> ---
>  tests/Makefile                  |   10 ++++++-
>  tests/run_tests.sh              |   52 ++++++++++----------------------------
>  tests/verifyresults-linkhuge.sh |   22 ++++++++++++++++
>  3 files changed, 45 insertions(+), 39 deletions(-)
>  create mode 100644 tests/verifyresults-linkhuge.sh
> 
> diff --git a/tests/Makefile b/tests/Makefile
> index b723db7..24c438d 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -65,7 +65,15 @@ ifdef CC64
>  ALLTESTS += $(TESTS_64:%=obj64/%)
>  endif
> 
> -all: $(ALLTESTS) $(ALLHELPERS) $(ALLHELPERLIBS)
> +# Setup symbolic links to duplicate verification scripts
> +symlink_verifydups: verifyresults-linkhuge.sh
> +     for LINK in linkhuge_nofd linkshare; do \
> +             if [ ! -e verifyresults-$$LINK.sh ]; then \
> +                     ln -s verifyresults-linkhuge.sh 
> verifyresults-$$LINK.sh; \
> +             fi \
> +     done
> +     
> +all: symlink_verifydups $(ALLTESTS) $(ALLHELPERS) $(ALLHELPERLIBS)
> 
>  obj32/%.o: %.c
>       @$(VECHO) CC32 $@
> diff --git a/tests/run_tests.sh b/tests/run_tests.sh
> index 17e1784..ea94692 100755
> --- a/tests/run_tests.sh
> +++ b/tests/run_tests.sh
> @@ -35,20 +35,6 @@ HPAGE_SIZE=$(grep 'Hugepagesize:' /proc/meminfo | awk 
> '{print $2}')
>  [ -z "$HPAGE_SIZE" ] && HPAGE_SIZE=0
>  HPAGE_SIZE=$(( $HPAGE_SIZE * 1024 ))
> 
> -# Up-front checks for the remapping test cases:
> -function check_linkhuge_tests() {
> -    # In some circumstances, our linker scripts are known to be broken and
> -    # they will produce binaries with undefined runtime behavior.  In those
> -    # cases don't bother running the xNNN.linkhuge tests.  This checks if the
> -    # 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
> -}
> -
>  run_test_bits () {
>      BITS=$1
>      shift
> @@ -98,14 +84,6 @@ skip_test () {
>      echo "$@:        SKIPPED"
>  }
> 
> -maybe_run_linkhuge_test () {
> -    if [ "$LINKHUGE_SKIP" != "1" ]; then
> -        run_test "$@"
> -    else
> -        skip_test "$@"
> -    fi
> -}
> -
>  preload_test () {
>      run_test LD_PRELOAD=libhugetlbfs.so "$@"
>  }
> @@ -119,14 +97,14 @@ elflink_test () {
>      run_test "$@" "$baseprog"
>      # Test we don't blow up if not linked for hugepage
>      preload_test "$@" "$baseprog"
> -    maybe_run_linkhuge_test "$@" "xB.$baseprog"
> -    maybe_run_linkhuge_test "$@" "xBDT.$baseprog"
> +    run_test "$@" "xB.$baseprog"
> +    run_test "$@" "xBDT.$baseprog"
>      # Test we don't blow up if HUGETLB_MINIMAL_COPY is diabled
> -    maybe_run_linkhuge_test HUGETLB_MINIMAL_COPY=no "$@" "xB.$baseprog"
> -    maybe_run_linkhuge_test HUGETLB_MINIMAL_COPY=no "$@" "xBDT.$baseprog"
> +    run_test HUGETLB_MINIMAL_COPY=no "$@" "xB.$baseprog"
> +    run_test HUGETLB_MINIMAL_COPY=no "$@" "xBDT.$baseprog"
>      # Test that HUGETLB_ELFMAP=no inhibits remapping as intended
> -    maybe_run_linkhuge_test HUGETLB_ELFMAP=no "$@" "xB.$baseprog"
> -    maybe_run_linkhuge_test HUGETLB_ELFMAP=no "$@" "xBDT.$baseprog"
> +    run_test HUGETLB_ELFMAP=no "$@" "xB.$baseprog"
> +    run_test HUGETLB_ELFMAP=no "$@" "xBDT.$baseprog"
>  }
> 
>  elflink_rw_test() {
> @@ -153,12 +131,12 @@ elfshare_test () {
>      # sharefiles before and after in the first set of runs, but leave
>      # them there in the second:
>      clear_hpages
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
>      clear_hpages
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
>      clear_hpages
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
>      clear_hpages
>  }
> 
> @@ -171,11 +149,11 @@ elflink_and_share_test () {
>      # Run each elflink test pair independently - clean up the sharefiles
>      # before and after each pair
>      clear_hpages
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xB.$baseprog"
>      clear_hpages
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
> -    maybe_run_linkhuge_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
> +    run_test HUGETLB_SHARE=1 "$@" "xBDT.$baseprog"
>      clear_hpages
>  }
> 
> @@ -276,8 +254,6 @@ functional_tests () {
>      run_test LD_PRELOAD="libhugetlbfs.so libheapshrink.so" 
> HUGETLB_MORECORE=yes HUGETLB_MORECORE_SHRINK=yes heapshrink
>      run_test HUGETLB_VERBOSE=1 HUGETLB_MORECORE=yes heap-overflow # warnings 
> expected
> 
> -# Run the remapping tests' up-front checks
> -check_linkhuge_tests
>  # Original elflink tests
>      elflink_test HUGETLB_VERBOSE=0 linkhuge_nofd # Lib error msgs expected
>      elflink_test linkhuge
> diff --git a/tests/verifyresults-linkhuge.sh b/tests/verifyresults-linkhuge.sh
> new file mode 100644
> index 0000000..aab1db4
> --- /dev/null
> +++ b/tests/verifyresults-linkhuge.sh
> @@ -0,0 +1,22 @@
> +#!/bin/bash
> +#
> +# In some circumstances, our linker scripts are known to be broken and
> +# they will produce binaries with undefined runtime behavior. This checks if
> +# the 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 so tell the user any FAIL is expected.
> +
> +# Check that we passed as expected
> +if [ $1 -eq 0 ]; then
> +     exit 0
> +fi
> +
> +# If we failed and it is due to ld, it is expected
> +ld --verbose | grep -q SPECIAL > /dev/null
> +if [ $? -eq 0 ]; then
> +     echo The system linker scripts use SPECIAL which is incompatible with 
> old-style custom relinker scripts for aligning segments

Sorry to be "that guy" but can we break this up into two lines? I don't
like our output running off the screen in a normal terminal.

Thanks,
Nish


-- 
Nishanth Aravamudan <[EMAIL PROTECTED]>
IBM Linux Technology Center

-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to