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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 554e8201c70c0ab7fe048dde7f53406275110ed7
4
- data.tar.gz: e5c9ea2e62c5f1d00260753c0cff7e5f62ac5f93
3
+ metadata.gz: ffb1518ee7685be979e2c8126897e4adc1c1968a
4
+ data.tar.gz: 8e7c06989301a0b963b975e66a377ed7292fa15e
5
5
  SHA512:
6
- metadata.gz: 1d5688557c103ff17e9222f9cc438946ceed1d07168ee78c7b02398c8807e9575b36a85aafcae048aa0daa9d119fa6e1c7ab48ed6cc7815bbac4cce81c76b6d6
7
- data.tar.gz: 48d5ff4b9e8fbbc472a7f9325e4f355c9e6ef3b38488126a2f72e22bcf2746b252bdf6eb38b6f5738d5a161149eb07fc98477ca22a02fe2964623191d67ef233
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.7)
4
+ mutiny (0.2.8)
5
5
  gli (~> 2.13.0)
6
- metamorpher (~> 0.2.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.1)
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.3)
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.2)
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
@@ -1,3 +1,3 @@
1
1
  module Mutiny
2
- VERSION = "0.2.7"
2
+ VERSION = "0.2.8"
3
3
  end
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.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.7
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-02-22 00:00:00.000000000 Z
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.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.2
68
+ version: 0.2.5
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement