what_to_run 0.0.1.pre → 0.1.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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6fd560629ae7b8791f59fe5cfb47d9049febbe04
4
- data.tar.gz: 58c24411992a29a737103d1072e62594e311b0eb
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NWI3ZjRiMTMzYmQ5YzA0NmM4NjJkNTViM2VkOTJkZTI2NDQxNmE4MQ==
5
+ data.tar.gz: !binary |-
6
+ MmE2Yzc1YWVhMjA3NDliZjk4YTQ5NzdlNjljNTg4NzZjMjBjODM1Mg==
5
7
  SHA512:
6
- metadata.gz: 3861db56557e5f50e273a43caf790aa19163068b69a0e27f9cdc7ef8bf79189a3f9878017b3eda49c1aa9241778395e86e7e068fc622446f3c5c127de90b1159
7
- data.tar.gz: 87d098e0915aad867239ebf93280d44d1487dab7b288294fbcc46fb05fb2908d48e6dba83c8481a1199b2c60628a4d51978e2a021bba98735d4f90b3d7b64c7d
8
+ metadata.gz: !binary |-
9
+ ZmY3Yzk3ZmY1ZmMwMTMzNTc3ZWYyYzRjNjU5NjVhODY0NmNkODI2MTM4YzJi
10
+ NGNjYTRhNTg5MjRkMTdhY2NhNWNhYjBhZDE4M2VjYjEwOTI1MTJhNWFiNWRh
11
+ NDAxNjFiMjc1NDUyYTI0YTllYzBlNTk0NmQ2MWQ2MWYyM2NiMmQ=
12
+ data.tar.gz: !binary |-
13
+ ZGZmMzBiYjZkZmUzMzcxNDZhZWU5MjgxZTAwMDQwMjAwOGY0MTQwZTliMDdm
14
+ MmNjNjczNTdlN2YzNjg5YWUyZWFlYzkwZTlhMTIwMWY0YWQ1MDk1MjRhNjY0
15
+ MmIxYzM3M2NjYWYxYTM3OTM4ZTgzOTNhOGRlOWRkY2JhYjQzNjI=
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # What To Run
2
2
 
3
+ [![Build Status](https://travis-ci.org/DyegoCosta/what_to_run.svg?branch=master)](https://travis-ci.org/DyegoCosta/what_to_run)
4
+
3
5
  What To Run is a lib for regression test selection, use it to predict which tests you should run when you make any modification on your codebase.
4
6
 
5
7
  This lib is based on [@tenderlove](https://github.com/tenderlove) idea and guidance, make sure to read his [blog post](http://tenderlovemaking.com/2015/02/13/predicting-test-failues.html) on the subject.
@@ -0,0 +1,12 @@
1
+ require 'rspec/core/rake_task'
2
+ require 'rake/extensiontask'
3
+
4
+ Rake::ExtensionTask.new('coverage_peeker') do |ext|
5
+ ext.lib_dir = 'lib/coverage_peeker'
6
+ end
7
+
8
+ RSpec::Core::RakeTask.new(:spec)
9
+
10
+ Rake::Task[:spec].prerequisites << :compile
11
+
12
+ task :default => :spec
@@ -0,0 +1,43 @@
1
+ #include <ruby.h>
2
+
3
+ VALUE CoveragePeeker = Qnil;
4
+
5
+ extern VALUE rb_get_coverages(void);
6
+
7
+ static int
8
+ coverage_peek_result_i(st_data_t key, st_data_t val, st_data_t h)
9
+ {
10
+ VALUE path = (VALUE)key;
11
+ VALUE coverage = (VALUE)val;
12
+ VALUE coverages = (VALUE)h;
13
+ coverage = rb_ary_dup(coverage);
14
+ rb_ary_freeze(coverage);
15
+ rb_hash_aset(coverages, path, coverage);
16
+ return ST_CONTINUE;
17
+ }
18
+
19
+ /*
20
+ * call-seq:
21
+ * Coverage.peek_result => hash
22
+ *
23
+ * Returns a hash that contains filename as key and coverage array as value.
24
+ */
25
+ static VALUE
26
+ rb_coverage_peek_result(VALUE klass)
27
+ {
28
+ VALUE coverages = rb_get_coverages();
29
+ VALUE ncoverages = rb_hash_new();
30
+ if (!RTEST(coverages)) {
31
+ rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");
32
+ }
33
+ st_foreach(RHASH_TBL(coverages), coverage_peek_result_i, ncoverages);
34
+ rb_hash_freeze(ncoverages);
35
+ return ncoverages;
36
+ }
37
+
38
+ void
39
+ Init_coverage_peeker(void)
40
+ {
41
+ VALUE rb_mCoveragePeeker = rb_define_module("CoveragePeeker");
42
+ rb_define_module_function(rb_mCoveragePeeker, "peek_result", rb_coverage_peek_result, 0);
43
+ }
@@ -1,5 +1,5 @@
1
- require 'coverage_peeker/coverage_peeker'
2
-
3
1
  module CoveragePeeker
4
2
  VERSION = '1.0.0'
5
3
  end
4
+
5
+ require 'coverage_peeker/coverage_peeker'
@@ -13,7 +13,9 @@ RSpec.configuration.after(:suite) {
13
13
 
14
14
  RSpec.configuration.around(:example) do |example|
15
15
  before = CoveragePeeker.peek_result
16
+ puts 'before:' + before.object_id.to_s
16
17
  example.call
17
18
  after = CoveragePeeker.peek_result
19
+ puts 'after:' + after.object_id.to_s
18
20
  LOGS << [ example.full_description, before, after ]
19
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: what_to_run
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
@@ -11,24 +11,44 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2015-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake-compiler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: '0.9'
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.0
24
+ type: :development
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '0.9'
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.0
14
34
  - !ruby/object:Gem::Dependency
15
35
  name: rugged
16
36
  requirement: !ruby/object:Gem::Requirement
17
37
  requirements:
18
- - - "~>"
38
+ - - ~>
19
39
  - !ruby/object:Gem::Version
20
40
  version: '0.21'
21
- - - ">="
41
+ - - ! '>='
22
42
  - !ruby/object:Gem::Version
23
43
  version: 0.21.0
24
44
  type: :runtime
25
45
  prerelease: false
26
46
  version_requirements: !ruby/object:Gem::Requirement
27
47
  requirements:
28
- - - "~>"
48
+ - - ~>
29
49
  - !ruby/object:Gem::Version
30
50
  version: '0.21'
31
- - - ">="
51
+ - - ! '>='
32
52
  - !ruby/object:Gem::Version
33
53
  version: 0.21.0
34
54
  description: Predict which tests are likely to fail after you’ve changed the code
@@ -40,10 +60,11 @@ extensions:
40
60
  extra_rdoc_files: []
41
61
  files:
42
62
  - README.md
63
+ - Rakefile
43
64
  - bin/what_to_run
65
+ - ext/coverage_peeker/coverage_peeker.c
44
66
  - ext/coverage_peeker/extconf.rb
45
67
  - lib/coverage_peeker.rb
46
- - lib/coverage_peeker/coverage_peeker.bundle
47
68
  - lib/what_to_run.rb
48
69
  - lib/what_to_run/minitest.rb
49
70
  - lib/what_to_run/rspec.rb
@@ -57,17 +78,17 @@ require_paths:
57
78
  - lib
58
79
  required_ruby_version: !ruby/object:Gem::Requirement
59
80
  requirements:
60
- - - "~>"
81
+ - - ! '>='
61
82
  - !ruby/object:Gem::Version
62
- version: '2.3'
83
+ version: 1.9.3
63
84
  required_rubygems_version: !ruby/object:Gem::Requirement
64
85
  requirements:
65
- - - ">"
86
+ - - ! '>='
66
87
  - !ruby/object:Gem::Version
67
- version: 1.3.1
88
+ version: '0'
68
89
  requirements: []
69
90
  rubyforge_project:
70
- rubygems_version: 2.2.2
91
+ rubygems_version: 2.4.6
71
92
  signing_key:
72
93
  specification_version: 4
73
94
  summary: Regression test selection