mutant 0.9.8 → 0.9.13
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/lib/mutant.rb +5 -2
- data/lib/mutant/ast.rb +0 -9
- data/lib/mutant/ast/find_metaclass_containing.rb +48 -0
- data/lib/mutant/ast/meta/send.rb +0 -6
- data/lib/mutant/bootstrap.rb +14 -37
- data/lib/mutant/cli.rb +11 -49
- data/lib/mutant/config.rb +0 -8
- data/lib/mutant/context.rb +0 -3
- data/lib/mutant/env.rb +0 -6
- data/lib/mutant/expression/method.rb +6 -6
- data/lib/mutant/expression/methods.rb +6 -6
- data/lib/mutant/expression/parser.rb +0 -6
- data/lib/mutant/integration.rb +0 -18
- data/lib/mutant/isolation.rb +1 -1
- data/lib/mutant/isolation/fork.rb +2 -24
- data/lib/mutant/isolation/none.rb +1 -1
- data/lib/mutant/license.rb +11 -0
- data/lib/mutant/matcher.rb +0 -14
- data/lib/mutant/matcher/config.rb +2 -11
- data/lib/mutant/matcher/method.rb +0 -31
- data/lib/mutant/matcher/method/instance.rb +0 -8
- data/lib/mutant/matcher/method/metaclass.rb +86 -0
- data/lib/mutant/matcher/method/singleton.rb +0 -25
- data/lib/mutant/matcher/methods.rb +17 -28
- data/lib/mutant/matcher/namespace.rb +0 -10
- data/lib/mutant/matcher/scope.rb +2 -4
- data/lib/mutant/meta/example/dsl.rb +0 -21
- data/lib/mutant/meta/example/verification.rb +0 -20
- data/lib/mutant/minitest/coverage.rb +53 -0
- data/lib/mutant/mutation.rb +0 -3
- data/lib/mutant/mutator.rb +1 -29
- data/lib/mutant/mutator/node.rb +1 -66
- data/lib/mutant/mutator/node/and_asgn.rb +0 -3
- data/lib/mutant/mutator/node/argument.rb +0 -15
- data/lib/mutant/mutator/node/arguments.rb +0 -20
- data/lib/mutant/mutator/node/begin.rb +0 -3
- data/lib/mutant/mutator/node/binary.rb +0 -23
- data/lib/mutant/mutator/node/block.rb +0 -15
- data/lib/mutant/mutator/node/block_pass.rb +29 -0
- data/lib/mutant/mutator/node/break.rb +0 -3
- data/lib/mutant/mutator/node/case.rb +0 -9
- data/lib/mutant/mutator/node/class.rb +0 -3
- data/lib/mutant/mutator/node/conditional_loop.rb +0 -3
- data/lib/mutant/mutator/node/const.rb +0 -3
- data/lib/mutant/mutator/node/define.rb +0 -11
- data/lib/mutant/mutator/node/defined.rb +0 -3
- data/lib/mutant/mutator/node/dstr.rb +0 -3
- data/lib/mutant/mutator/node/dsym.rb +0 -3
- data/lib/mutant/mutator/node/generic.rb +0 -3
- data/lib/mutant/mutator/node/if.rb +0 -12
- data/lib/mutant/mutator/node/index.rb +0 -27
- data/lib/mutant/mutator/node/kwbegin.rb +0 -3
- data/lib/mutant/mutator/node/literal.rb +0 -3
- data/lib/mutant/mutator/node/literal/array.rb +0 -6
- data/lib/mutant/mutator/node/literal/boolean.rb +0 -4
- data/lib/mutant/mutator/node/literal/float.rb +0 -9
- data/lib/mutant/mutator/node/literal/hash.rb +0 -9
- data/lib/mutant/mutator/node/literal/integer.rb +0 -9
- data/lib/mutant/mutator/node/literal/nil.rb +0 -3
- data/lib/mutant/mutator/node/literal/range.rb +4 -7
- data/lib/mutant/mutator/node/literal/regex.rb +0 -6
- data/lib/mutant/mutator/node/literal/string.rb +0 -3
- data/lib/mutant/mutator/node/literal/symbol.rb +0 -3
- data/lib/mutant/mutator/node/masgn.rb +0 -3
- data/lib/mutant/mutator/node/match_current_line.rb +0 -3
- data/lib/mutant/mutator/node/mlhs.rb +0 -3
- data/lib/mutant/mutator/node/named_value/access.rb +2 -14
- data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -9
- data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -6
- data/lib/mutant/mutator/node/next.rb +0 -3
- data/lib/mutant/mutator/node/noop.rb +1 -4
- data/lib/mutant/mutator/node/nthref.rb +0 -3
- data/lib/mutant/mutator/node/op_asgn.rb +0 -3
- data/lib/mutant/mutator/node/or_asgn.rb +0 -3
- data/lib/mutant/mutator/node/procarg_zero.rb +0 -3
- data/lib/mutant/mutator/node/regopt.rb +0 -6
- data/lib/mutant/mutator/node/resbody.rb +0 -6
- data/lib/mutant/mutator/node/rescue.rb +2 -19
- data/lib/mutant/mutator/node/return.rb +0 -3
- data/lib/mutant/mutator/node/sclass.rb +20 -0
- data/lib/mutant/mutator/node/send.rb +26 -61
- data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -9
- data/lib/mutant/mutator/node/send/binary.rb +0 -11
- data/lib/mutant/mutator/node/send/conditional.rb +0 -3
- data/lib/mutant/mutator/node/splat.rb +0 -3
- data/lib/mutant/mutator/node/super.rb +0 -3
- data/lib/mutant/mutator/node/when.rb +0 -19
- data/lib/mutant/mutator/node/yield.rb +0 -3
- data/lib/mutant/mutator/node/zsuper.rb +0 -3
- data/lib/mutant/mutator/util/array.rb +0 -6
- data/lib/mutant/mutator/util/symbol.rb +0 -3
- data/lib/mutant/parallel.rb +0 -13
- data/lib/mutant/parallel/driver.rb +0 -10
- data/lib/mutant/parallel/worker.rb +0 -22
- data/lib/mutant/reporter/cli.rb +0 -5
- data/lib/mutant/reporter/cli/format.rb +0 -9
- data/lib/mutant/reporter/cli/printer.rb +2 -42
- data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -15
- data/lib/mutant/reporter/cli/printer/isolation_result.rb +9 -21
- data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -5
- data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -22
- data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -8
- data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -9
- data/lib/mutant/repository/diff.rb +1 -13
- data/lib/mutant/repository/diff/ranges.rb +0 -11
- data/lib/mutant/result.rb +0 -3
- data/lib/mutant/runner.rb +0 -18
- data/lib/mutant/runner/sink.rb +0 -5
- data/lib/mutant/subject.rb +0 -8
- data/lib/mutant/subject/method.rb +0 -3
- data/lib/mutant/subject/method/instance.rb +40 -6
- data/lib/mutant/subject/method/metaclass.rb +30 -0
- data/lib/mutant/transform.rb +0 -92
- data/lib/mutant/version.rb +1 -1
- data/lib/mutant/warnings.rb +0 -6
- data/lib/mutant/zombifier.rb +2 -34
- metadata +61 -333
- data/.github/workflows/ci.yml +0 -121
- data/.gitignore +0 -38
- data/.rspec +0 -5
- data/.rubocop.yml +0 -7
- data/Changelog.md +0 -75
- data/Gemfile +0 -7
- data/Gemfile.lock +0 -167
- data/Gemfile.shared +0 -10
- data/README.md +0 -138
- data/Rakefile +0 -5
- data/config/devtools.yml +0 -2
- data/config/reek.yml +0 -138
- data/config/rubocop.yml +0 -205
- data/config/yardstick.yml +0 -2
- data/docs/commercial-support.md +0 -14
- data/docs/concurrency.md +0 -39
- data/docs/incremental.md +0 -76
- data/docs/known-problems.md +0 -30
- data/docs/limitations.md +0 -50
- data/docs/mutant-minitest.md +0 -149
- data/docs/mutant-rspec.md +0 -130
- data/docs/nomenclature.md +0 -82
- data/docs/reading-reports.md +0 -74
- data/lib/mutant/color.rb +0 -43
- data/lib/mutant/diff.rb +0 -114
- data/meta/and.rb +0 -15
- data/meta/and_asgn.rb +0 -14
- data/meta/array.rb +0 -30
- data/meta/begin.rb +0 -23
- data/meta/block.rb +0 -202
- data/meta/block_pass.rb +0 -8
- data/meta/blockarg.rb +0 -10
- data/meta/break.rb +0 -10
- data/meta/case.rb +0 -223
- data/meta/casgn.rb +0 -28
- data/meta/cbase.rb +0 -8
- data/meta/class.rb +0 -12
- data/meta/const.rb +0 -17
- data/meta/csend.rb +0 -10
- data/meta/cvar.rb +0 -7
- data/meta/cvasgn.rb +0 -10
- data/meta/date.rb +0 -59
- data/meta/def.rb +0 -203
- data/meta/defined.rb +0 -9
- data/meta/dstr.rb +0 -13
- data/meta/dsym.rb +0 -14
- data/meta/ensure.rb +0 -9
- data/meta/false.rb +0 -8
- data/meta/file.rb +0 -5
- data/meta/float.rb +0 -37
- data/meta/gvar.rb +0 -7
- data/meta/gvasgn.rb +0 -10
- data/meta/hash.rb +0 -24
- data/meta/if.rb +0 -77
- data/meta/index.rb +0 -133
- data/meta/indexasgn.rb +0 -31
- data/meta/int.rb +0 -18
- data/meta/ivar.rb +0 -8
- data/meta/ivasgn.rb +0 -23
- data/meta/kwarg.rb +0 -10
- data/meta/kwbegin.rb +0 -9
- data/meta/kwoptarg.rb +0 -13
- data/meta/lambda.rb +0 -23
- data/meta/line.rb +0 -5
- data/meta/lvar.rb +0 -16
- data/meta/lvasgn.rb +0 -25
- data/meta/masgn.rb +0 -7
- data/meta/match_current_line.rb +0 -15
- data/meta/next.rb +0 -11
- data/meta/nil.rb +0 -5
- data/meta/nthref.rb +0 -14
- data/meta/op_assgn.rb +0 -17
- data/meta/or.rb +0 -15
- data/meta/or_asgn.rb +0 -50
- data/meta/range.rb +0 -39
- data/meta/redo.rb +0 -5
- data/meta/regexp.rb +0 -81
- data/meta/regopt.rb +0 -10
- data/meta/rescue.rb +0 -90
- data/meta/return.rb +0 -16
- data/meta/self.rb +0 -7
- data/meta/send.rb +0 -604
- data/meta/str.rb +0 -7
- data/meta/super.rb +0 -27
- data/meta/sym.rb +0 -8
- data/meta/true.rb +0 -8
- data/meta/until.rb +0 -17
- data/meta/while.rb +0 -26
- data/meta/yield.rb +0 -10
- data/mutant-minitest.gemspec +0 -22
- data/mutant-rspec.gemspec +0 -22
- data/mutant.gemspec +0 -41
- data/mutant.yml +0 -6
- data/spec/integration/mutant/corpus_spec.rb +0 -15
- data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
- data/spec/integration/mutant/minitest_spec.rb +0 -11
- data/spec/integration/mutant/null_spec.rb +0 -16
- data/spec/integration/mutant/rspec_spec.rb +0 -15
- data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
- data/spec/integrations.yml +0 -63
- data/spec/shared/base_behavior.rb +0 -45
- data/spec/shared/framework_integration_behavior.rb +0 -70
- data/spec/shared/method_matcher_behavior.rb +0 -47
- data/spec/spec_helper.rb +0 -75
- data/spec/support/corpus.rb +0 -318
- data/spec/support/file_system.rb +0 -62
- data/spec/support/ice_nine_config.rb +0 -10
- data/spec/support/ruby_vm.rb +0 -84
- data/spec/support/shared_context.rb +0 -169
- data/spec/support/test_app.rb +0 -7
- data/spec/support/warnings.yml +0 -6
- data/spec/support/xspec.rb +0 -183
- data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
- data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
- data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
- data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
- data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
- data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
- data/spec/unit/mutant/ast_spec.rb +0 -57
- data/spec/unit/mutant/bootstrap_spec.rb +0 -216
- data/spec/unit/mutant/cli_spec.rb +0 -305
- data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
- data/spec/unit/mutant/config_spec.rb +0 -126
- data/spec/unit/mutant/context_spec.rb +0 -111
- data/spec/unit/mutant/diff_spec.rb +0 -189
- data/spec/unit/mutant/env_spec.rb +0 -229
- data/spec/unit/mutant/expression/method_spec.rb +0 -62
- data/spec/unit/mutant/expression/methods_spec.rb +0 -61
- data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
- data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
- data/spec/unit/mutant/expression/parser_spec.rb +0 -65
- data/spec/unit/mutant/expression_spec.rb +0 -45
- data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
- data/spec/unit/mutant/integration_spec.rb +0 -150
- data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
- data/spec/unit/mutant/isolation/none_spec.rb +0 -23
- data/spec/unit/mutant/isolation/result_spec.rb +0 -73
- data/spec/unit/mutant/license_spec.rb +0 -293
- data/spec/unit/mutant/loader_spec.rb +0 -79
- data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
- data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
- data/spec/unit/mutant/matcher/config_spec.rb +0 -47
- data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
- data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
- data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
- data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
- data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
- data/spec/unit/mutant/matcher/namespace_spec.rb +0 -37
- data/spec/unit/mutant/matcher/null_spec.rb +0 -12
- data/spec/unit/mutant/matcher/scope_spec.rb +0 -35
- data/spec/unit/mutant/matcher/static_spec.rb +0 -13
- data/spec/unit/mutant/matcher_spec.rb +0 -102
- data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
- data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
- data/spec/unit/mutant/meta/example_spec.rb +0 -34
- data/spec/unit/mutant/mutation_spec.rb +0 -140
- data/spec/unit/mutant/mutator/node_spec.rb +0 -52
- data/spec/unit/mutant/mutator_spec.rb +0 -21
- data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
- data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
- data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
- data/spec/unit/mutant/parallel_spec.rb +0 -115
- data/spec/unit/mutant/parser_spec.rb +0 -26
- data/spec/unit/mutant/range_spec.rb +0 -141
- data/spec/unit/mutant/registry_spec.rb +0 -74
- data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
- data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
- data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
- data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
- data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
- data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
- data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
- data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
- data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
- data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
- data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
- data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
- data/spec/unit/mutant/reporter/null_spec.rb +0 -14
- data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
- data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
- data/spec/unit/mutant/repository/diff_spec.rb +0 -122
- data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
- data/spec/unit/mutant/require_highjack_spec.rb +0 -73
- data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
- data/spec/unit/mutant/result/env_spec.rb +0 -161
- data/spec/unit/mutant/result/mutation_spec.rb +0 -70
- data/spec/unit/mutant/result/subject_spec.rb +0 -111
- data/spec/unit/mutant/result/test_spec.rb +0 -14
- data/spec/unit/mutant/result_spec.rb +0 -33
- data/spec/unit/mutant/runner/sink_spec.rb +0 -174
- data/spec/unit/mutant/runner_spec.rb +0 -121
- data/spec/unit/mutant/selector/expression_spec.rb +0 -62
- data/spec/unit/mutant/selector/null_spec.rb +0 -17
- data/spec/unit/mutant/subject/method/instance_spec.rb +0 -181
- data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
- data/spec/unit/mutant/subject_spec.rb +0 -93
- data/spec/unit/mutant/transform/array_spec.rb +0 -92
- data/spec/unit/mutant/transform/bool_spec.rb +0 -63
- data/spec/unit/mutant/transform/error_spec.rb +0 -132
- data/spec/unit/mutant/transform/exception_spec.rb +0 -44
- data/spec/unit/mutant/transform/hash_spec.rb +0 -236
- data/spec/unit/mutant/transform/index_spec.rb +0 -92
- data/spec/unit/mutant/transform/named_spec.rb +0 -49
- data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
- data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
- data/spec/unit/mutant/util/one_spec.rb +0 -22
- data/spec/unit/mutant/warnings_spec.rb +0 -89
- data/spec/unit/mutant/world_spec.rb +0 -63
- data/spec/unit/mutant/zombifier_spec.rb +0 -122
- data/test_app/.rspec +0 -1
- data/test_app/Gemfile.minitest +0 -4
- data/test_app/Gemfile.rspec3.8 +0 -7
- data/test_app/lib/test_app.rb +0 -109
- data/test_app/lib/test_app/literal.rb +0 -35
- data/test_app/spec/spec_helper.rb +0 -9
- data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
- data/test_app/test/unit/test_app/literal_test.rb +0 -16
data/.github/workflows/ci.yml
DELETED
@@ -1,121 +0,0 @@
|
|
1
|
-
name: CI
|
2
|
-
|
3
|
-
on: push
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
base:
|
7
|
-
name: Base steps
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
steps:
|
10
|
-
- uses: actions/checkout@v2
|
11
|
-
- name: Check Whitespace
|
12
|
-
run: git diff --check -- HEAD~1
|
13
|
-
ruby-spec:
|
14
|
-
name: Unit Specs
|
15
|
-
runs-on: ${{ matrix.os }}
|
16
|
-
timeout-minutes: 5
|
17
|
-
strategy:
|
18
|
-
fail-fast: false
|
19
|
-
matrix:
|
20
|
-
ruby: ['2.6', '2.7']
|
21
|
-
os: [ubuntu-latest]
|
22
|
-
steps:
|
23
|
-
- uses: actions/checkout@v2
|
24
|
-
- uses: actions/setup-ruby@v1
|
25
|
-
with:
|
26
|
-
ruby-version: ${{ matrix.ruby }}
|
27
|
-
- run: |
|
28
|
-
gem install bundler
|
29
|
-
bundle install
|
30
|
-
- run: bundle exec rspec spec/unit
|
31
|
-
ruby-mutant:
|
32
|
-
name: Mutation coverage
|
33
|
-
runs-on: ${{ matrix.os }}
|
34
|
-
timeout-minutes: 5
|
35
|
-
strategy:
|
36
|
-
fail-fast: false
|
37
|
-
matrix:
|
38
|
-
ruby: ['2.6', '2.7']
|
39
|
-
os: [ubuntu-latest]
|
40
|
-
steps:
|
41
|
-
- uses: actions/checkout@v2
|
42
|
-
with:
|
43
|
-
fetch-depth: 0
|
44
|
-
- uses: actions/setup-ruby@v1
|
45
|
-
with:
|
46
|
-
ruby-version: ${{ matrix.ruby }}
|
47
|
-
- run: |
|
48
|
-
gem install bundler
|
49
|
-
bundle install
|
50
|
-
- run: bundle exec mutant --since HEAD~1 --zombie -- 'Mutant*'
|
51
|
-
ruby-integration-minitest:
|
52
|
-
name: Integration Minitest
|
53
|
-
runs-on: ${{ matrix.os }}
|
54
|
-
timeout-minutes: 5
|
55
|
-
strategy:
|
56
|
-
fail-fast: false
|
57
|
-
matrix:
|
58
|
-
ruby: ['2.6', '2.7']
|
59
|
-
os: [ubuntu-latest]
|
60
|
-
steps:
|
61
|
-
- uses: actions/checkout@v2
|
62
|
-
- uses: actions/setup-ruby@v1
|
63
|
-
with:
|
64
|
-
ruby-version: ${{ matrix.ruby }}
|
65
|
-
- run: gem list
|
66
|
-
- run: |
|
67
|
-
gem install bundler
|
68
|
-
bundle install
|
69
|
-
- run: bundle exec rspec spec/integration -e minitest
|
70
|
-
ruby-integration-rspec:
|
71
|
-
name: Integration RSpec
|
72
|
-
runs-on: ${{ matrix.os }}
|
73
|
-
timeout-minutes: 10
|
74
|
-
strategy:
|
75
|
-
fail-fast: false
|
76
|
-
matrix:
|
77
|
-
ruby: ['2.6', '2.7']
|
78
|
-
os: [ubuntu-latest]
|
79
|
-
steps:
|
80
|
-
- uses: actions/checkout@v2
|
81
|
-
- uses: actions/setup-ruby@v1
|
82
|
-
with:
|
83
|
-
ruby-version: ${{ matrix.ruby }}
|
84
|
-
- run: |
|
85
|
-
gem install bundler
|
86
|
-
bundle install
|
87
|
-
- run: bundle exec rspec spec/integration -e rspec
|
88
|
-
ruby-integration-generation:
|
89
|
-
name: Integration Mutation Generation
|
90
|
-
runs-on: ${{ matrix.os }}
|
91
|
-
timeout-minutes: 5
|
92
|
-
strategy:
|
93
|
-
fail-fast: false
|
94
|
-
matrix:
|
95
|
-
ruby: ['2.6', '2.7']
|
96
|
-
os: [ubuntu-latest]
|
97
|
-
steps:
|
98
|
-
- uses: actions/checkout@v2
|
99
|
-
- uses: actions/setup-ruby@v1
|
100
|
-
with:
|
101
|
-
ruby-version: ${{ matrix.ruby }}
|
102
|
-
- run: |
|
103
|
-
gem install bundler
|
104
|
-
bundle install
|
105
|
-
- run: bundle exec rspec spec/integration -e generation
|
106
|
-
ruby-rubocop:
|
107
|
-
name: Rubocop
|
108
|
-
runs-on: ${{ matrix.os }}
|
109
|
-
timeout-minutes: 5
|
110
|
-
strategy:
|
111
|
-
fail-fast: false
|
112
|
-
matrix:
|
113
|
-
ruby: ['2.7']
|
114
|
-
os: [ubuntu-latest]
|
115
|
-
steps:
|
116
|
-
- uses: actions/checkout@v2
|
117
|
-
- uses: actions/setup-ruby@v1
|
118
|
-
with:
|
119
|
-
ruby-version: ${{ matrix.ruby }}
|
120
|
-
- run: bundle install
|
121
|
-
- run: bundle exec rake metrics:rubocop
|
data/.gitignore
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
## MAC OS
|
2
|
-
.DS_Store
|
3
|
-
|
4
|
-
## TEXTMATE
|
5
|
-
*.tmproj
|
6
|
-
tmtags
|
7
|
-
|
8
|
-
## EMACS
|
9
|
-
*~
|
10
|
-
\#*
|
11
|
-
.\#*
|
12
|
-
|
13
|
-
## VIM
|
14
|
-
*.sw[op]
|
15
|
-
|
16
|
-
## Rubinius
|
17
|
-
*.rbc
|
18
|
-
.rbx
|
19
|
-
|
20
|
-
## PROJECT::GENERAL
|
21
|
-
*.gem
|
22
|
-
coverage
|
23
|
-
profiling
|
24
|
-
turbulence
|
25
|
-
rdoc
|
26
|
-
pkg
|
27
|
-
tmp
|
28
|
-
doc
|
29
|
-
log
|
30
|
-
.yardoc
|
31
|
-
measurements
|
32
|
-
|
33
|
-
## BUNDLER
|
34
|
-
.bundle
|
35
|
-
Gemfile.*.lock
|
36
|
-
|
37
|
-
## PROJECT::SPECIFIC
|
38
|
-
/vendor
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
data/Changelog.md
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
# v0.9.8 2020-08-02
|
2
|
-
|
3
|
-
* Change to generic catch all node mutator. This allows better cross parser version compatibility.
|
4
|
-
|
5
|
-
# v0.9.7 2020-07-22
|
6
|
-
|
7
|
-
* Bump parser dependency to 2.7.1, note this still does not support Ruby 2.7 syntax.
|
8
|
-
But it supports running bundling with that parser version.
|
9
|
-
* Nail diff-lcs to 1.3 till output difference for 1.4 can be addressed.
|
10
|
-
|
11
|
-
# v0.9.6 2020-04-20
|
12
|
-
|
13
|
-
* Dependencies upgrade, should not change user facing semantics.
|
14
|
-
* Bump license nudge to 40s
|
15
|
-
|
16
|
-
# v0.9.5 2020-02-02
|
17
|
-
|
18
|
-
* Change to 2.7 parser series.
|
19
|
-
This does not drop support for < 2.7 but enables to in the future add full Ruby 2.7 support.
|
20
|
-
|
21
|
-
# v0.9.4 2020-01-03
|
22
|
-
|
23
|
-
* Bump unparser dependency
|
24
|
-
|
25
|
-
# v0.9.3 2020-01-03
|
26
|
-
|
27
|
-
* Change to soft dependency on mutant-license.
|
28
|
-
Rationale its fine to bundle mutant if not used.
|
29
|
-
This can easily happen on transitive dependencies.
|
30
|
-
|
31
|
-
# v0.9.2 2020-01-02
|
32
|
-
|
33
|
-
* Upgrade to parser ~> 2.6.5
|
34
|
-
|
35
|
-
# v0.9.1 2020-01-02
|
36
|
-
|
37
|
-
* Packaging bugfix.
|
38
|
-
|
39
|
-
# v0.9.0 2020-01-02
|
40
|
-
|
41
|
-
* New license.
|
42
|
-
* Fix mutations to void value expressions to not be reported as integration error.
|
43
|
-
* Remove regexp body mutations
|
44
|
-
* Remove restarg mutations
|
45
|
-
* Remove support for rspec-3.{4,5,6}
|
46
|
-
|
47
|
-
# v0.8.25 2018-12-31
|
48
|
-
|
49
|
-
* Change to {I,M}Var based concurrency
|
50
|
-
* Remove actors
|
51
|
-
|
52
|
-
# v0.8.24 2018-12-29
|
53
|
-
|
54
|
-
* Change to always insert mutations with frozen string literals
|
55
|
-
* Fix various invalid AST or source mutations
|
56
|
-
* Handle regexp `regexp_parser` cannot parse but MRI accepts gracefully
|
57
|
-
|
58
|
-
# v0.8.23 2018-12-23
|
59
|
-
|
60
|
-
* Improved isolation error reporting
|
61
|
-
* Errors between isolation and tests do not kill mutations anymore.
|
62
|
-
|
63
|
-
# v0.8.22 2018-12-04
|
64
|
-
|
65
|
-
* Remove hard ruby version requirement. 2.5 is still the only officially supported version.
|
66
|
-
|
67
|
-
# v0.8.21 2018-12-03
|
68
|
-
|
69
|
-
* Change to modern ast format via unparser-0.4.1.
|
70
|
-
|
71
|
-
# v0.8.20 2018-11-27
|
72
|
-
|
73
|
-
* Replace internal timers with monotonic ones.
|
74
|
-
|
75
|
-
Find older changelogs in the project [history](https://github.com/mbj/mutant/blob/84d119fe49ebad51b213cb08285b95e6e7c4fab6/Changelog.md#v0821-2018-12-03)
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,167 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
mutant (0.9.8)
|
5
|
-
abstract_type (~> 0.0.7)
|
6
|
-
adamantium (~> 0.2.0)
|
7
|
-
anima (~> 0.3.1)
|
8
|
-
ast (~> 2.2)
|
9
|
-
concord (~> 0.1.5)
|
10
|
-
diff-lcs (= 1.3)
|
11
|
-
equalizer (~> 0.0.9)
|
12
|
-
ice_nine (~> 0.11.1)
|
13
|
-
memoizable (~> 0.4.2)
|
14
|
-
mprelude (~> 0.1.0)
|
15
|
-
parser (~> 2.7.1)
|
16
|
-
procto (~> 0.0.2)
|
17
|
-
unparser (~> 0.4.6)
|
18
|
-
variable (~> 0.0.1)
|
19
|
-
|
20
|
-
GEM
|
21
|
-
remote: https://rubygems.org/
|
22
|
-
remote: https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev/
|
23
|
-
specs:
|
24
|
-
abstract_type (0.0.7)
|
25
|
-
adamantium (0.2.0)
|
26
|
-
ice_nine (~> 0.11.0)
|
27
|
-
memoizable (~> 0.4.0)
|
28
|
-
anima (0.3.1)
|
29
|
-
abstract_type (~> 0.0.7)
|
30
|
-
adamantium (~> 0.2)
|
31
|
-
equalizer (~> 0.0.11)
|
32
|
-
ast (2.4.1)
|
33
|
-
axiom-types (0.1.1)
|
34
|
-
descendants_tracker (~> 0.0.4)
|
35
|
-
ice_nine (~> 0.11.0)
|
36
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
37
|
-
codeclimate-engine-rb (0.4.1)
|
38
|
-
virtus (~> 1.0)
|
39
|
-
coercible (1.0.0)
|
40
|
-
descendants_tracker (~> 0.0.1)
|
41
|
-
concord (0.1.5)
|
42
|
-
adamantium (~> 0.2.0)
|
43
|
-
equalizer (~> 0.0.9)
|
44
|
-
descendants_tracker (0.0.4)
|
45
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
46
|
-
devtools (0.1.26)
|
47
|
-
abstract_type (~> 0.0.7)
|
48
|
-
adamantium (~> 0.2.0)
|
49
|
-
anima (~> 0.3.0)
|
50
|
-
concord (~> 0.1.5)
|
51
|
-
flay (~> 2.12.0)
|
52
|
-
flog (~> 4.6.2)
|
53
|
-
procto (~> 0.0.3)
|
54
|
-
rake (~> 12.3.0)
|
55
|
-
reek (~> 5.6.0)
|
56
|
-
rspec (~> 3.8.0)
|
57
|
-
rspec-core (~> 3.8.0)
|
58
|
-
rspec-its (~> 1.2.0)
|
59
|
-
rubocop (~> 0.79.0)
|
60
|
-
simplecov (~> 0.16.1)
|
61
|
-
yard (~> 0.9.16)
|
62
|
-
yardstick (~> 0.9.9)
|
63
|
-
diff-lcs (1.3)
|
64
|
-
docile (1.3.2)
|
65
|
-
equalizer (0.0.11)
|
66
|
-
erubis (2.7.0)
|
67
|
-
flay (2.12.1)
|
68
|
-
erubis (~> 2.7.0)
|
69
|
-
path_expander (~> 1.0)
|
70
|
-
ruby_parser (~> 3.0)
|
71
|
-
sexp_processor (~> 4.0)
|
72
|
-
flog (4.6.4)
|
73
|
-
path_expander (~> 1.0)
|
74
|
-
ruby_parser (~> 3.1, > 3.1.0)
|
75
|
-
sexp_processor (~> 4.8)
|
76
|
-
ice_nine (0.11.2)
|
77
|
-
jaro_winkler (1.5.4)
|
78
|
-
json (2.3.1)
|
79
|
-
kwalify (0.7.2)
|
80
|
-
memoizable (0.4.2)
|
81
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
82
|
-
mprelude (0.1.0)
|
83
|
-
abstract_type (~> 0.0.7)
|
84
|
-
adamantium (~> 0.2.0)
|
85
|
-
concord (~> 0.1.5)
|
86
|
-
equalizer (~> 0.0.9)
|
87
|
-
ice_nine (~> 0.11.1)
|
88
|
-
procto (~> 0.0.2)
|
89
|
-
mutant-license (0.1.0)
|
90
|
-
parallel (1.19.2)
|
91
|
-
parser (2.7.1.4)
|
92
|
-
ast (~> 2.4.1)
|
93
|
-
path_expander (1.1.0)
|
94
|
-
procto (0.0.3)
|
95
|
-
psych (3.1.0)
|
96
|
-
rainbow (3.0.0)
|
97
|
-
rake (12.3.3)
|
98
|
-
reek (5.6.0)
|
99
|
-
codeclimate-engine-rb (~> 0.4.0)
|
100
|
-
kwalify (~> 0.7.0)
|
101
|
-
parser (>= 2.5.0.0, < 2.8, != 2.5.1.1)
|
102
|
-
psych (~> 3.1.0)
|
103
|
-
rainbow (>= 2.0, < 4.0)
|
104
|
-
rspec (3.8.0)
|
105
|
-
rspec-core (~> 3.8.0)
|
106
|
-
rspec-expectations (~> 3.8.0)
|
107
|
-
rspec-mocks (~> 3.8.0)
|
108
|
-
rspec-core (3.8.2)
|
109
|
-
rspec-support (~> 3.8.0)
|
110
|
-
rspec-expectations (3.8.6)
|
111
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
112
|
-
rspec-support (~> 3.8.0)
|
113
|
-
rspec-its (1.2.0)
|
114
|
-
rspec-core (>= 3.0.0)
|
115
|
-
rspec-expectations (>= 3.0.0)
|
116
|
-
rspec-mocks (3.8.2)
|
117
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
118
|
-
rspec-support (~> 3.8.0)
|
119
|
-
rspec-support (3.8.3)
|
120
|
-
rubocop (0.79.0)
|
121
|
-
jaro_winkler (~> 1.5.1)
|
122
|
-
parallel (~> 1.10)
|
123
|
-
parser (>= 2.7.0.1)
|
124
|
-
rainbow (>= 2.2.2, < 4.0)
|
125
|
-
ruby-progressbar (~> 1.7)
|
126
|
-
unicode-display_width (>= 1.4.0, < 1.7)
|
127
|
-
ruby-progressbar (1.10.1)
|
128
|
-
ruby_parser (3.14.2)
|
129
|
-
sexp_processor (~> 4.9)
|
130
|
-
sexp_processor (4.15.0)
|
131
|
-
simplecov (0.16.1)
|
132
|
-
docile (~> 1.1)
|
133
|
-
json (>= 1.8, < 3)
|
134
|
-
simplecov-html (~> 0.10.0)
|
135
|
-
simplecov-html (0.10.2)
|
136
|
-
thread_safe (0.3.6)
|
137
|
-
unicode-display_width (1.6.1)
|
138
|
-
unparser (0.4.7)
|
139
|
-
abstract_type (~> 0.0.7)
|
140
|
-
adamantium (~> 0.2.0)
|
141
|
-
concord (~> 0.1.5)
|
142
|
-
diff-lcs (~> 1.3)
|
143
|
-
equalizer (~> 0.0.9)
|
144
|
-
parser (>= 2.6.5)
|
145
|
-
procto (~> 0.0.2)
|
146
|
-
variable (0.0.1)
|
147
|
-
equalizer (~> 0.0.11)
|
148
|
-
virtus (1.0.5)
|
149
|
-
axiom-types (~> 0.1)
|
150
|
-
coercible (~> 1.0)
|
151
|
-
descendants_tracker (~> 0.0, >= 0.0.3)
|
152
|
-
equalizer (~> 0.0, >= 0.0.9)
|
153
|
-
yard (0.9.25)
|
154
|
-
yardstick (0.9.9)
|
155
|
-
yard (~> 0.8, >= 0.8.7.2)
|
156
|
-
|
157
|
-
PLATFORMS
|
158
|
-
ruby
|
159
|
-
|
160
|
-
DEPENDENCIES
|
161
|
-
devtools (~> 0.1.25)
|
162
|
-
mutant!
|
163
|
-
mutant-license!
|
164
|
-
parallel (~> 1.3)
|
165
|
-
|
166
|
-
BUNDLED WITH
|
167
|
-
2.1.2
|
data/Gemfile.shared
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# Mutant itself uses an opensource license key.
|
2
|
-
# Scoped to https://github.com/mbj/mutant it'll
|
3
|
-
# not be useful elsewhere.
|
4
|
-
source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
|
5
|
-
gem 'mutant-license'
|
6
|
-
end
|
7
|
-
|
8
|
-
# Place for shared git sources, used for developing updates to depedencies
|
9
|
-
# where the git sources (without this file) need to be consistently edited
|
10
|
-
# into multiple Gemfiles.
|
data/README.md
DELETED
@@ -1,138 +0,0 @@
|
|
1
|
-
mutant
|
2
|
-
======
|
3
|
-
|
4
|
-

|
5
|
-
[](https://rubygems.org/gems/mutant)
|
6
|
-
[](https://mutation-testing.slack.com/messages/mutant)
|
7
|
-
|
8
|
-
## What is Mutant?
|
9
|
-
|
10
|
-
Mutant is a mutation testing tool for Ruby. Mutation testing is a technique to verify semantic coverage of your code.
|
11
|
-
|
12
|
-
## Why do I want it?
|
13
|
-
|
14
|
-
Mutant adds to your toolbox: Detection of uncovered semantics in your code.
|
15
|
-
Coverage becomes a meaningful metric!
|
16
|
-
|
17
|
-
On each detection of uncovered semantics you have the opportunity to:
|
18
|
-
|
19
|
-
* Delete dead code, as you do not want the extra semantics not specified by the tests
|
20
|
-
* Add (or improve a test) to cover the unwanted semantics.
|
21
|
-
* Learn something new about the semantics of Ruby and your direct and indirect dependencies.
|
22
|
-
|
23
|
-
## How Do I use it?
|
24
|
-
|
25
|
-
* Start with reading the [nomenclature](/docs/nomenclature.md) documentation.
|
26
|
-
* Then select and setup your [integration](/docs/nomenclature.md#integration), also make sure
|
27
|
-
you can reproduce the examples in the integration specific documentation.
|
28
|
-
* Identify your preferred mutation testing strategy. It is recommended to start at the commit level,
|
29
|
-
to test only the code you had been touching. See the [incremental](#only-mutating-changed-code)
|
30
|
-
mutation testing documentation.
|
31
|
-
|
32
|
-
## Ruby Versions
|
33
|
-
|
34
|
-
Mutant currently only works on cRuby/MRI. Starting with version 2.5.x. It supports all syntax features upto and
|
35
|
-
including Ruby 2.6.
|
36
|
-
|
37
|
-
Support for 2.7 syntax features is pending, see unparser issue: https://github.com/mbj/unparser/issues/129.
|
38
|
-
|
39
|
-
Mutant will work under Ruby 2.7 just fine, unless a 2.7 syntax feature is used. This will be resolved shortly.
|
40
|
-
|
41
|
-
## Licensing
|
42
|
-
|
43
|
-
Mutant was recently transitioned commercial software, with a free usage plan for opensource projects.
|
44
|
-
|
45
|
-
Commercial projects have to acquire a license per developer, with unlimited repositories
|
46
|
-
per developer.
|
47
|
-
|
48
|
-
Opensource projects have to acquire their free license per repository.
|
49
|
-
|
50
|
-
The license distribution happens through the `mutant-license` gem in mutants dependencies.
|
51
|
-
This gem is dynamically generated per licensee and comes with a unique license gem source
|
52
|
-
URL.
|
53
|
-
|
54
|
-
After signup for a license the following has to be added to your `Gemfile` replacing `${key}`
|
55
|
-
with the license key and `${plan}` with `com` for commercial or `oss` for opensource usage.
|
56
|
-
|
57
|
-
```ruby
|
58
|
-
source 'https://${plan}:${key}@gem.mutant.dev' do
|
59
|
-
gem 'mutant-license'
|
60
|
-
end
|
61
|
-
```
|
62
|
-
|
63
|
-
The mutant license gem contains metadata that allows mutant to verify licensed use.
|
64
|
-
|
65
|
-
For commercial licenses mutant checks the git commit author or the configured git email
|
66
|
-
to be in the set of licensed developers.
|
67
|
-
|
68
|
-
For opensource licenses mutant checks the git remotes against the license whitelist.
|
69
|
-
This allows the project maintainer to sign up and not bother collaborators with the details.
|
70
|
-
|
71
|
-
There are, apart from initial license gem installation, no remote interactions for
|
72
|
-
license validation.
|
73
|
-
|
74
|
-
To inquire for license please contact [Markus Schirp](mailto:mbj@schirp-dso.com?subject=Mutant%20License).
|
75
|
-
|
76
|
-
### Pricing
|
77
|
-
|
78
|
-
Only relevant for commercial use.
|
79
|
-
|
80
|
-
Mutant offers a subscription model under a monthly plan.
|
81
|
-
Yearly prepayments with discounts are available.
|
82
|
-
|
83
|
-
For higher volumes different arrangements can be negotiated.
|
84
|
-
|
85
|
-
## Topics
|
86
|
-
|
87
|
-
* [Nomenclature](/docs/nomenclature.md)
|
88
|
-
* [Reading Reports](/docs/reading-reports.md)
|
89
|
-
* [Known Problems](/docs/known-problems.md)
|
90
|
-
* [Limitations](/docs/limitations.md)
|
91
|
-
* [Concurrency](/docs/concurrency.md)
|
92
|
-
* [Rspec Integration](/docs/mutant-rspec.md)
|
93
|
-
* [Minitest Integration](/docs/mutant-minitest.md)
|
94
|
-
|
95
|
-
## Communication
|
96
|
-
|
97
|
-
Try the following:
|
98
|
-
|
99
|
-
* [Github Issues](https://github.com/mbj/mutant/issues)
|
100
|
-
* [Release Announcement Mailing List](https://announce.mutant.dev/signup)
|
101
|
-
* [Slack channel](mutation-testing.slack.com) request invite from [Markus Schirp](mailto:mbj@schirp-dso.com?subject=Mutation%20Testing%20Slack%20Channel%20Invite).
|
102
|
-
|
103
|
-
## Sponsoring
|
104
|
-
|
105
|
-
Mutant, as published in the opensource version, would not exist without the help
|
106
|
-
of [contributors](https://github.com/mbj/mutant/graphs/contributors) spending lots
|
107
|
-
of their private time.
|
108
|
-
|
109
|
-
Additionally, the following features where sponsored by organizations:
|
110
|
-
|
111
|
-
* The `mutant-minitest` integration was sponsored by [Arkency](https://arkency.com/)
|
112
|
-
* Mutant's initial concurrency support was sponsored by an undisclosed company that does
|
113
|
-
currently not wish to be listed here.
|
114
|
-
|
115
|
-
### Legal
|
116
|
-
|
117
|
-
Contents of this repository are maintained by:
|
118
|
-
|
119
|
-
```
|
120
|
-
Schirp DSO LTD
|
121
|
-
Director: Markus Schirp
|
122
|
-
Email: info@schirp-dso.com
|
123
|
-
Vat-ID: MT24186727
|
124
|
-
Registration: C80467
|
125
|
-
|
126
|
-
Office address:
|
127
|
-
2, Carob Lane,
|
128
|
-
Sir Harry Luke Street
|
129
|
-
Naxxar NXR 2209,
|
130
|
-
Malta
|
131
|
-
|
132
|
-
Registred Address
|
133
|
-
Phoenix Business Centre,
|
134
|
-
The Penthouse,
|
135
|
-
Old Railway Track,
|
136
|
-
Santa Venera SVR9022,
|
137
|
-
Malta
|
138
|
-
```
|