diff options
author | 卜部昌平 <shyouhei@ruby-lang.org> | 2020-01-23 12:14:19 +0900 |
---|---|---|
committer | 卜部昌平 <shyouhei@ruby-lang.org> | 2020-01-24 10:49:35 +0900 |
commit | 50925b64099df2021f7cdf652f7e807808cb1482 (patch) | |
tree | 1ead0d65019631e14a76e02ba2fb9b3555a605f6 /test | |
parent | 3b9f36d6c6a4e02bf6c9bc99e953d5e558ee2fe6 (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
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_m17n_comb.rb | 10 |
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 |