summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2020-01-23 12:14:19 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2020-01-24 10:49:35 +0900
commit50925b64099df2021f7cdf652f7e807808cb1482 (patch)
tree1ead0d65019631e14a76e02ba2fb9b3555a605f6
parent3b9f36d6c6a4e02bf6c9bc99e953d5e558ee2fe6 (diff)
reroute musl unistd.h weirdness
Musl is (of course) not glibc. Its confstr(3) does not understand _CS_GNU_LIBC_VERSION. That's fair. Problem is, its unistd.h has that constant defined for unknown reason. We cannot blindly say the libc is glibc by looking at it. Instead we have to kick it, then see if it quacks like a duck. See https://git.musl-libc.org/cgit/musl/tree/include/unistd.h
-rw-r--r--test/ruby/test_m17n_comb.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/test/ruby/test_m17n_comb.rb b/test/ruby/test_m17n_comb.rb
index cfb8bff882..49141790f0 100644
--- a/test/ruby/test_m17n_comb.rb
+++ b/test/ruby/test_m17n_comb.rb
@@ -751,8 +751,14 @@ class TestM17NComb < Test::Unit::TestCase
# glibc 2.16 or later denies salt contained other than [0-9A-Za-z./] #7312
# we use this check to test strict and non-strict behavior separately #11045
strict_crypt = if defined? Etc::CS_GNU_LIBC_VERSION
- glibcver = Etc.confstr(Etc::CS_GNU_LIBC_VERSION).scan(/\d+/).map(&:to_i)
- (glibcver <=> [2, 16]) >= 0
+ begin
+ confstr = Etc.confstr(Etc::CS_GNU_LIBC_VERSION)
+ rescue Errno::EINVAL
+ false
+ else
+ glibcver = confstr.scan(/\d+/).map(&:to_i)
+ (glibcver <=> [2, 16]) >= 0
+ end
end
def test_str_crypt