92 lines · yaml
1# RUN: yaml2obj -D NAME= %s | llvm-nm - | FileCheck --check-prefix=FBAR %s2# FBAR: U fbar3 4# RUN: yaml2obj -D NAME=o %s | llvm-nm - | FileCheck --check-prefix=FOOBAR %s5# RUN: yaml2obj -DNAME=o %s | llvm-nm - | FileCheck --check-prefix=FOOBAR %s6# FOOBAR: U foobar7 8# RUN: not yaml2obj -D NAME %s 2>&1 | FileCheck --check-prefix=ERR1 %s9# ERR1: error: invalid syntax for -D: NAME10 11# RUN: not yaml2obj -D =value %s 2>&1 | FileCheck --check-prefix=ERR2 %s12# ERR2: error: invalid syntax for -D: =value13 14# RUN: not yaml2obj -D NAME=a -D NAME=b %s 2>&1 | FileCheck --check-prefix=ERR3 %s15# ERR3: error: 'NAME' redefined16 17--- !ELF18FileHeader:19 Class: ELFCLASS6420 Data: ELFDATA2LSB21 Type: ET_REL22 Machine: EM_X86_6423Symbols:24 - Name: f[[NAME]][[NAME]]bar25 26## Digits can appear in macro names. Test that we don't expand macros recursively.27# RUN: yaml2obj --docnum=2 -D a0='[[a1]]' -D a1='[[a0]]' %s | llvm-nm --just-symbol-name --no-sort - > %t.recur28# RUN: echo -e '[[a1]]\n[[a0]]' > %t0.recur29# RUN: diff -u %t0.recur %t.recur30 31--- !ELF32FileHeader:33 Class: ELFCLASS6434 Data: ELFDATA2LSB35 Type: ET_REL36 Machine: EM_X86_6437Symbols:38 - Name: "[[a0]]"39 - Name: "[[a1]]"40 41## Test unterminated [[.42# RUN: yaml2obj --docnum=3 %s | llvm-nm --just-symbol-name --no-sort - > %t.nosubst43# RUN: echo -e 'a[[\n[[a]\n[[a[[a]]\n[[a][[a]][[b]]' > %t0.nosubst44# RUN: diff -u %t0.nosubst %t.nosubst45 46# RUN: yaml2obj --docnum=3 -D a=b -D b=c %s | llvm-nm --just-symbol-name --no-sort - > %t.subst47# RUN: echo -e 'a[[\n[[a]\n[[ab\n[[a]bc' > %t0.subst48# RUN: diff -u %t0.subst %t.subst49 50--- !ELF51FileHeader:52 Class: ELFCLASS6453 Data: ELFDATA2LSB54 Type: ET_REL55 Machine: EM_X86_6456Symbols:57 - Name: "a[["58 - Name: "[[a]"59 - Name: "[[a[[a]]"60 - Name: "[[a][[a]][[b]]"61 62## Check that it is possible to set a default value for a macro in the YAML description.63## Check that we are able to provide an empty default value for a macro.64# RUN: yaml2obj --docnum=4 %s -o %t4.165# RUN: llvm-nm --no-sort %t4.1 | FileCheck %s --check-prefix=DEFAULT66 67# DEFAULT: U _foo_68# DEFAULT-NEXT: U __69 70--- !ELF71FileHeader:72 Class: ELFCLASS6473 Data: ELFDATA2LSB74 Type: ET_REL75 Machine: EM_X86_6476Symbols:77 - Name: _[[FOO=foo]]_78 - Name: _[[BAR=]]_79 80## Check that it is possible to override a default macro value.81# RUN: yaml2obj --docnum=4 %s -o %t4.2 -DFOO=bar -DBAR=foo82# RUN: llvm-nm --no-sort %t4.2 | FileCheck %s --check-prefix=OVERRIDE-DEFAULT183 84# OVERRIDE-DEFAULT1: U _bar_85# OVERRIDE-DEFAULT1-NEXT: U _foo_86 87# RUN: yaml2obj --docnum=4 %s -o %t4.3 -DFOO=bar=foo -DBAR=foo=bar88# RUN: llvm-nm --no-sort %t4.3 | FileCheck %s --check-prefix=OVERRIDE-DEFAULT289 90# OVERRIDE-DEFAULT2: U _bar=foo_91# OVERRIDE-DEFAULT2-NEXT: U _foo=bar_92