From: Kai Tietz Date: Wed, 28 Oct 2009 17:21:06 +0000 (+0000) Subject: 2009-10-28 Kai Tietz X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0bd7136a923213847d3c3c0b0836c685d3783276;p=binutils-gdb.git 2009-10-28 Kai Tietz * binutils-all/dlltool.exp: Add tests for --no-leading-underscore and --leading-underscore option for dlltool. --- diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 4c5f2b78c5b..3001daf8d16 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-10-28 Kai Tietz + + * binutils-all/dlltool.exp: Add tests for --no-leading-underscore + and --leading-underscore option for dlltool. + 2009-10-23 Kai Tietz * binutils-all/dlltool.exp: Add new test. diff --git a/binutils/testsuite/binutils-all/dlltool.exp b/binutils/testsuite/binutils-all/dlltool.exp index e9654abe267..046fc18d5eb 100644 --- a/binutils/testsuite/binutils-all/dlltool.exp +++ b/binutils/testsuite/binutils-all/dlltool.exp @@ -109,3 +109,156 @@ if [regexp $want $got] then { } else { fail "dlltool -p (import name) alias-2.def" } + +# Here we test explicit without leading underscore + +verbose "$DLLTOOL --no-leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --no-leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export no leading underscore)" +} else { + pass "dlltool (fastcall export no leading underscore)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution no leading underscore)" + continue +} + +pass "dlltool -p (execution no leading underscore)" + +set got [binutils_run $NM "tmpdir/libalias_nu.a"] +set want "00000000 I __imp_prefixsymbol.*00000000 T prefixsymbol.*00000000 I __imp_symbol.*00000000 T symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names no leading underscore)" +} else { + fail "dlltool -p (symbol names no leading underscore)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_nu.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name no leading underscore)" +} else { + fail "dlltool -p (import name no leading underscore)" +} + +verbose "$DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution no leading underscore) alias-2.def" + continue +} + +pass "dlltool -p (execution no leading underscore) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias_nu2.a"] +set want "00000000 I __imp_prefixsymbol.*00000000 T prefixsymbol.*00000000 I __imp_symbol.*00000000 T symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names no leading underscore) alias-2.def" +} else { + fail "dlltool -p (symbol names no leading underscore) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_nu2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name no leading underscore) alias-2.def" +} else { + fail "dlltool -p (import name no leading underscore) alias-2.def" +} + +# Now we test with leading underscore +verbose "$DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export leading underscore)" +} else { + pass "dlltool (fastcall export leading underscore)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution leading underscore)" + continue +} + +pass "dlltool -p (execution leading-underscore)" + +set got [binutils_run $NM "tmpdir/libalias_u.a"] +set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names leading underscore)" +} else { + fail "dlltool -p (symbol names leading underscore)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_u.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name leading underscore)" +} else { + fail "dlltool -p (import name leading underscore)" +} + +verbose "$DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution) alias-2.def" + continue +} + +pass "dlltool -p (execution leading underscore) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias_u2.a"] +set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names leading underscore) alias-2.def" +} else { + fail "dlltool -p (symbol names leading underscore) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_u2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name leading underscore) alias-2.def" +} else { + fail "dlltool -p (import name leading underscore) alias-2.def" +}