mutiny 0.2.7 → 0.2.8
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/Gemfile.lock +5 -5
- data/RELEASES.md +4 -0
- data/lib/mutiny/mutants/mutation/method/conditional_operator_insertion.rb +7 -1
- data/lib/mutiny/mutants/mutation/method/logical_operator_insertion.rb +7 -1
- data/lib/mutiny/mutants/mutation/method/unary_arithmetic_operator_insertion.rb +7 -1
- data/lib/mutiny/version.rb +1 -1
- data/mutiny.gemspec +1 -1
- data/spec/unit/mutants/mutations/method/conditional_operator_insertion_spec.rb +8 -0
- data/spec/unit/mutants/mutations/method/logical_operator_insertion_spec.rb +8 -0
- data/spec/unit/mutants/mutations/method/unary_arithmetic_operator_insertion_spec.rb +8 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffb1518ee7685be979e2c8126897e4adc1c1968a
|
4
|
+
data.tar.gz: 8e7c06989301a0b963b975e66a377ed7292fa15e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 317e070449d82430923f27b231360bc3e881189e17dd6ebef48dcea0e5e4a69dbfc3a5921ead07f4de0492ff8899a374b9e119df9a41a082a80932ec72d4efc3
|
7
|
+
data.tar.gz: 32d348132b09838e11cbde3e189b605cc4bf1fb45b8e956f4856411fdc5ef62a9d1342808eac796d75341df7cdb182fe1b08eb0c72385faecdd337c9ed79348f
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mutiny (0.2.
|
4
|
+
mutiny (0.2.8)
|
5
5
|
gli (~> 2.13.0)
|
6
|
-
metamorpher (~> 0.2.
|
6
|
+
metamorpher (~> 0.2.5)
|
7
7
|
parser (~> 2.2.2)
|
8
8
|
unparser (~> 0.2.4)
|
9
9
|
|
@@ -47,11 +47,11 @@ GEM
|
|
47
47
|
ffi (1.9.10)
|
48
48
|
gherkin (3.2.0)
|
49
49
|
gli (2.13.4)
|
50
|
-
ice_nine (0.11.
|
50
|
+
ice_nine (0.11.2)
|
51
51
|
json (1.8.3)
|
52
52
|
memoizable (0.4.2)
|
53
53
|
thread_safe (~> 0.3, >= 0.3.1)
|
54
|
-
metamorpher (0.2.
|
54
|
+
metamorpher (0.2.5)
|
55
55
|
attributable (~> 0.1.0)
|
56
56
|
parser (~> 2.2.2)
|
57
57
|
unparser (~> 0.2.4)
|
@@ -60,7 +60,7 @@ GEM
|
|
60
60
|
parser (2.2.3.0)
|
61
61
|
ast (>= 1.1, < 3.0)
|
62
62
|
powerpack (0.1.1)
|
63
|
-
procto (0.0.
|
63
|
+
procto (0.0.3)
|
64
64
|
rainbow (2.1.0)
|
65
65
|
rake (10.4.2)
|
66
66
|
rspec (3.3.0)
|
data/RELEASES.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
## v0.2.8 (22 February 2016)
|
4
|
+
* Prevent insertion operators from incorrectly mutating private and protected keywords.
|
5
|
+
* Fix bugs in mutating overlapping ASTs (by upgrading to metamorpher v0.2.5).
|
6
|
+
|
3
7
|
## v0.2.7 (22 February 2016)
|
4
8
|
* Fix bug whereby analysis was incorrectly reusing test results for all previous mutants when evaluating current mutant.
|
5
9
|
|
@@ -9,7 +9,7 @@ module Mutiny
|
|
9
9
|
builder.either!(
|
10
10
|
builder.true,
|
11
11
|
builder.false,
|
12
|
-
builder.literal!(:send, nil, builder.VAL)
|
12
|
+
builder.literal!(:send, nil, builder.VAL { |val| !keyword?(val.name) })
|
13
13
|
)
|
14
14
|
end
|
15
15
|
|
@@ -18,6 +18,12 @@ module Mutiny
|
|
18
18
|
builder.literal!(:send, root, :!)
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def keyword?(word)
|
25
|
+
%i(private protected).include?(word)
|
26
|
+
end
|
21
27
|
end
|
22
28
|
end
|
23
29
|
end
|
@@ -8,7 +8,7 @@ module Mutiny
|
|
8
8
|
def pattern
|
9
9
|
builder.either!(
|
10
10
|
builder.literal!(:int, builder.VAL),
|
11
|
-
builder.literal!(:send, nil, builder.VAL)
|
11
|
+
builder.literal!(:send, nil, builder.VAL { |val| !keyword?(val.name) })
|
12
12
|
)
|
13
13
|
end
|
14
14
|
|
@@ -17,6 +17,12 @@ module Mutiny
|
|
17
17
|
builder.literal!(:send, root, :~)
|
18
18
|
end
|
19
19
|
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def keyword?(word)
|
24
|
+
%i(private protected).include?(word)
|
25
|
+
end
|
20
26
|
end
|
21
27
|
end
|
22
28
|
end
|
@@ -9,7 +9,7 @@ module Mutiny
|
|
9
9
|
builder.either!(
|
10
10
|
builder.literal!(:int, builder.VAL { |val| val.name > 0 }),
|
11
11
|
builder.literal!(:float, builder.VAL { |val| val.name > 0 }),
|
12
|
-
builder.literal!(:send, nil, builder.VAL)
|
12
|
+
builder.literal!(:send, nil, builder.VAL { |val| !keyword?(val.name) })
|
13
13
|
)
|
14
14
|
end
|
15
15
|
|
@@ -22,6 +22,12 @@ module Mutiny
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def keyword?(word)
|
29
|
+
%i(private protected).include?(word)
|
30
|
+
end
|
25
31
|
end
|
26
32
|
end
|
27
33
|
end
|
data/lib/mutiny/version.rb
CHANGED
data/mutiny.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_runtime_dependency "parser", "~> 2.2.2"
|
22
22
|
spec.add_runtime_dependency "unparser", "~> 0.2.4"
|
23
23
|
spec.add_runtime_dependency "gli", "~> 2.13.0"
|
24
|
-
spec.add_runtime_dependency "metamorpher", "~> 0.2.
|
24
|
+
spec.add_runtime_dependency "metamorpher", "~> 0.2.5"
|
25
25
|
|
26
26
|
spec.add_development_dependency "bundler", "~> 1.11"
|
27
27
|
spec.add_development_dependency "rake", "~> 10.4.2"
|
@@ -10,6 +10,14 @@ module Mutiny
|
|
10
10
|
it "mutates variable to negated variable" do
|
11
11
|
expect(subject.mutate("return a")).to eq(["return !a"])
|
12
12
|
end
|
13
|
+
|
14
|
+
it "does not mutate private keyword" do
|
15
|
+
expect(subject.mutate("class Foo; private; end")).to eq([])
|
16
|
+
end
|
17
|
+
|
18
|
+
it "does not mutate protected keyword" do
|
19
|
+
expect(subject.mutate("class Foo; protected; end")).to eq([])
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
end
|
@@ -10,6 +10,14 @@ module Mutiny
|
|
10
10
|
it "mutates variable to inverted variable" do
|
11
11
|
expect(subject.mutate("return a")).to eq(["return ~a"])
|
12
12
|
end
|
13
|
+
|
14
|
+
it "does not mutate private keyword" do
|
15
|
+
expect(subject.mutate("class Foo; private; end")).to eq([])
|
16
|
+
end
|
17
|
+
|
18
|
+
it "does not mutate protected keyword" do
|
19
|
+
expect(subject.mutate("class Foo; protected; end")).to eq([])
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
end
|
@@ -14,6 +14,14 @@ module Mutiny
|
|
14
14
|
it "mutates positive variable to negative variable" do
|
15
15
|
expect(subject.mutate("a = b")).to eq(["a = -b"])
|
16
16
|
end
|
17
|
+
|
18
|
+
it "does not mutate private keyword" do
|
19
|
+
expect(subject.mutate("class Foo; private; end")).to eq([])
|
20
|
+
end
|
21
|
+
|
22
|
+
it "does not mutate protected keyword" do
|
23
|
+
expect(subject.mutate("class Foo; protected; end")).to eq([])
|
24
|
+
end
|
17
25
|
end
|
18
26
|
end
|
19
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mutiny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Louis Rose
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.2.
|
61
|
+
version: 0.2.5
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.2.
|
68
|
+
version: 0.2.5
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|