<div dir="ltr">mri-utf8.test still fails on Mac:<div><a href="http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental/62839/consoleFull#426907251d489585b-5106-414a-ac11-3ff90657619c">http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental/62839/consoleFull#426907251d489585b-5106-414a-ac11-3ff90657619c</a>  </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 3, 2019 at 6:47 AM Owen Reynolds via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: gbreynoo<br>
Date: Wed Jul  3 06:47:29 2019<br>
New Revision: 365039<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=365039&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=365039&view=rev</a><br>
Log:<br>
[llvm-ar][test] Add to MRI test coverage<br>
<br>
This reapplies 363232 that was reverted due to a buildbot test failure, this build bot has now been fixed.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D63197" rel="noreferrer" target="_blank">https://reviews.llvm.org/D63197</a><br>
<br>
Added:<br>
    llvm/trunk/test/tools/llvm-ar/mri-addlib.test<br>
    llvm/trunk/test/tools/llvm-ar/mri-addmod.test<br>
    llvm/trunk/test/tools/llvm-ar/mri-comments.test<br>
    llvm/trunk/test/tools/llvm-ar/mri-end.test<br>
    llvm/trunk/test/tools/llvm-ar/mri-utf8.test<br>
<br>
Added: llvm/trunk/test/tools/llvm-ar/mri-addlib.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-addlib.test?rev=365039&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-addlib.test?rev=365039&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-ar/mri-addlib.test (added)<br>
+++ llvm/trunk/test/tools/llvm-ar/mri-addlib.test Wed Jul  3 06:47:29 2019<br>
@@ -0,0 +1,45 @@<br>
+## Test the ADDLIB MRI command.<br>
+<br>
+# RUN: rm -rf %t && mkdir -p %t<br>
+# RUN: yaml2obj %s -o %t/f.o<br>
+# RUN: llvm-ar r %t/f.a %t/f.o<br>
+<br>
+## Merge contents of archives.<br>
+# RUN: echo "CREATE %t/addlib.a" > %t/addlib.mri<br>
+# RUN: echo "ADDLIB %t/f.a" >> %t/addlib.mri<br>
+# RUN: echo "SAVE" >> %t/addlib.mri<br>
+# RUN: llvm-ar -M < %t/addlib.mri<br>
+# RUN: llvm-nm --print-armap %t/addlib.a | FileCheck --check-prefix=SYMS %s<br>
+# RUN: llvm-ar t %t/addlib.a | FileCheck --check-prefix=FILES %s<br>
+<br>
+# SYMS: f in {{.*}}<br>
+# FILES: f.o<br>
+<br>
+## ADDLIB with non-archive file.<br>
+# RUN: echo "CREATE %t/badlib.a" > %t/badlib.mri<br>
+# RUN: echo "ADDLIB %s" >> %t/badlib.mri<br>
+# RUN: echo "SAVE" >> %t/badlib.mri<br>
+# RUN: not llvm-ar -M < %t/badlib.mri 2>&1 | FileCheck --check-prefix=PARSE %s<br>
+# RUN: not ls %t/badlib.a<br>
+<br>
+# PARSE: Could not parse library<br>
+<br>
+## No create command.<br>
+# RUN: echo "ADDLIB %t/f.a"  > %t/nocreate.mri<br>
+# RUN: echo "SAVE" >> %t/nocreate.mri<br>
+# RUN: not llvm-ar -M < %t/nocreate.mri<br>
+<br>
+--- !ELF<br>
+FileHeader:<br>
+  Class:   ELFCLASS64<br>
+  Data:    ELFDATA2LSB<br>
+  Type:    ET_REL<br>
+  Machine: EM_X86_64<br>
+Sections:<br>
+  - Name: .text<br>
+    Type: SHT_PROGBITS<br>
+Symbols:<br>
+    - Name:    f<br>
+      Binding: STB_GLOBAL<br>
+      Section: .text<br>
+...<br>
<br>
Added: llvm/trunk/test/tools/llvm-ar/mri-addmod.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-addmod.test?rev=365039&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-addmod.test?rev=365039&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-ar/mri-addmod.test (added)<br>
+++ llvm/trunk/test/tools/llvm-ar/mri-addmod.test Wed Jul  3 06:47:29 2019<br>
@@ -0,0 +1,27 @@<br>
+## Test the ADDMOD MRI command.<br>
+<br>
+# RUN: rm -rf %t && mkdir -p %t<br>
+# RUN: yaml2obj %s -o %t/f.o<br>
+<br>
+# RUN: echo "CREATE %t/addmod.a" > %t/addmod.mri<br>
+# RUN: echo "ADDMOD %t/f.o" >> %t/addmod.mri<br>
+# RUN: echo "SAVE" >> %t/addmod.mri<br>
+# RUN: llvm-ar -M < %t/addmod.mri<br>
+# RUN: llvm-nm --print-armap %t/addmod.a | FileCheck %s<br>
+<br>
+# CHECK: f in f.o<br>
+<br>
+--- !ELF<br>
+FileHeader:<br>
+  Class:   ELFCLASS64<br>
+  Data:    ELFDATA2LSB<br>
+  Type:    ET_REL<br>
+  Machine: EM_X86_64<br>
+Sections:<br>
+  - Name: .text<br>
+    Type: SHT_PROGBITS<br>
+Symbols:<br>
+    - Name:    f<br>
+      Binding: STB_GLOBAL<br>
+      Section: .text<br>
+...<br>
<br>
Added: llvm/trunk/test/tools/llvm-ar/mri-comments.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-comments.test?rev=365039&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-comments.test?rev=365039&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-ar/mri-comments.test (added)<br>
+++ llvm/trunk/test/tools/llvm-ar/mri-comments.test Wed Jul  3 06:47:29 2019<br>
@@ -0,0 +1,19 @@<br>
+# Test different MRI comment formats and white space.<br>
+<br>
+RUN: rm -rf %t && mkdir -p %t<br>
+RUN: yaml2obj %S/Inputs/elf.yaml -o %t/elf.o<br>
+<br>
+RUN: echo "create %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a>;comment" > %t/script.mri<br>
+RUN: echo "addmod %t/elf.o * comment" >> %t/script.mri<br>
+RUN: echo "; comment" >> %t/script.mri<br>
+RUN: echo " ;comment" >> %t/script.mri<br>
+RUN: echo "* comment" >> %t/script.mri<br>
+RUN: echo " *comment" >> %t/script.mri<br>
+RUN: echo "" >> %t/script.mri<br>
+RUN: echo " " >> %t/script.mri<br>
+RUN: echo " save" >> %t/script.mri<br>
+<br>
+RUN: llvm-ar -M < %t/script.mri<br>
+RUN: llvm-ar t %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a> | FileCheck %s<br>
+<br>
+CHECK: elf.o<br>
<br>
Added: llvm/trunk/test/tools/llvm-ar/mri-end.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-end.test?rev=365039&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-end.test?rev=365039&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-ar/mri-end.test (added)<br>
+++ llvm/trunk/test/tools/llvm-ar/mri-end.test Wed Jul  3 06:47:29 2019<br>
@@ -0,0 +1,48 @@<br>
+# The END MRI command is optional. Scripts that omit<br>
+# or include END should be handled by llvm-ar.<br>
+RUN: rm -rf %t && mkdir -p %t<br>
+<br>
+# Empty File<br>
+RUN: yaml2obj %S/Inputs/elf.yaml -o %t/elf.o<br>
+<br>
+RUN: touch %t/empty.mri<br>
+RUN: llvm-ar -M < %t/empty.mri<br>
+<br>
+RUN: echo "END" > %t/empty-end.mri<br>
+RUN: llvm-ar -M < %t/empty-end.mri<br>
+<br>
+# Comment only<br>
+RUN: echo "; a comment" > %t/comment.mri<br>
+RUN: llvm-ar -M < %t/comment.mri<br>
+<br>
+RUN: echo "; a comment" > %t/comment-end.mri<br>
+RUN: echo "END" > %t/comment-end.mri<br>
+RUN: llvm-ar -M < %t/comment-end.mri<br>
+<br>
+# Without Save<br>
+RUN: echo "create %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a>" > %t/no-save.mri<br>
+RUN: echo "addmod %t/elf.o" >> %t/no-save.mri<br>
+RUN: llvm-ar -M < %t/no-save.mri<br>
+RUN: test ! -e %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a><br>
+<br>
+RUN: echo "create %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a>" > %t/no-save-end.mri<br>
+RUN: echo "addmod %t/elf.o" >> %t/no-save-end.mri<br>
+RUN: echo "END" > %t/no-save-end.mri<br>
+RUN: llvm-ar -M < %t/no-save-end.mri<br>
+RUN: test ! -e %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a><br>
+<br>
+# With Save<br>
+RUN: echo "create %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a>" > %t/save.mri<br>
+RUN: echo "addmod %t/elf.o" >> %t/save.mri<br>
+RUN: echo "save" >> %t/save.mri<br>
+RUN: llvm-ar -M < %t/save.mri<br>
+RUN: llvm-ar t %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a> | FileCheck %s<br>
+<br>
+RUN: echo "create %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a>" > %t/save-end.mri<br>
+RUN: echo "addmod %t/elf.o" >> %t/save-end.mri<br>
+RUN: echo "save" >> %t/save-end.mri<br>
+RUN: echo "END" > %t/no-save-end.mri<br>
+RUN: llvm-ar -M < %t/save-end.mri<br>
+RUN: llvm-ar t %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a> | FileCheck %s<br>
+<br>
+CHECK: elf.o<br>
<br>
Added: llvm/trunk/test/tools/llvm-ar/mri-utf8.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-utf8.test?rev=365039&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-ar/mri-utf8.test?rev=365039&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-ar/mri-utf8.test (added)<br>
+++ llvm/trunk/test/tools/llvm-ar/mri-utf8.test Wed Jul  3 06:47:29 2019<br>
@@ -0,0 +1,18 @@<br>
+# Test non-ascii archive members<br>
+<br>
+RUN: rm -rf %t && mkdir -p %t/extracted<br>
+<br>
+RUN: echo "contents" > %t/£.txt<br>
+<br>
+RUN: echo "CREATE %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a>" > %t/script.mri<br>
+RUN: echo "ADDMOD %t/£.txt" >> %t/script.mri<br>
+RUN: echo "SAVE" >> %t/script.mri<br>
+<br>
+RUN: llvm-ar -M < %t/script.mri<br>
+RUN: cd %t/extracted && llvm-ar x %t/<a href="http://mri.ar" rel="noreferrer" target="_blank">mri.ar</a><br>
+<br>
+# This works around problems launching processess that<br>
+# include arguments with non-ascii characters.<br>
+# Python on Linux defaults to ASCII encoding unless the<br>
+# environment specifies otherwise, so it is explicitly set.<br>
+RUN: env LANG=en_US.UTF-8 %python -c "assert open(u'\U000000A3.txt', 'rb').read() == b'contents\n'"<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>