diff --git a/ChangeLog b/ChangeLog index 7ee5b5a75d..2057e02b25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sun May 18 16:42:08 2014 Tanaka Akira + + * test/ruby/test_m17n_comb.rb (test_str_crypt): Use Etc.confstr to + detect the glibc version. + libc.so is not an executable on Debian GNU/kFreeBSD 7.0 (wheezy). + Sun May 18 12:15:54 2014 Jonathan Mukai-Heidt * io.c (argf_each_line, argf_inplace_mode_set): [DOC] Update ARGF diff --git a/test/ruby/test_m17n_comb.rb b/test/ruby/test_m17n_comb.rb index ee43c746f8..8258f422a1 100644 --- a/test/ruby/test_m17n_comb.rb +++ b/test/ruby/test_m17n_comb.rb @@ -1,4 +1,5 @@ require 'test/unit' +require 'etc' require_relative 'allpairs' class TestM17NComb < Test::Unit::TestCase @@ -724,12 +725,11 @@ class TestM17NComb < Test::Unit::TestCase end def test_str_crypt - begin - # glibc 2.16 or later denies salt contained other than [0-9A-Za-z./] #7312 - glibcpath = `ldd #{RbConfig.ruby}`[/\S+\/libc.so\S+/] - glibcver = `#{glibcpath}`[/\AGNU C Library.*version ([0-9.]+)/, 1].split('.').map(&:to_i) - strict_crypt = (glibcver <=> [2, 16]) > -1 - rescue + strict_crypt = nil + # glibc 2.16 or later denies salt contained other than [0-9A-Za-z./] #7312 + if defined? Etc::Etc::CS_GNU_LIBC_VERSION + glibcver = Etc.confstr(Etc::CS_GNU_LIBC_VERSION).scan(/\d+/).map(&:to_i) + strict_crypt = (glibcver <=> [2, 16]) >= 0 end combination(STRINGS, STRINGS) {|str, salt|