[lit] Remove LitTestCase
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / redefine-symbol.test
blob8ed8c85e93d384e181eea07abdb219203ef1b6b2
1 # RUN: yaml2obj %s > %t
2 # RUN: llvm-objcopy --redefine-sym foo=oof --redefine-sym empty= %t %t2
3 # RUN: llvm-readobj --symbols %t2 | FileCheck %s
4 # RUN: not llvm-objcopy --redefine-sym barbar %t %t2 2>&1 | FileCheck %s --check-prefix=BAD-FORMAT
5 # RUN: not llvm-objcopy --redefine-sym foo=f1 --redefine-sym foo=f2 %t %t2 2>&1 | FileCheck %s --check-prefix=MULTIPLE-REDEFINITION
6 # RUN: echo "  foo   oof #rename foo  " > %t.rename.txt
7 # RUN: echo "empty" >> %t.rename.txt
8 # RUN: not llvm-objcopy --redefine-syms %t.rename.txt %t %t3 2>&1 | FileCheck %s --check-prefix=MISSING-SYM-NAME
9 # RUN: not llvm-objcopy --redefine-syms %t.rename-none.txt %t %t-none 2>&1 | FileCheck %s --check-prefix=NO-FILE
10 # RUN: echo "  bar   rab #rename bar  " > %t.rename2.txt
11 # RUN: echo "  foo   oof #rename foo  " > %t.rename3.txt
12 # RUN: echo "  empty   ytpme #rename empty  " >> %t.rename3.txt
13 # RUN: llvm-objcopy --redefine-syms %t.rename2.txt --redefine-syms %t.rename3.txt %t %t4
14 # RUN: llvm-readobj --symbols %t4 | FileCheck %s --check-prefix=MULTIPLE-FILES
16 !ELF
17 FileHeader:
18   Class:           ELFCLASS64
19   Data:            ELFDATA2LSB
20   Type:            ET_EXEC
21   Machine:         EM_X86_64
22 Sections:
23   - Name:            .text
24     Type:            SHT_PROGBITS
25     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
26     Address:         0x1000
27     AddressAlign:    0x0000000000000010
28     Content:         "0000000000000000"
29   - Name:            .data
30     Type:            SHT_PROGBITS
31     Flags:           [ SHF_ALLOC ]
32     Address:         0x2000
33     AddressAlign:    0x0000000000000010
34     Content:         "0000000000000000"
35 Symbols:
36   Global:
37     - Name:     foo
38       Type:     STT_FUNC
39       Section:  .text
40       Value:    0x1004
41     - Name:     bar
42       Type:     STT_OBJECT
43       Section:  .data
44       Value:    0x2000
45       Size:     4
46     - Name:     empty
47       Type:     STT_FUNC
48       Section:  .text
49       Value:    0x1008
51 #CHECK: Symbols [
52 #CHECK-NEXT:  Symbol {
53 #CHECK-NEXT:    Name:
54 #CHECK-NEXT:    Value: 0x0
55 #CHECK-NEXT:    Size: 0
56 #CHECK-NEXT:    Binding: Local
57 #CHECK-NEXT:    Type: None
58 #CHECK-NEXT:    Other: 0
59 #CHECK-NEXT:    Section: Undefined
60 #CHECK-NEXT:  }
61 #CHECK-NEXT:  Symbol {
62 #CHECK-NEXT:    Name: oof
63 #CHECK-NEXT:    Value: 0x1004
64 #CHECK-NEXT:    Size: 0
65 #CHECK-NEXT:    Binding: Global
66 #CHECK-NEXT:    Type: Function
67 #CHECK-NEXT:    Other: 0
68 #CHECK-NEXT:    Section: .text
69 #CHECK-NEXT:  }
70 #CHECK-NEXT:  Symbol {
71 #CHECK-NEXT:    Name: bar
72 #CHECK-NEXT:    Value: 0x2000
73 #CHECK-NEXT:    Size: 4
74 #CHECK-NEXT:    Binding: Global
75 #CHECK-NEXT:    Type: Object
76 #CHECK-NEXT:    Other: 0
77 #CHECK-NEXT:    Section: .data
78 #CHECK-NEXT:  }
79 #CHECK-NEXT:  Symbol {
80 #CHECK-NEXT:    Name: 
81 #CHECK-NEXT:    Value: 0x1008
82 #CHECK-NEXT:    Size: 0
83 #CHECK-NEXT:    Binding: Global
84 #CHECK-NEXT:    Type: Function
85 #CHECK-NEXT:    Other: 0
86 #CHECK-NEXT:    Section: .text
87 #CHECK-NEXT:  }
89 #BAD-FORMAT: Bad format for --redefine-sym
90 #MULTIPLE-REDEFINITION: Multiple redefinition of symbol foo
91 #MISSING-SYM-NAME: error: {{.*}}.rename.txt:2: missing new symbol name
92 #NO-FILE: error: '{{.*}}.rename-none.txt': {{[Nn]}}o such file or directory
94 #MULTIPLE-FILES:        Name: oof
95 #MULTIPLE-FILES-NEXT:   Value: 0x1004
96 #MULTIPLE-FILES:        Name: rab
97 #MULTIPLE-FILES-NEXT:   Value: 0x2000
98 #MULTIPLE-FILES:        Name: ytpme
99 #MULTIPLE-FILES-NEXT:   Value: 0x1008