evilution 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.beads/interactions.jsonl +205 -0
- data/CHANGELOG.md +35 -0
- data/README.md +80 -4
- data/exe/evil +6 -0
- data/lib/evilution/ast/source_surgeon.rb +15 -1
- data/lib/evilution/cli/commands/compare.rb +68 -0
- data/lib/evilution/cli/parser/command_extractor.rb +2 -1
- data/lib/evilution/cli/parser/options_builder.rb +21 -1
- data/lib/evilution/cli/printers/compare.rb +159 -0
- data/lib/evilution/cli.rb +1 -0
- data/lib/evilution/compare/categorizer.rb +109 -0
- data/lib/evilution/compare/detector.rb +21 -0
- data/lib/evilution/compare/fingerprint.rb +83 -0
- data/lib/evilution/compare/normalizer.rb +106 -0
- data/lib/evilution/compare/record.rb +16 -0
- data/lib/evilution/compare.rb +15 -0
- data/lib/evilution/config.rb +165 -3
- data/lib/evilution/example_filter.rb +143 -0
- data/lib/evilution/integration/crash_detector.rb +5 -2
- data/lib/evilution/integration/minitest.rb +10 -5
- data/lib/evilution/integration/minitest_crash_detector.rb +5 -2
- data/lib/evilution/integration/rspec.rb +82 -7
- data/lib/evilution/isolation/fork.rb +25 -0
- data/lib/evilution/mcp/info_tool.rb +77 -5
- data/lib/evilution/mcp/mutate_tool/config_builder.rb +20 -0
- data/lib/evilution/mcp/mutate_tool/error_payload.rb +17 -0
- data/lib/evilution/mcp/mutate_tool/option_parser.rb +54 -0
- data/lib/evilution/mcp/mutate_tool/progress_streamer.rb +37 -0
- data/lib/evilution/mcp/mutate_tool/report_trimmer.rb +31 -0
- data/lib/evilution/mcp/mutate_tool/survived_enricher.rb +52 -0
- data/lib/evilution/mcp/mutate_tool.rb +34 -186
- data/lib/evilution/mutation.rb +43 -3
- data/lib/evilution/mutator/base.rb +39 -1
- data/lib/evilution/mutator/operator/argument_nil_substitution.rb +5 -1
- data/lib/evilution/mutator/operator/argument_removal.rb +5 -1
- data/lib/evilution/parallel/work_queue.rb +149 -31
- data/lib/evilution/parallel_db_warning.rb +68 -0
- data/lib/evilution/reporter/cli.rb +37 -11
- data/lib/evilution/reporter/html/assets/style.css +17 -0
- data/lib/evilution/reporter/html/sections/file_section.rb +15 -0
- data/lib/evilution/reporter/html/sections/neutral_details.rb +25 -0
- data/lib/evilution/reporter/html/sections/unparseable_details.rb +25 -0
- data/lib/evilution/reporter/html/sections/unresolved_details.rb +25 -0
- data/lib/evilution/reporter/html/templates/file_section.html.erb +3 -0
- data/lib/evilution/reporter/html/templates/neutral_details.html.erb +14 -0
- data/lib/evilution/reporter/html/templates/summary_cards.html.erb +3 -0
- data/lib/evilution/reporter/html/templates/unparseable_details.html.erb +11 -0
- data/lib/evilution/reporter/html/templates/unresolved_details.html.erb +11 -0
- data/lib/evilution/reporter/json.rb +8 -2
- data/lib/evilution/reporter/suggestion/diff_helpers.rb +28 -0
- data/lib/evilution/reporter/suggestion/registry.rb +64 -0
- data/lib/evilution/reporter/suggestion/templates/generic.rb +55 -0
- data/lib/evilution/reporter/suggestion/templates/minitest.rb +659 -0
- data/lib/evilution/reporter/suggestion/templates/rspec.rb +613 -0
- data/lib/evilution/reporter/suggestion.rb +8 -1327
- data/lib/evilution/result/mutation_result.rb +5 -1
- data/lib/evilution/result/summary.rb +13 -1
- data/lib/evilution/runner/baseline_runner.rb +23 -2
- data/lib/evilution/runner/mutation_executor.rb +83 -13
- data/lib/evilution/runner.rb +6 -0
- data/lib/evilution/source_ast_cache.rb +39 -0
- data/lib/evilution/spec_ast_cache.rb +166 -0
- data/lib/evilution/spec_resolver.rb +6 -1
- data/lib/evilution/spec_selector.rb +39 -0
- data/lib/evilution/temp_dir_tracker.rb +23 -3
- data/lib/evilution/version.rb +1 -1
- data/script/memory_check +7 -5
- metadata +34 -2
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: evilution
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.25.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Denis Kiselev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04-
|
|
11
|
+
date: 2026-04-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: diff-lcs
|
|
@@ -56,6 +56,7 @@ description: Evilution is a mutation testing tool for Ruby. It validates test su
|
|
|
56
56
|
email:
|
|
57
57
|
- denis.kiselyov@gmail.com
|
|
58
58
|
executables:
|
|
59
|
+
- evil
|
|
59
60
|
- evilution
|
|
60
61
|
extensions: []
|
|
61
62
|
extra_rdoc_files: []
|
|
@@ -83,6 +84,7 @@ files:
|
|
|
83
84
|
- docs/ast_pattern_syntax.md
|
|
84
85
|
- docs/isolation.md
|
|
85
86
|
- docs/mutation_density_benchmark.md
|
|
87
|
+
- exe/evil
|
|
86
88
|
- exe/evilution
|
|
87
89
|
- lib/evilution.rb
|
|
88
90
|
- lib/evilution/ast.rb
|
|
@@ -99,6 +101,7 @@ files:
|
|
|
99
101
|
- lib/evilution/cli.rb
|
|
100
102
|
- lib/evilution/cli/command.rb
|
|
101
103
|
- lib/evilution/cli/commands.rb
|
|
104
|
+
- lib/evilution/cli/commands/compare.rb
|
|
102
105
|
- lib/evilution/cli/commands/environment_show.rb
|
|
103
106
|
- lib/evilution/cli/commands/init.rb
|
|
104
107
|
- lib/evilution/cli/commands/mcp.rb
|
|
@@ -119,6 +122,7 @@ files:
|
|
|
119
122
|
- lib/evilution/cli/parser/options_builder.rb
|
|
120
123
|
- lib/evilution/cli/parser/stdin_reader.rb
|
|
121
124
|
- lib/evilution/cli/printers.rb
|
|
125
|
+
- lib/evilution/cli/printers/compare.rb
|
|
122
126
|
- lib/evilution/cli/printers/environment.rb
|
|
123
127
|
- lib/evilution/cli/printers/session_detail.rb
|
|
124
128
|
- lib/evilution/cli/printers/session_diff.rb
|
|
@@ -127,6 +131,12 @@ files:
|
|
|
127
131
|
- lib/evilution/cli/printers/tests_list.rb
|
|
128
132
|
- lib/evilution/cli/printers/util_mutation.rb
|
|
129
133
|
- lib/evilution/cli/result.rb
|
|
134
|
+
- lib/evilution/compare.rb
|
|
135
|
+
- lib/evilution/compare/categorizer.rb
|
|
136
|
+
- lib/evilution/compare/detector.rb
|
|
137
|
+
- lib/evilution/compare/fingerprint.rb
|
|
138
|
+
- lib/evilution/compare/normalizer.rb
|
|
139
|
+
- lib/evilution/compare/record.rb
|
|
130
140
|
- lib/evilution/config.rb
|
|
131
141
|
- lib/evilution/disable_comment.rb
|
|
132
142
|
- lib/evilution/equivalent.rb
|
|
@@ -139,6 +149,7 @@ files:
|
|
|
139
149
|
- lib/evilution/equivalent/heuristic/method_body_nil.rb
|
|
140
150
|
- lib/evilution/equivalent/heuristic/noop_source.rb
|
|
141
151
|
- lib/evilution/equivalent/heuristic/void_context.rb
|
|
152
|
+
- lib/evilution/example_filter.rb
|
|
142
153
|
- lib/evilution/git.rb
|
|
143
154
|
- lib/evilution/git/changed_files.rb
|
|
144
155
|
- lib/evilution/hooks.rb
|
|
@@ -156,6 +167,12 @@ files:
|
|
|
156
167
|
- lib/evilution/mcp.rb
|
|
157
168
|
- lib/evilution/mcp/info_tool.rb
|
|
158
169
|
- lib/evilution/mcp/mutate_tool.rb
|
|
170
|
+
- lib/evilution/mcp/mutate_tool/config_builder.rb
|
|
171
|
+
- lib/evilution/mcp/mutate_tool/error_payload.rb
|
|
172
|
+
- lib/evilution/mcp/mutate_tool/option_parser.rb
|
|
173
|
+
- lib/evilution/mcp/mutate_tool/progress_streamer.rb
|
|
174
|
+
- lib/evilution/mcp/mutate_tool/report_trimmer.rb
|
|
175
|
+
- lib/evilution/mcp/mutate_tool/survived_enricher.rb
|
|
159
176
|
- lib/evilution/mcp/server.rb
|
|
160
177
|
- lib/evilution/mcp/session_diff_tool.rb
|
|
161
178
|
- lib/evilution/mcp/session_list_tool.rb
|
|
@@ -243,6 +260,7 @@ files:
|
|
|
243
260
|
- lib/evilution/parallel.rb
|
|
244
261
|
- lib/evilution/parallel/pool.rb
|
|
245
262
|
- lib/evilution/parallel/work_queue.rb
|
|
263
|
+
- lib/evilution/parallel_db_warning.rb
|
|
246
264
|
- lib/evilution/rails_detector.rb
|
|
247
265
|
- lib/evilution/related_spec_heuristic.rb
|
|
248
266
|
- lib/evilution/reporter.rb
|
|
@@ -262,10 +280,13 @@ files:
|
|
|
262
280
|
- lib/evilution/reporter/html/sections/file_section.rb
|
|
263
281
|
- lib/evilution/reporter/html/sections/header.rb
|
|
264
282
|
- lib/evilution/reporter/html/sections/mutation_map.rb
|
|
283
|
+
- lib/evilution/reporter/html/sections/neutral_details.rb
|
|
265
284
|
- lib/evilution/reporter/html/sections/summary_cards.rb
|
|
266
285
|
- lib/evilution/reporter/html/sections/survived_details.rb
|
|
267
286
|
- lib/evilution/reporter/html/sections/survived_entry.rb
|
|
268
287
|
- lib/evilution/reporter/html/sections/truncation_notice.rb
|
|
288
|
+
- lib/evilution/reporter/html/sections/unparseable_details.rb
|
|
289
|
+
- lib/evilution/reporter/html/sections/unresolved_details.rb
|
|
269
290
|
- lib/evilution/reporter/html/stylesheet.rb
|
|
270
291
|
- lib/evilution/reporter/html/templates/baseline_comparison.html.erb
|
|
271
292
|
- lib/evilution/reporter/html/templates/error_details.html.erb
|
|
@@ -273,14 +294,22 @@ files:
|
|
|
273
294
|
- lib/evilution/reporter/html/templates/file_section.html.erb
|
|
274
295
|
- lib/evilution/reporter/html/templates/header.html.erb
|
|
275
296
|
- lib/evilution/reporter/html/templates/mutation_map.html.erb
|
|
297
|
+
- lib/evilution/reporter/html/templates/neutral_details.html.erb
|
|
276
298
|
- lib/evilution/reporter/html/templates/report.html.erb
|
|
277
299
|
- lib/evilution/reporter/html/templates/summary_cards.html.erb
|
|
278
300
|
- lib/evilution/reporter/html/templates/survived_details.html.erb
|
|
279
301
|
- lib/evilution/reporter/html/templates/survived_entry.html.erb
|
|
280
302
|
- lib/evilution/reporter/html/templates/truncation_notice.html.erb
|
|
303
|
+
- lib/evilution/reporter/html/templates/unparseable_details.html.erb
|
|
304
|
+
- lib/evilution/reporter/html/templates/unresolved_details.html.erb
|
|
281
305
|
- lib/evilution/reporter/json.rb
|
|
282
306
|
- lib/evilution/reporter/progress_bar.rb
|
|
283
307
|
- lib/evilution/reporter/suggestion.rb
|
|
308
|
+
- lib/evilution/reporter/suggestion/diff_helpers.rb
|
|
309
|
+
- lib/evilution/reporter/suggestion/registry.rb
|
|
310
|
+
- lib/evilution/reporter/suggestion/templates/generic.rb
|
|
311
|
+
- lib/evilution/reporter/suggestion/templates/minitest.rb
|
|
312
|
+
- lib/evilution/reporter/suggestion/templates/rspec.rb
|
|
284
313
|
- lib/evilution/result.rb
|
|
285
314
|
- lib/evilution/result/coverage_gap.rb
|
|
286
315
|
- lib/evilution/result/coverage_gap_grouper.rb
|
|
@@ -297,7 +326,10 @@ files:
|
|
|
297
326
|
- lib/evilution/session.rb
|
|
298
327
|
- lib/evilution/session/diff.rb
|
|
299
328
|
- lib/evilution/session/store.rb
|
|
329
|
+
- lib/evilution/source_ast_cache.rb
|
|
330
|
+
- lib/evilution/spec_ast_cache.rb
|
|
300
331
|
- lib/evilution/spec_resolver.rb
|
|
332
|
+
- lib/evilution/spec_selector.rb
|
|
301
333
|
- lib/evilution/subject.rb
|
|
302
334
|
- lib/evilution/temp_dir_tracker.rb
|
|
303
335
|
- lib/evilution/version.rb
|