mutiny 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
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