diff options
Diffstat (limited to 'binutils/testsuite/binutils-all/compress.exp')
-rw-r--r-- | binutils/testsuite/binutils-all/compress.exp | 354 |
1 files changed, 354 insertions, 0 deletions
diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp index 36b2a26..4d3b71c 100644 --- a/binutils/testsuite/binutils-all/compress.exp +++ b/binutils/testsuite/binutils-all/compress.exp @@ -217,3 +217,357 @@ if ![is_remote host] { } run_dump_test "debug_str" + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}gabi.o --compress-debug-sections=zlib-gabi] } then { + fail "compressed debug sections with zlib-gabi" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}gnu.o --compress-debug-sections=zlib-gnu] } then { + fail "compressed debug sections with zlib-gnu" + return +} + +set src1 ${compressedfile}gnu.o +set src2 ${compressedfile}.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + fail "compressed debug sections with zlib-gnu" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}gabi.o --compress-debug-sections=zlib-gabi] } then { + fail "compressed debug sections with zlib-gabi" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}gnu.o --compress-debug-sections=zlib-gnu] } then { + fail "compressed debug sections with zlib-gnu" + return +} + +set src1 ${compressedfile2}gnu.o +set src2 ${compressedfile2}.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + fail "compressed debug sections with zlib-gnu" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${compressedfile3}gabi.o --compress-debug-sections=zlib-gabi] } then { + fail "compressed debug sections with zlib-gabi" + return +} + +set testname "readelf -t zlib-gabi compress debug sections" +set got [remote_exec host "$READELF -t --wide ${compressedfile3}gabi.o" "" "/dev/null" "tmpdir/dw2-3.rt"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log "$got\n" +} +if { [regexp_diff tmpdir/dw2-3.rt $srcdir/$subdir/dw2-3.rt] } then { + fail "$testname" +} else { + pass "$testname" +} + +set testname "readelf -S zlib-gabi compress debug sections" +set got [remote_exec host "$READELF -S --wide ${compressedfile3}gabi.o" "" "/dev/null" "tmpdir/dw2-3.rS"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log "$got\n" +} +if { [regexp_diff tmpdir/dw2-3.rS $srcdir/$subdir/dw2-3.rS] } then { + fail "$testname" +} else { + pass "$testname" +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${compressedfile3}gnu.o --compress-debug-sections=zlib-gnu] } then { + fail "compressed debug sections with zlib-gnu" + return +} + +set src1 ${compressedfile3}gnu.o +set src2 ${compressedfile3}.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + fail "compressed debug sections with zlib-gnu" + return +} + +remote_file host delete ${libfile}gabi.a +set got [binutils_run $AR "rc ${libfile}gabi.a ${compressedfile}gabi.o ${compressedfile2}gabi.o ${compressedfile3}gabi.o"] +if ![string match "" $got] then { + fail "compressed debug sections" + return +} + +set testname "objcopy compress debug sections with zlib-gabi" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${testfile}.o ${copyfile}gabi.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile}gabi.o ${copyfile}gabi.o\n" +verbose "cmp ${compressedfile}gabi.o ${copyfile}gabi.o" +set src1 ${compressedfile}gabi.o +set src2 ${copyfile}gabi.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy decompress compressed debug sections with zlib-gabi" +set got [binutils_run $OBJCOPY "--decompress-debug-sections ${compressedfile}gabi.o ${copyfile}gabi.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${testfile}.o ${copyfile}gabi.o\n" +verbose "cmp ${testfile}.o ${copyfile}gabi.o" +set src1 ${testfile}.o +set src2 ${copyfile}gabi.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy zlib-gnu compress debug sections with zlib-gabi" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${compressedfile}.o ${copyfile}gabi.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile}gabi.o ${copyfile}gabi.o\n" +verbose "cmp ${compressedfile}gabi.o ${copyfile}gabi.o" +set src1 ${compressedfile}gabi.o +set src2 ${copyfile}gabi.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy zlib-gabi compress debug sections with zlib-gnu" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gnu ${compressedfile}gabi.o ${copyfile}gnu.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile}gnu.o ${copyfile}gnu.o\n" +verbose "cmp ${compressedfile}gnu.o ${copyfile}gnu.o" +set src1 ${compressedfile}gnu.o +set src2 ${copyfile}gnu.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy compress debug sections 3 with zlib-gabi" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${testfile3}.o ${copyfile}gabi.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o\n" +verbose "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o" +set src1 ${compressedfile3}gabi.o +set src2 ${copyfile}gabi.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy decompress compressed debug sections 3 with zlib-gabi" +set got [binutils_run $OBJCOPY "--decompress-debug-sections ${compressedfile3}gabi.o ${copyfile}gabi.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${testfile3}.o ${copyfile}gabi.o\n" +verbose "cmp ${testfile3}.o ${copyfile}gabi.o" +set src1 ${testfile3}.o +set src2 ${copyfile}gabi.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy zlib-gnu compress debug sections 3 with zlib-gabi" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${compressedfile3}.o ${copyfile}gabi.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o\n" +verbose "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o" +set src1 ${compressedfile3}gabi.o +set src2 ${copyfile}gabi.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy zlib-gabi compress debug sections 3 with zlib-gnu" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gnu ${compressedfile3}gabi.o ${copyfile}gnu.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o\n" +verbose "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o" +set src1 ${compressedfile3}gnu.o +set src2 ${copyfile}gnu.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy zlib-gnu compress debug sections 3" +set got [binutils_run $OBJCOPY "${compressedfile3}gnu.o ${copyfile}gnu.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o\n" +verbose "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o" +set src1 ${compressedfile3}gnu.o +set src2 ${copyfile}gnu.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy zlib-gnu compress debug sections 3" +set got [binutils_run $OBJCOPY "${compressedfile3}gnu.o ${copyfile}gnu.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" + return +} +send_log "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o\n" +verbose "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o" +set src1 ${compressedfile3}gnu.o +set src2 ${copyfile}gnu.o +set status [remote_exec build cmp "${src1} ${src2}"] +set exec_output [lindex $status 1] +set exec_output [prune_warnings $exec_output] +if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" +} else { + pass "objcopy ($testname)" +} + +set testname "objcopy decompress debug sections in archive with zlib-gabi" +set got [binutils_run $OBJCOPY "--decompress-debug-sections ${libfile}gabi.a ${copyfile}gabi.a"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + set got [remote_exec host "$READELF -S --wide ${copyfile}gabi.a" "" "/dev/null" "tmpdir/libdw2.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff tmpdir/libdw2.out $srcdir/$subdir/libdw2.out] } then { + fail "$testname" + } else { + pass "$testname" + } +} + +set testname "objcopy compress debug sections in archive with zlib-gabi" +set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${copyfile}gabi.a ${compressedcopyfile}gabi.a"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + set got [remote_exec host "$OBJDUMP -s -j .debug_info + ${compressedcopyfile}gabi.a" "" "/dev/null" "tmpdir/libdw2-compressedgabi.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff tmpdir/libdw2-compressedgabi.out $srcdir/$subdir/libdw2-compressedgabi.out] } then { + fail "$testname" + } else { + pass "$testname" + } +} + +set testname "objdump compress debug sections 3 with zlib-gabi" +set got [remote_exec host "$OBJDUMP -W ${compressedfile3}gabi.o" "" "/dev/null" "objdump.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname" + send_log "$got\n" +} +if { [regexp_diff objdump.out $srcdir/$subdir/dw2-3.W] } then { + fail "$testname" +} else { + pass "$testname" +} |