Remove tic80 support
[deliverable/binutils-gdb.git] / binutils / testsuite / binutils-all / objcopy.exp
index df1e268d0456a50b7a6829302f784e371555f0d2..88f63fee393013d8388d8cbf0e79f986793905b7 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright (C) 1994-2018 Free Software Foundation, Inc.
+#   Copyright (C) 1994-2019 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -80,7 +80,7 @@ proc objcopy_test {testname srcfile} {
        setup_xfail "hppa*-*-*"
        setup_xfail "m8*-*"
        setup_xfail "sh-*-coff*"
-       setup_xfail "tic80-*-*"
+       setup_xfail "tic54x-*-*"
 
        clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
        clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*"
@@ -101,6 +101,50 @@ proc objcopy_test {testname srcfile} {
 
 objcopy_test "simple copy" bintest.s
 
+# Test verilog data width
+proc objcopy_test_verilog {testname} {
+    global OBJCOPY
+    global OBJCOPYFLAGS
+    global srcdir
+    global subdir
+    global copyfile
+    set binfile tmpdir/verilogtest.o
+    set verilog tmpdir/verilog
+
+    set got [binutils_assemble $srcdir/$subdir/verilogtest.s $binfile]
+    if {![binutils_assemble $srcdir/$subdir/verilogtest.s $binfile]} then {
+       unresolved "objcopy ($testname)"
+       return
+    }
+
+    set got [binutils_run $OBJCOPY "-O verilog $binfile $verilog"]
+    if ![string equal "" $got] then {
+       fail "objcopy ($testname)"
+    }
+
+    set got [binutils_run $OBJCOPY "-O verilog --verilog-data-width 0 $binfile $verilog-0.hex"]
+    if ![regexp "verilog data width must be at least 1 byte" $got] then {
+       fail "objcopy ($testname 0) {$got}"
+    } else {
+       pass "objcopy ($testname 0)"
+    }
+
+    foreach width {1 2 4 8} {
+       set got [binutils_run $OBJCOPY "-O verilog --verilog-data-width $width $binfile $verilog-$width.hex"]
+       if ![string equal "" $got] then {
+           fail "objcopy ($testname $width)"
+       }
+        send_log "regexp_diff $verilog-$width.hex $srcdir/$subdir/verilog-$width.hex\n"
+       if {! [regexp_diff "$verilog-$width.hex" "$srcdir/$subdir/verilog-$width.hex"]} {
+           pass "objcopy ($testname $width)"
+       } else {
+           fail "objcopy ($testname $width)"
+       }
+    }
+}
+
+objcopy_test_verilog "verilog data width"
+
 if { [file exists $tempfile] } {
     # Test reversing bytes in a section.
 
@@ -1045,10 +1089,10 @@ if [is_elf_format] {
     objcopy_test_symbol_manipulation
     objcopy_test_elf_common_symbols
     objcopy_test "ELF unknown section type" unknown.s
-    objcopy_test_readelf "ELF group" group.s
-    objcopy_test_readelf "ELF group" group-2.s
-    objcopy_test_readelf "ELF group" group-3.s
-    objcopy_test_readelf "ELF group" group-4.s
+    objcopy_test_readelf "ELF group 1" group.s
+    objcopy_test_readelf "ELF group 2" group-2.s
+    objcopy_test_readelf "ELF group 3" group-3.s
+    objcopy_test_readelf "ELF group 4" group-4.s
     objcopy_test_readelf "GNU_MBIND section" mbind1.s
     run_dump_test "group-5"
     run_dump_test "group-6"
@@ -1057,16 +1101,18 @@ if [is_elf_format] {
     run_dump_test "group-7c"
     run_dump_test "copy-1"
     run_dump_test "note-1"
-    # Use bintest.o from the note-1 test to determine ELF32 or ELF64
-    if [is_elf64 tmpdir/bintest.o] {
+    # Use copytest.o from the note-1 test to determine ELF32 or ELF64
+    if [is_elf64 tmpdir/copytest.o] {
        set elf64 "--defsym ELF64=1"
        run_dump_test "note-2-64"
        run_dump_test "note-3-64"
        run_dump_test "note-4-64"
+       run_dump_test "note-6-64"
     } else {
        run_dump_test "note-2-32"
        run_dump_test "note-3-32"
        run_dump_test "note-4-32"
+       run_dump_test "note-6-32"
     }
     run_dump_test "note-5"
 }
@@ -1074,6 +1120,9 @@ if [is_elf_format] {
 run_dump_test "copy-2"
 run_dump_test "copy-3"
 run_dump_test "copy-4"
+run_dump_test "copy-5"
+run_dump_test "copy-6"
+
 # Use bintest.o from the copy-4 test to determine ELF reloc type
 set reloc_format rel
 if { [is_elf_format] && [is_rela tmpdir/bintest.o] } {
@@ -1098,7 +1147,11 @@ if [is_elf_format] {
        set reloc_format mips64
     }
     # A relocation type not supported by any target
-    set reloc 215
+    if { [istarget "nds32*-*"] } {
+       set reloc 255
+    } else {
+       set reloc 215
+    }
     run_dump_test "strip-13" [list \
                                  [list source strip-13${reloc_format}.s] \
                                  [list as "${elf64} --defsym RELOC=${reloc}"]]
@@ -1168,6 +1221,9 @@ if [is_elf_format] {
     run_dump_test "only-section-01"
     run_dump_test "remove-section-01"
 
+    run_dump_test "keep-section-1"
+    run_dump_test "keep-section-2"
+
     # Test the remove relocation functionality
     set test_list [lsort [glob -nocomplain $srcdir/$subdir/remove-relocs-*.d]]
     foreach t $test_list {
@@ -1258,3 +1314,5 @@ proc objcopy_remove_relocations_from_executable { } {
 objcopy_remove_relocations_from_executable
 
 run_dump_test "pr23633"
+
+run_dump_test "set-section-alignment"
This page took 0.026104 seconds and 4 git commands to generate.