diff options
author | David L. Jones <dlj@google.com> | 2017-11-15 01:40:05 +0000 |
---|---|---|
committer | David L. Jones <dlj@google.com> | 2017-11-15 01:40:05 +0000 |
commit | d5c2cca72463233df77a065f201db31b140eb44d (patch) | |
tree | 3f9a978131033302a58b7db7db1ecf2a4622bad2 /test/tools/llvm-lib | |
parent | ce7676b8db6bac096dad4c4ad62e9e6bb8aa1064 (diff) | |
parent | dcf64df89bc6d775e266ebd6b0134d135f47a35b (diff) | |
download | llvm-testing.tar.gz |
Creating branches/google/testing and tags/google/testing/2017-11-14 from r317716testing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/google/testing@318248 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/tools/llvm-lib')
-rw-r--r-- | test/tools/llvm-lib/Inputs/a.s | 2 | ||||
-rw-r--r-- | test/tools/llvm-lib/Inputs/b.s | 2 | ||||
-rwxr-xr-x | test/tools/llvm-lib/Inputs/cl-gl.obj | bin | 0 -> 3734 bytes | |||
-rw-r--r-- | test/tools/llvm-lib/Inputs/resource.res | bin | 0 -> 108 bytes | |||
-rw-r--r-- | test/tools/llvm-lib/infer-output-path.test | 16 | ||||
-rw-r--r-- | test/tools/llvm-lib/invalid.test | 2 | ||||
-rw-r--r-- | test/tools/llvm-lib/libpath.test | 15 | ||||
-rw-r--r-- | test/tools/llvm-lib/lit.local.cfg | 3 | ||||
-rw-r--r-- | test/tools/llvm-lib/no-inputs.test | 2 | ||||
-rw-r--r-- | test/tools/llvm-lib/resource.test | 3 | ||||
-rw-r--r-- | test/tools/llvm-lib/thin.test | 9 | ||||
-rw-r--r-- | test/tools/llvm-lib/use-paths.test | 24 |
12 files changed, 78 insertions, 0 deletions
diff --git a/test/tools/llvm-lib/Inputs/a.s b/test/tools/llvm-lib/Inputs/a.s new file mode 100644 index 000000000000..88258e2797fa --- /dev/null +++ b/test/tools/llvm-lib/Inputs/a.s @@ -0,0 +1,2 @@ +.globl a +a: diff --git a/test/tools/llvm-lib/Inputs/b.s b/test/tools/llvm-lib/Inputs/b.s new file mode 100644 index 000000000000..4890c9247c74 --- /dev/null +++ b/test/tools/llvm-lib/Inputs/b.s @@ -0,0 +1,2 @@ +.globl b +b: diff --git a/test/tools/llvm-lib/Inputs/cl-gl.obj b/test/tools/llvm-lib/Inputs/cl-gl.obj Binary files differnew file mode 100755 index 000000000000..ff746557d412 --- /dev/null +++ b/test/tools/llvm-lib/Inputs/cl-gl.obj diff --git a/test/tools/llvm-lib/Inputs/resource.res b/test/tools/llvm-lib/Inputs/resource.res Binary files differnew file mode 100644 index 000000000000..f1c799fbbb08 --- /dev/null +++ b/test/tools/llvm-lib/Inputs/resource.res diff --git a/test/tools/llvm-lib/infer-output-path.test b/test/tools/llvm-lib/infer-output-path.test new file mode 100644 index 000000000000..c63b0abdf6e2 --- /dev/null +++ b/test/tools/llvm-lib/infer-output-path.test @@ -0,0 +1,16 @@ +RUN: rm -rf %t && mkdir -p %t +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o %t/a.obj %S/Inputs/a.s +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o %t/b.o %S/Inputs/b.s +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o %t/c %S/Inputs/b.s + +RUN: rm -f %t/a.lib +RUN: llvm-lib %t/a.obj +RUN: test -e %t/a.lib + +RUN: rm -f %t/b.lib +RUN: llvm-lib /libpath:%t b.o +RUN: test -e %t/b.lib + +RUN: rm -f %t/c.lib +RUN: llvm-lib /libpath:%t c +RUN: test -e %t/c.lib diff --git a/test/tools/llvm-lib/invalid.test b/test/tools/llvm-lib/invalid.test new file mode 100644 index 000000000000..2978177a431e --- /dev/null +++ b/test/tools/llvm-lib/invalid.test @@ -0,0 +1,2 @@ +RUN: not llvm-lib %S/Inputs/cl-gl.obj 2>&1 | FileCheck %s +CHECK: not a COFF object, bitcode or resource file diff --git a/test/tools/llvm-lib/libpath.test b/test/tools/llvm-lib/libpath.test new file mode 100644 index 000000000000..26a1e8dc8b61 --- /dev/null +++ b/test/tools/llvm-lib/libpath.test @@ -0,0 +1,15 @@ +RUN: mkdir -p %t/a %t/b +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o %t/a/foo.obj %S/Inputs/a.s +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o %t/b/foo.obj %S/Inputs/b.s + +RUN: env "LIB=%t/a;%t/b" llvm-lib /out:%t1.lib foo.obj +RUN: llvm-nm %t1.lib | FileCheck --check-prefix=A %s + +RUN: llvm-lib /out:%t2.lib /libpath:%t/a /libpath:%t/b foo.obj +RUN: llvm-nm %t2.lib | FileCheck --check-prefix=A %s + +RUN: env LIB=%t/a llvm-lib /libpath:%t/b /out:%t3.lib foo.obj +RUN: llvm-nm %t3.lib | FileCheck --check-prefix=B %s + +A: T a +B: T b diff --git a/test/tools/llvm-lib/lit.local.cfg b/test/tools/llvm-lib/lit.local.cfg new file mode 100644 index 000000000000..e71f3cc4c41e --- /dev/null +++ b/test/tools/llvm-lib/lit.local.cfg @@ -0,0 +1,3 @@ +if not 'X86' in config.root.targets: + config.unsupported = True + diff --git a/test/tools/llvm-lib/no-inputs.test b/test/tools/llvm-lib/no-inputs.test new file mode 100644 index 000000000000..95d6555d58c6 --- /dev/null +++ b/test/tools/llvm-lib/no-inputs.test @@ -0,0 +1,2 @@ +RUN: llvm-lib -out:%t.a +RUN: test ! -e %t.a diff --git a/test/tools/llvm-lib/resource.test b/test/tools/llvm-lib/resource.test new file mode 100644 index 000000000000..6c3dad50b450 --- /dev/null +++ b/test/tools/llvm-lib/resource.test @@ -0,0 +1,3 @@ +RUN: llvm-lib /out:%t %S/Inputs/resource.res +RUN: llvm-ar t %t | FileCheck %s +CHECK: resource.res diff --git a/test/tools/llvm-lib/thin.test b/test/tools/llvm-lib/thin.test new file mode 100644 index 000000000000..c401de41a800 --- /dev/null +++ b/test/tools/llvm-lib/thin.test @@ -0,0 +1,9 @@ +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o %t %S/Inputs/a.s + +RUN: llvm-lib -out:%t.a %t +RUN: FileCheck --check-prefix=FAT %s < %t.a +FAT: !<arch> + +RUN: llvm-lib -out:%t.thin.a -llvmlibthin %t +RUN: FileCheck --check-prefix=THIN %s < %t.thin.a +THIN: !<thin> diff --git a/test/tools/llvm-lib/use-paths.test b/test/tools/llvm-lib/use-paths.test new file mode 100644 index 000000000000..971c216127e6 --- /dev/null +++ b/test/tools/llvm-lib/use-paths.test @@ -0,0 +1,24 @@ +llvm-lib should behave like "link.exe /lib" and use relative paths to describe +archive members. + +First, get in a clean working directory. +RUN: rm -rf %t && mkdir -p %t && cd %t + +Make foo/a.obj and foo/b.obj. +RUN: mkdir foo +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o foo/a.obj %S/Inputs/a.s +RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o foo/b.obj %S/Inputs/b.s + +RUN: llvm-lib -out:foo.lib foo/a.obj foo/b.obj +RUN: llvm-ar t foo.lib | FileCheck %s + +FIXME: We should probably use backslashes on Windows to better match MSVC tools. +CHECK: foo/a.obj +CHECK: foo/b.obj + +Do it again with absolute paths and see that we get something. +RUN: llvm-lib -out:foo.lib %t/foo/a.obj %t/foo/b.obj +RUN: llvm-ar t foo.lib | FileCheck %s --check-prefix=ABS + +ABS: {{.*}}/foo/a.obj +ABS: {{.*}}/foo/b.obj |