[llvm] r273768 - llvm-ar: add some tests for llvm-ar default selection

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 24 20:05:57 PDT 2016


Author: compnerd
Date: Fri Jun 24 22:05:56 2016
New Revision: 273768

URL: http://llvm.org/viewvc/llvm-project?rev=273768&view=rev
Log:
llvm-ar: add some tests for llvm-ar default selection

This adds some tests for the smarter llvm-ar selection mode as well as some
additional tests as per Rafael's post commit review comments.

Added:
    llvm/trunk/test/tools/llvm-ar/
    llvm/trunk/test/tools/llvm-ar/Inputs/
    llvm/trunk/test/tools/llvm-ar/Inputs/coff.yaml
    llvm/trunk/test/tools/llvm-ar/Inputs/elf.yaml
    llvm/trunk/test/tools/llvm-ar/Inputs/macho.yaml
    llvm/trunk/test/tools/llvm-ar/default-add.test
    llvm/trunk/test/tools/llvm-ar/default-coff.test
    llvm/trunk/test/tools/llvm-ar/default-elf.test
    llvm/trunk/test/tools/llvm-ar/default-macho.test
    llvm/trunk/test/tools/llvm-ar/override.test

Added: llvm/trunk/test/tools/llvm-ar/Inputs/coff.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/Inputs/coff.yaml?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/Inputs/coff.yaml (added)
+++ llvm/trunk/test/tools/llvm-ar/Inputs/coff.yaml Fri Jun 24 22:05:56 2016
@@ -0,0 +1,55 @@
+---
+header:
+  Machine:         IMAGE_FILE_MACHINE_AMD64
+  Characteristics: [  ]
+sections:
+  - Name:            .text
+    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
+    Alignment:       4
+    SectionData:     ''
+  - Name:            .data
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
+    Alignment:       4
+    SectionData:     ''
+  - Name:            .bss
+    Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
+    Alignment:       4
+    SectionData:     ''
+symbols:
+  - Name:            .text
+    Value:           0
+    SectionNumber:   1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          0
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          1
+  - Name:            .data
+    Value:           0
+    SectionNumber:   2
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          0
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          2
+  - Name:            .bss
+    Value:           0
+    SectionNumber:   3
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          0
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          3
+...

Added: llvm/trunk/test/tools/llvm-ar/Inputs/elf.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/Inputs/elf.yaml?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/Inputs/elf.yaml (added)
+++ llvm/trunk/test/tools/llvm-ar/Inputs/elf.yaml Fri Jun 24 22:05:56 2016
@@ -0,0 +1,26 @@
+---
+FileHeader:
+  Class:           ELFCLASS64
+  Data:            ELFDATA2LSB
+  Type:            ET_REL
+  Machine:         EM_X86_64
+Sections:
+  - Name:            .text
+    Type:            SHT_PROGBITS
+    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
+    AddressAlign:    0x0000000000000004
+    Content:         ''
+  - Name:            .comment
+    Type:            SHT_PROGBITS
+    Flags:           [ SHF_MERGE, SHF_STRINGS ]
+    AddressAlign:    0x0000000000000001
+    Content:         00636C616E672076657273696F6E20332E392E3020287472756E6B203237333632342920286C6C766D2F7472756E6B203237333633362900
+  - Name:            .note.GNU-stack
+    Type:            SHT_PROGBITS
+    AddressAlign:    0x0000000000000001
+    Content:         ''
+Symbols:
+  Local:
+    - Name:            '-'
+      Type:            STT_FILE
+...

Added: llvm/trunk/test/tools/llvm-ar/Inputs/macho.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/Inputs/macho.yaml?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/Inputs/macho.yaml (added)
+++ llvm/trunk/test/tools/llvm-ar/Inputs/macho.yaml Fri Jun 24 22:05:56 2016
@@ -0,0 +1,45 @@
+--- !mach-o
+FileHeader:
+  magic:           0xFEEDFACF
+  cputype:         0x01000007
+  cpusubtype:      0x00000003
+  filetype:        0x00000001
+  ncmds:           1
+  sizeofcmds:      152
+  flags:           0x00002000
+  reserved:        0x00000000
+LoadCommands:
+  - cmd:             LC_SEGMENT_64
+    cmdsize:         152
+    segname:         ''
+    vmaddr:          0
+    vmsize:          0
+    fileoff:         184
+    filesize:        0
+    maxprot:         7
+    initprot:        7
+    nsects:          1
+    flags:           0
+    Sections:
+      - sectname:        __text
+        segname:         __TEXT
+        addr:            0x0000000000000000
+        size:            0
+        offset:          0x000000B8
+        align:           0
+        reloff:          0x00000000
+        nreloc:          0
+        flags:           0x80000000
+        reserved1:       0x00000000
+        reserved2:       0x00000000
+        reserved3:       0x00000000
+LinkEditData:
+  ExportTrie:
+    TerminalSize:    0
+    NodeOffset:      0
+    Name:            ''
+    Flags:           0x0000000000000000
+    Address:         0x0000000000000000
+    Other:           0x0000000000000000
+    ImportName:      ''
+...

Added: llvm/trunk/test/tools/llvm-ar/default-add.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/default-add.test?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/default-add.test (added)
+++ llvm/trunk/test/tools/llvm-ar/default-add.test Fri Jun 24 22:05:56 2016
@@ -0,0 +1,17 @@
+RUN: yaml2obj -format macho %S/Inputs/macho.yaml -o %t-macho.o
+RUN: yaml2obj -format coff %S/Inputs/coff.yaml -o %t-coff.o
+
+RUN: rm -f %t.ar
+RUN: llvm-ar crs %t.ar %t-macho.o
+RUN: grep -q __.SYMDEF %t.ar
+RUN: llvm-ar crs %t.ar %t-coff.o
+RUN: grep -q __.SYMDEF %t.ar
+
+RUN: rm -f %t.ar
+RUN: llvm-ar crs %t.ar %t-coff.o
+RUN: not grep -q __.SYMDEF %t.ar
+RUN: llvm-ar crs %t.ar %t-macho.o
+RUN: not grep -q __.SYMDEF %t.ar
+
+Ensure that we select the existing format when updating.
+

Added: llvm/trunk/test/tools/llvm-ar/default-coff.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/default-coff.test?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/default-coff.test (added)
+++ llvm/trunk/test/tools/llvm-ar/default-coff.test Fri Jun 24 22:05:56 2016
@@ -0,0 +1,10 @@
+RUN: yaml2obj -format coff %S/Inputs/coff.yaml -o %t.obj
+
+RUN: rm -f %t.ar
+RUN: llvm-ar crs %t.ar %t.obj
+RUN: not grep -q __.SYMDEF %t.ar
+
+Ensure that we generate a GNU style archive for COFF by default.  The GNU linker
+expects that it will be in GNU format.  The lib format on Windows is compatible
+with the GNU format.
+

Added: llvm/trunk/test/tools/llvm-ar/default-elf.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/default-elf.test?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/default-elf.test (added)
+++ llvm/trunk/test/tools/llvm-ar/default-elf.test Fri Jun 24 22:05:56 2016
@@ -0,0 +1,9 @@
+RUN: yaml2obj -format elf %S/Inputs/elf.yaml -o %t.o
+
+RUN: rm -f %t.ar
+RUN: llvm-ar crs %t.ar %t.o
+RUN: not grep -q __.SYMDEF %t.ar
+
+Ensure that we generate a GNU style archive for ELF by default.  The GNU linker
+expects that it will be in GNU format.
+

Added: llvm/trunk/test/tools/llvm-ar/default-macho.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/default-macho.test?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/default-macho.test (added)
+++ llvm/trunk/test/tools/llvm-ar/default-macho.test Fri Jun 24 22:05:56 2016
@@ -0,0 +1,9 @@
+RUN: yaml2obj -format macho %S/Inputs/macho.yaml -o %t.o
+
+RUN: rm -f %t.ar
+RUN: llvm-ar crs %t.ar %t.o
+RUN: grep -q __.SYMDEF %t.ar
+
+Ensure that we generate a BSD style archive for MachO by default.  ld64 expects
+that it will be in BSD format.
+

Added: llvm/trunk/test/tools/llvm-ar/override.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/override.test?rev=273768&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-ar/override.test (added)
+++ llvm/trunk/test/tools/llvm-ar/override.test Fri Jun 24 22:05:56 2016
@@ -0,0 +1,8 @@
+RUN: yaml2obj -format macho %S/Inputs/macho.yaml -o %t.o
+
+RUN: rm -f %t.ar
+RUN: llvm-ar -format gnu crs %t.ar %t.o
+RUN: not grep -q __.SYMDEF %t.ar
+
+Ensure that we honour a specific request
+




More information about the llvm-commits mailing list