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
+ exit 0
+fi
+
+# Otherwise, this is unexpected breakage
+exit 1
--
1.5.6.3
-------------------------------------------------------------------------
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