summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-ar
diff options
context:
space:
mode:
authorThomas Preud'homme <thomasp@graphcore.ai>2019-10-10 11:48:30 +0000
committerThomas Preud'homme <thomasp@graphcore.ai>2019-10-10 11:48:30 +0000
commitb6f1d1fa0e3ee0e25f22414bf97c05276b934507 (patch)
tree13cb7059c358cc1ee0ce0343b93fe7500d7efca1 /llvm/test/tools/llvm-ar
parent6430adbe647a1837c0476f2c9ecc1c0ef5cba14c (diff)
downloadbcm5719-llvm-b6f1d1fa0e3ee0e25f22414bf97c05276b934507.tar.gz
bcm5719-llvm-b6f1d1fa0e3ee0e25f22414bf97c05276b934507.zip
[test] Use system locale for mri-utf8.test
Summary: llvm-ar's mri-utf8.test test relies on the en_US.UTF-8 locale to be installed for its last RUN line to work. If not installed, the unicode string gets encoded (interpreted) as ascii which fails since the most significant byte is non zero. This commit changes the test to only rely on the system being able to encode the pound sign in its default encoding (e.g. UTF-16 for Microsoft Windows) by always opening the file via input/output redirection. This avoids forcing a given locale to be present and supported. A Byte Order Mark is also added to help recognizing the encoding of the file and its endianness. Reviewers: gbreynoo, MaskRay, rupprecht, JamesNagurne, jfb Subscribers: dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68472 llvm-svn: 374318
Diffstat (limited to 'llvm/test/tools/llvm-ar')
-rw-r--r--llvm/test/tools/llvm-ar/mri-nonascii.test22
-rw-r--r--llvm/test/tools/llvm-ar/mri-utf8.test23
2 files changed, 22 insertions, 23 deletions
diff --git a/llvm/test/tools/llvm-ar/mri-nonascii.test b/llvm/test/tools/llvm-ar/mri-nonascii.test
new file mode 100644
index 00000000000..7e92957e121
--- /dev/null
+++ b/llvm/test/tools/llvm-ar/mri-nonascii.test
@@ -0,0 +1,22 @@
+# Test non-ascii archive members
+# XFAIL: system-darwin
+
+RUN: rm -rf %t && mkdir -p %t/extracted
+
+# Note: lit's Python will read this UTF-8 encoded mri-nonascii.txt file,
+# decode it to unicode. The filename in the redirection below will then
+# be encoded in the system's filename encoding (e.g. UTF-16 for
+# Microsoft Windows).
+RUN: echo "contents" > %t/£.txt
+
+RUN: echo "CREATE %t/mri.ar" > %t/script.mri
+RUN: echo "ADDMOD %t/£.txt" >> %t/script.mri
+RUN: echo "SAVE" >> %t/script.mri
+
+RUN: llvm-ar -M < %t/script.mri
+RUN: cd %t/extracted && llvm-ar x %t/mri.ar
+
+# Same as above.
+RUN: FileCheck --strict-whitespace %s <£.txt
+CHECK:{{^}}
+CHECK-SAME:{{^}}contents{{$}}
diff --git a/llvm/test/tools/llvm-ar/mri-utf8.test b/llvm/test/tools/llvm-ar/mri-utf8.test
deleted file mode 100644
index e297dce8d8a..00000000000
--- a/llvm/test/tools/llvm-ar/mri-utf8.test
+++ /dev/null
@@ -1,23 +0,0 @@
-# Test non-ascii archive members
-# XFAIL: system-darwin
-
-RUN: rm -rf %t && mkdir -p %t/extracted
-
-RUN: echo "contents" > %t/£.txt
-
-RUN: echo "CREATE %t/mri.ar" > %t/script.mri
-RUN: echo "ADDMOD %t/£.txt" >> %t/script.mri
-RUN: echo "SAVE" >> %t/script.mri
-
-RUN: llvm-ar -M < %t/script.mri
-RUN: cd %t/extracted && llvm-ar x %t/mri.ar
-
-# This works around problems launching processess that
-# include arguments with non-ascii characters.
-# Python on Linux defaults to ASCII encoding unless the
-# environment specifies otherwise, so it is explicitly set.
-# The reliance the test has on this locale is not ideal,
-# however alternate solutions have been difficult due to
-# behaviour differences with python 2 vs python 3,
-# and linux vs windows.
-RUN: env LANG=en_US.UTF-8 %python -c "assert open(u'\U000000A3.txt', 'rb').read() == b'contents\n'"
OpenPOWER on IntegriCloud