Skip to content

Commit 1e6e972

Browse files
committed
dev: clean up verify_dll tests of native gem shared libraries
1 parent 94ecf99 commit 1e6e972

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

tasks/cross-ruby.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def dll_ref_versions
128128
require "rake_compiler_dock"
129129

130130
def verify_dll(dll, cross_ruby)
131-
dll_imports = cross_ruby.dlls
131+
expected_imports = cross_ruby.dlls.sort
132132
dump = `#{["env", "LANG=C", cross_ruby.tool("objdump"), "-p", dll].shelljoin}`
133133

134134
if cross_ruby.windows?
@@ -137,29 +137,29 @@ def verify_dll(dll, cross_ruby)
137137

138138
# Verify that the expected DLL dependencies match the actual dependencies
139139
# and that no further dependencies exist.
140-
dll_imports_is = dump.scan(/DLL Name: (.*)$/).map(&:first).map(&:downcase).uniq
141-
if dll_imports_is.sort != dll_imports.sort
142-
raise "unexpected dll imports #{dll_imports_is.inspect} in #{dll}"
140+
actual_imports = dump.scan(/DLL Name: (.*)$/).map(&:first).map(&:downcase).uniq.sort
141+
if actual_imports != expected_imports
142+
raise "unexpected so imports #{actual_imports.inspect} in #{dll} (expected #{expected_imports.inspect})"
143143
end
144144

145145
elsif cross_ruby.linux?
146146
# Verify that the expected so dependencies match the actual dependencies
147147
# and that no further dependencies exist.
148-
dll_imports_is = dump.scan(/NEEDED\s+(.*)/).map(&:first).uniq
149-
if dll_imports_is.sort != dll_imports.sort
150-
raise "unexpected so imports #{dll_imports_is.inspect} in #{dll} (expected #{dll_imports.inspect})"
148+
actual_imports = dump.scan(/NEEDED\s+(.*)/).map(&:first).uniq.sort
149+
if actual_imports != expected_imports
150+
raise "unexpected so imports #{actual_imports.inspect} in #{dll} (expected #{expected_imports.inspect})"
151151
end
152152

153153
# Verify that the expected so version requirements match the actual dependencies.
154-
dll_ref_versions_list = dump.scan(/0x[\da-f]+ 0x[\da-f]+ \d+ (\w+)_([\d\.]+)$/i)
154+
ref_versions_data = dump.scan(/0x[\da-f]+ 0x[\da-f]+ \d+ (\w+)_([\d\.]+)$/i)
155155
# Build a hash of library versions like {"LIBUDEV"=>"183", "GLIBC"=>"2.17"}
156-
dll_ref_versions_is = dll_ref_versions_list.each.with_object({}) do |(lib, ver), h|
156+
actual_ref_versions = ref_versions_data.each.with_object({}) do |(lib, ver), h|
157157
if !h[lib] || ver.split(".").map(&:to_i).pack("C*") > h[lib].split(".").map(&:to_i).pack("C*")
158158
h[lib] = ver
159159
end
160160
end
161-
if dll_ref_versions_is != cross_ruby.dll_ref_versions
162-
raise "unexpected so version requirements #{dll_ref_versions_is.inspect} in #{dll}"
161+
if actual_ref_versions != cross_ruby.dll_ref_versions
162+
raise "unexpected so version requirements #{actual_ref_versions.inspect} in #{dll}"
163163
end
164164

165165
elsif cross_ruby.darwin?

0 commit comments

Comments
 (0)