Skip to content

Commit e90c39a

Browse files
committed
chore: Switch to Minitest for primary tests
Signed-off-by: Austin Ziegler <austin@zieglers.ca>
1 parent c6abce6 commit e90c39a

110 files changed

Lines changed: 2242 additions & 268 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
with:
3838
persist-credentials: false
3939

40-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
40+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
4141
with:
4242
ruby-version: '3.4'
4343
rubygems: latest
@@ -71,7 +71,7 @@ jobs:
7171
with:
7272
persist-credentials: false
7373

74-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
74+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
7575
with:
7676
ruby-version: '3.4'
7777
rubygems: latest
@@ -120,7 +120,7 @@ jobs:
120120
with:
121121
persist-credentials: false
122122

123-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
123+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
124124
with:
125125
ruby-version: ${{ matrix.ruby }}
126126
rubygems: latest
@@ -167,7 +167,7 @@ jobs:
167167
with:
168168
persist-credentials: false
169169

170-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
170+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
171171
with:
172172
ruby-version: ${{ matrix.ruby }}
173173
rubygems: latest
@@ -216,7 +216,7 @@ jobs:
216216
with:
217217
persist-credentials: false
218218

219-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
219+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
220220
with:
221221
ruby-version: ${{ matrix.ruby }}
222222
rubygems: latest
@@ -262,7 +262,7 @@ jobs:
262262
with:
263263
persist-credentials: false
264264

265-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
265+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
266266
with:
267267
ruby-version: ${{ matrix.ruby }}
268268
rubygems: latest
@@ -308,7 +308,7 @@ jobs:
308308
with:
309309
persist-credentials: false
310310

311-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
311+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
312312
with:
313313
ruby-version: ${{ matrix.ruby }}
314314
rubygems: latest

.github/workflows/dco-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ jobs:
2727
api.github.com:443
2828
github.com:443
2929
30-
- uses: KineticCafe/actions-dco@76b7fc30ff5988e68d01ea07deeaf7e71256598f # v2.1.0
30+
- uses: KineticCafe/actions-dco@6e1652ef3027ce128e65e6edd215ae053350bd16 # v2.1.1

.github/workflows/publish-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
'print "version=", Gem::Specification.load(ARGV[0]).rubygems_version, "\n"' \
3939
diff-lcs.gemspec >>"${GITHUB_OUTPUT}"
4040
41-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
41+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
4242
with:
4343
bundler-cache: false
4444
ruby-version: ruby

.github/workflows/publish-gem.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
'print "version=", Gem::Specification.load(ARGV[0]).rubygems_version, "\n"' \
6666
diff-lcs.gemspec >>"${GITHUB_OUTPUT}"
6767
68-
- uses: ruby/setup-ruby@8a836efbcebe5de0fe86b48a775b7a31b5c70c93 # v1.277.0
68+
- uses: ruby/setup-ruby@675dd7ba1b06c8786a1480d89c384f5620a42647 # v1.281.0
6969
with:
7070
bundler-cache: false
7171
ruby-version: ruby

.github/zizmor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
rules:
22
artipacked:
33
ignore:
4-
- publish-gem.yml:53 # publish-gem adds and pushes a tag.
4+
- publish-gem.yml:58 # publish-gem adds and pushes a tag.

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ This release has significant **breaking changes**.
3535
Most callers are using `Diff::LCS.lcs` and modern Ruby did-you-mean support
3636
should assist with this update.
3737

38+
- `Diff::LCS::Change` objects implemented the comparison operator (`<=>`)
39+
incorrectly. Comparisons are now done so that the `position` is compared
40+
first, then the `action` (by index of `VALID_ACTIONS`), and finally the
41+
element. `Diff::LCS::ContextChange` works similarly, comparing the old and new
42+
positions prior to comparing the actions by index.
43+
44+
The order of `VALID_ACTIONS` was changed for the index order to make sense.
45+
3846
## 1.6.2 / 2025-05-12
3947

4048
- Handle upcoming changes to the `cgi` gem in Ruby 3.5 ([#147][pull-147])

Manifest.txt

Lines changed: 81 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -24,76 +24,6 @@ licenses/artistic.txt
2424
licenses/dco.txt
2525
spec/change_spec.rb
2626
spec/diff_spec.rb
27-
spec/fixtures/123_x
28-
spec/fixtures/456_x
29-
spec/fixtures/aX
30-
spec/fixtures/bXaX
31-
spec/fixtures/ds1.csv
32-
spec/fixtures/ds2.csv
33-
spec/fixtures/empty
34-
spec/fixtures/file1.bin
35-
spec/fixtures/file2.bin
36-
spec/fixtures/four_lines
37-
spec/fixtures/four_lines_with_missing_new_line
38-
spec/fixtures/ldiff/diff.missing_new_line1-e
39-
spec/fixtures/ldiff/diff.missing_new_line1-f
40-
spec/fixtures/ldiff/diff.missing_new_line2-e
41-
spec/fixtures/ldiff/diff.missing_new_line2-f
42-
spec/fixtures/ldiff/error.diff.chef-e
43-
spec/fixtures/ldiff/error.diff.chef-f
44-
spec/fixtures/ldiff/error.diff.missing_new_line1-e
45-
spec/fixtures/ldiff/error.diff.missing_new_line1-f
46-
spec/fixtures/ldiff/error.diff.missing_new_line2-e
47-
spec/fixtures/ldiff/error.diff.missing_new_line2-f
48-
spec/fixtures/ldiff/output.diff
49-
spec/fixtures/ldiff/output.diff-c
50-
spec/fixtures/ldiff/output.diff-u
51-
spec/fixtures/ldiff/output.diff.bin1
52-
spec/fixtures/ldiff/output.diff.bin1-c
53-
spec/fixtures/ldiff/output.diff.bin1-e
54-
spec/fixtures/ldiff/output.diff.bin1-f
55-
spec/fixtures/ldiff/output.diff.bin1-u
56-
spec/fixtures/ldiff/output.diff.bin2
57-
spec/fixtures/ldiff/output.diff.bin2-c
58-
spec/fixtures/ldiff/output.diff.bin2-e
59-
spec/fixtures/ldiff/output.diff.bin2-f
60-
spec/fixtures/ldiff/output.diff.bin2-u
61-
spec/fixtures/ldiff/output.diff.chef
62-
spec/fixtures/ldiff/output.diff.chef-c
63-
spec/fixtures/ldiff/output.diff.chef-u
64-
spec/fixtures/ldiff/output.diff.chef2
65-
spec/fixtures/ldiff/output.diff.chef2-c
66-
spec/fixtures/ldiff/output.diff.chef2-d
67-
spec/fixtures/ldiff/output.diff.chef2-u
68-
spec/fixtures/ldiff/output.diff.empty.vs.four_lines
69-
spec/fixtures/ldiff/output.diff.empty.vs.four_lines-c
70-
spec/fixtures/ldiff/output.diff.empty.vs.four_lines-e
71-
spec/fixtures/ldiff/output.diff.empty.vs.four_lines-f
72-
spec/fixtures/ldiff/output.diff.empty.vs.four_lines-u
73-
spec/fixtures/ldiff/output.diff.four_lines.vs.empty
74-
spec/fixtures/ldiff/output.diff.four_lines.vs.empty-c
75-
spec/fixtures/ldiff/output.diff.four_lines.vs.empty-e
76-
spec/fixtures/ldiff/output.diff.four_lines.vs.empty-f
77-
spec/fixtures/ldiff/output.diff.four_lines.vs.empty-u
78-
spec/fixtures/ldiff/output.diff.issue95_trailing_context
79-
spec/fixtures/ldiff/output.diff.issue95_trailing_context-c
80-
spec/fixtures/ldiff/output.diff.issue95_trailing_context-e
81-
spec/fixtures/ldiff/output.diff.issue95_trailing_context-f
82-
spec/fixtures/ldiff/output.diff.issue95_trailing_context-u
83-
spec/fixtures/ldiff/output.diff.missing_new_line1
84-
spec/fixtures/ldiff/output.diff.missing_new_line1-c
85-
spec/fixtures/ldiff/output.diff.missing_new_line1-e
86-
spec/fixtures/ldiff/output.diff.missing_new_line1-f
87-
spec/fixtures/ldiff/output.diff.missing_new_line1-u
88-
spec/fixtures/ldiff/output.diff.missing_new_line2
89-
spec/fixtures/ldiff/output.diff.missing_new_line2-c
90-
spec/fixtures/ldiff/output.diff.missing_new_line2-e
91-
spec/fixtures/ldiff/output.diff.missing_new_line2-f
92-
spec/fixtures/ldiff/output.diff.missing_new_line2-u
93-
spec/fixtures/new-chef
94-
spec/fixtures/new-chef2
95-
spec/fixtures/old-chef
96-
spec/fixtures/old-chef2
9727
spec/hunk_spec.rb
9828
spec/issues_spec.rb
9929
spec/lcs_spec.rb
@@ -103,3 +33,84 @@ spec/sdiff_spec.rb
10333
spec/spec_helper.rb
10434
spec/traverse_balanced_spec.rb
10535
spec/traverse_sequences_spec.rb
36+
test/fixtures/123_x
37+
test/fixtures/456_x
38+
test/fixtures/aX
39+
test/fixtures/bXaX
40+
test/fixtures/ds1.csv
41+
test/fixtures/ds2.csv
42+
test/fixtures/empty
43+
test/fixtures/file1.bin
44+
test/fixtures/file2.bin
45+
test/fixtures/four_lines
46+
test/fixtures/four_lines_with_missing_new_line
47+
test/fixtures/ldiff/diff.missing_new_line1-e
48+
test/fixtures/ldiff/diff.missing_new_line1-f
49+
test/fixtures/ldiff/diff.missing_new_line2-e
50+
test/fixtures/ldiff/diff.missing_new_line2-f
51+
test/fixtures/ldiff/error.diff.chef-e
52+
test/fixtures/ldiff/error.diff.chef-f
53+
test/fixtures/ldiff/error.diff.missing_new_line1-e
54+
test/fixtures/ldiff/error.diff.missing_new_line1-f
55+
test/fixtures/ldiff/error.diff.missing_new_line2-e
56+
test/fixtures/ldiff/error.diff.missing_new_line2-f
57+
test/fixtures/ldiff/output.diff
58+
test/fixtures/ldiff/output.diff-c
59+
test/fixtures/ldiff/output.diff-u
60+
test/fixtures/ldiff/output.diff.bin1
61+
test/fixtures/ldiff/output.diff.bin1-c
62+
test/fixtures/ldiff/output.diff.bin1-e
63+
test/fixtures/ldiff/output.diff.bin1-f
64+
test/fixtures/ldiff/output.diff.bin1-u
65+
test/fixtures/ldiff/output.diff.bin2
66+
test/fixtures/ldiff/output.diff.bin2-c
67+
test/fixtures/ldiff/output.diff.bin2-e
68+
test/fixtures/ldiff/output.diff.bin2-f
69+
test/fixtures/ldiff/output.diff.bin2-u
70+
test/fixtures/ldiff/output.diff.chef
71+
test/fixtures/ldiff/output.diff.chef-c
72+
test/fixtures/ldiff/output.diff.chef-u
73+
test/fixtures/ldiff/output.diff.chef2
74+
test/fixtures/ldiff/output.diff.chef2-c
75+
test/fixtures/ldiff/output.diff.chef2-d
76+
test/fixtures/ldiff/output.diff.chef2-u
77+
test/fixtures/ldiff/output.diff.empty.vs.four_lines
78+
test/fixtures/ldiff/output.diff.empty.vs.four_lines-c
79+
test/fixtures/ldiff/output.diff.empty.vs.four_lines-e
80+
test/fixtures/ldiff/output.diff.empty.vs.four_lines-f
81+
test/fixtures/ldiff/output.diff.empty.vs.four_lines-u
82+
test/fixtures/ldiff/output.diff.four_lines.vs.empty
83+
test/fixtures/ldiff/output.diff.four_lines.vs.empty-c
84+
test/fixtures/ldiff/output.diff.four_lines.vs.empty-e
85+
test/fixtures/ldiff/output.diff.four_lines.vs.empty-f
86+
test/fixtures/ldiff/output.diff.four_lines.vs.empty-u
87+
test/fixtures/ldiff/output.diff.issue95_trailing_context
88+
test/fixtures/ldiff/output.diff.issue95_trailing_context-c
89+
test/fixtures/ldiff/output.diff.issue95_trailing_context-e
90+
test/fixtures/ldiff/output.diff.issue95_trailing_context-f
91+
test/fixtures/ldiff/output.diff.issue95_trailing_context-u
92+
test/fixtures/ldiff/output.diff.missing_new_line1
93+
test/fixtures/ldiff/output.diff.missing_new_line1-c
94+
test/fixtures/ldiff/output.diff.missing_new_line1-e
95+
test/fixtures/ldiff/output.diff.missing_new_line1-f
96+
test/fixtures/ldiff/output.diff.missing_new_line1-u
97+
test/fixtures/ldiff/output.diff.missing_new_line2
98+
test/fixtures/ldiff/output.diff.missing_new_line2-c
99+
test/fixtures/ldiff/output.diff.missing_new_line2-e
100+
test/fixtures/ldiff/output.diff.missing_new_line2-f
101+
test/fixtures/ldiff/output.diff.missing_new_line2-u
102+
test/fixtures/new-chef
103+
test/fixtures/new-chef2
104+
test/fixtures/old-chef
105+
test/fixtures/old-chef2
106+
test/test_change.rb
107+
test/test_diff.rb
108+
test/test_helper.rb
109+
test/test_hunk.rb
110+
test/test_issues.rb
111+
test/test_lcs.rb
112+
test/test_ldiff.rb
113+
test/test_patch.rb
114+
test/test_sdiff.rb
115+
test/test_traverse_balanced.rb
116+
test/test_traverse_sequences.rb

Rakefile

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ require "rspec/core/rake_task"
44
require "hoe"
55
require "rake/clean"
66
require "rdoc/task"
7+
require "minitest/test_task"
78

89
Hoe.plugin :halostatue
9-
Hoe.plugin :rubygems
1010

1111
Hoe.plugins.delete :debug
1212
Hoe.plugins.delete :newb
1313
Hoe.plugins.delete :publish
1414
Hoe.plugins.delete :signing
15+
Hoe.plugins.delete :test
1516

1617
hoe = Hoe.spec "diff-lcs" do
1718
developer("Austin Ziegler", "halostatue@gmail.com")
@@ -29,33 +30,65 @@ hoe = Hoe.spec "diff-lcs" do
2930
extra_dev_deps << ["hoe", "~> 4.0"]
3031
extra_dev_deps << ["hoe-halostatue", "~> 2.1", ">= 2.1.1"]
3132
extra_dev_deps << ["rspec", ">= 2.0", "< 4"]
33+
extra_dev_deps << ["minitest", "~> 6.0"]
34+
extra_dev_deps << ["minitest-autotest", "~> 1.0"]
35+
extra_dev_deps << ["minitest-focus", "~> 1.1"]
3236
extra_dev_deps << ["rake", ">= 10.0", "< 14"]
33-
extra_dev_deps << ["rdoc", ">= 6.3.1", "< 7"]
37+
extra_dev_deps << ["rantly", "~> 3.0"]
38+
extra_dev_deps << ["rdoc", ">= 6.0", "< 8"]
3439
extra_dev_deps << ["simplecov", "~> 0.9"]
3540
extra_dev_deps << ["simplecov-lcov", "~> 0.9"]
3641
extra_dev_deps << ["standard", "~> 1.50"]
3742
extra_dev_deps << ["standard-thread_safety", "~> 1.0"]
3843
extra_dev_deps << ["fasterer", "~> 0.11"]
3944
end
4045

46+
task :nocover do
47+
require "fileutils"
48+
FileUtils.rm_rf("./coverage")
49+
end
50+
51+
# To be replaced with an integration test that uses rspec on a different suite
4152
desc "Run all specifications"
4253
RSpec::Core::RakeTask.new(:spec) do |t|
4354
rspec_dirs = %w[spec lib].join(":")
4455
t.rspec_opts = ["-I#{rspec_dirs}"]
4556
end
4657

47-
namespace :spec do
48-
desc "Runs test coverage. Only works Ruby 2.0+ and assumes 'simplecov' is installed."
49-
task :coverage do
50-
Rake::Task["spec"].execute
51-
end
52-
end
58+
task spec: :nocover
59+
60+
task default: :spec
5361

54-
task coverage: "spec:coverage"
5562
Rake::Task["spec"].actions.uniq! { |a| a.source_location }
5663

57-
task default: :spec unless Rake::Task["default"].prereqs.include?("spec")
58-
task test: :spec unless Rake::Task["test"].prereqs.include?("spec")
64+
Minitest::TestTask.create :test
65+
Minitest::TestTask.create :coverage do |t|
66+
formatters = <<-RUBY.split($/).join(" ")
67+
SimpleCov::Formatter::MultiFormatter.new([
68+
SimpleCov::Formatter::HTMLFormatter,
69+
SimpleCov::Formatter::LcovFormatter,
70+
SimpleCov::Formatter::SimpleFormatter
71+
])
72+
RUBY
73+
t.test_prelude = <<-RUBY.split($/).join("; ")
74+
require "simplecov"
75+
require "simplecov-lcov"
76+
77+
SimpleCov::Formatter::LcovFormatter.config do |config|
78+
config.report_with_single_file = true
79+
config.lcov_file_name = "lcov.info"
80+
end
81+
82+
SimpleCov.start "test_frameworks" do
83+
enable_coverage :branch
84+
primary_coverage :branch
85+
formatter #{formatters}
86+
end
87+
RUBY
88+
end
89+
90+
task test: :nocover
91+
task default: :test
5992

6093
task :version do
6194
require "diff/lcs/version"
@@ -64,7 +97,6 @@ end
6497

6598
RDoc::Task.new do |config|
6699
config.title = "diff-lcs"
67-
# config.main = "lib/diff/lcs.rb"
68100
config.main = "README.md"
69101
config.rdoc_dir = "doc"
70102
config.rdoc_files = hoe.spec.require_paths - ["Manifest.txt"] + hoe.spec.extra_rdoc_files

0 commit comments

Comments
 (0)