Skip to content

Commit 8ce8ee6

Browse files
author
Dmitry Pogrebnoy
committed
RUBY-32905 Add basic test for deducing source dir mechanism
1 parent 8eae400 commit 8ce8ee6

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

debase-ruby_core_source.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ Gem::Specification.new do |s|
1818
s.add_development_dependency "archive-tar-minitar", ">= 0.5.2"
1919
s.add_development_dependency 'rake', '>= 0.9.2'
2020
s.add_development_dependency 'minitar-cli'
21+
s.add_development_dependency('test-unit', '~> 3.6.7')
2122
end

lib/debase/ruby_core_source.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
module Debase
55
module RubyCoreSource
6+
MOCK_RUBY_VERSION_KEY = "MOCK_RUBY_VERSION"
7+
68
REVISION_MAP = {
79
# Add pre-release version here since they do not have patchlevel to refer to.
810
# Revision can be found at `revision.h` of ruby sources.
@@ -54,7 +56,7 @@ def self.deduce_packaged_source_dir(ruby_dir)
5456
expected_directory
5557
else
5658
# Fallback to an older version.
57-
ruby_version = Gem::Version.new(RUBY_VERSION)
59+
ruby_version = Gem::Version.new(ENV[MOCK_RUBY_VERSION_KEY] || RUBY_VERSION)
5860
path, = Dir.glob(prefix + 'ruby-*').
5961
select { |d| File.directory?(d) }.
6062
map { |d| [d, ruby_source_dir_version(d)] }.

test/deduce_source_dir_test.rb

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# frozen_string_literal: true
2+
3+
DIR_NAME = File.dirname(__FILE__)
4+
$:.unshift File.join(DIR_NAME, "..", "lib")
5+
6+
require 'test/unit'
7+
require 'debase/ruby_core_source'
8+
9+
class DeduceSourceDirTest < Test::Unit::TestCase
10+
11+
def test_deduce_source_dir
12+
version_to_answer = {
13+
"3.4.1" => "ruby-3.4.0-p-1",
14+
"3.4.0" => "ruby-3.4.0-p-1",
15+
"3.3.6" => "ruby-3.3.5-p100",
16+
"3.3.5" => "ruby-3.3.5-p100",
17+
"3.3.4" => "ruby-3.3.0-p0",
18+
"3.3.3" => "ruby-3.3.0-p0",
19+
"3.2.6" => "ruby-3.2.0-p0",
20+
"3.1.6" => "ruby-3.1.0-p0",
21+
"3.0.7" => "ruby-3.0.0-p0",
22+
}
23+
24+
version_to_answer.each do |version, answer|
25+
ENV[Debase::RubyCoreSource::MOCK_RUBY_VERSION_KEY] = version
26+
result = Debase::RubyCoreSource.deduce_packaged_source_dir(version)
27+
deduced_source_dir_name = result.split(File::SEPARATOR).last
28+
assert_equal(answer, deduced_source_dir_name)
29+
end
30+
end
31+
end

0 commit comments

Comments
 (0)