delta_test 1.0.2 → 1.0.3
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/delta_test/cli/command_base.rb +55 -0
- data/lib/delta_test/cli/exec_command.rb +3 -1
- data/lib/delta_test/cli/stats_save_command.rb +7 -3
- data/lib/delta_test/version.rb +1 -1
- data/spec/lib/delta_test/cli/command_base_spec.rb +60 -0
- data/spec/lib/delta_test/cli/exec_command_spec.rb +2 -0
- data/spec/lib/delta_test/cli/stats_save_command_spec.rb +33 -0
- data/spec/rails/Gemfile.lock +1 -1
- metadata +1 -2
- data/CHANGELOG.md +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a176739129c5821a3db48e783d057a02ac2e7d7f
|
4
|
+
data.tar.gz: 76065c7dd622c9b4077431e5a5662a97fbb27d80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b6a2b75604884e8c1d93929e4c4a3d179392c4df79ed581e7206e69e474553186413c49e1435bca207c905a20fe847435ed0ec2391a7bd3c954e9f7e5ba486a
|
7
|
+
data.tar.gz: 7a5df579dfe7ca4a60eebdd863094e7e75cb5584f4dbb5572bd58dd23ac30f3e56246a6a42cc916db6b4b51724b750a488b224e494320f8fddbc259ffeb431b6
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'fileutils'
|
1
2
|
require 'open3'
|
2
3
|
require 'shellwords'
|
3
4
|
require 'thread'
|
@@ -111,6 +112,60 @@ module DeltaTest
|
|
111
112
|
Object.const_defined?(:Bundler) || !!Utils.find_file_upward('Gemfile')
|
112
113
|
end
|
113
114
|
|
115
|
+
###
|
116
|
+
# Wrapper of hook_create_error_file
|
117
|
+
#
|
118
|
+
# @block
|
119
|
+
###
|
120
|
+
def record_error
|
121
|
+
hook_create_error_file
|
122
|
+
yield if block_given?
|
123
|
+
end
|
124
|
+
|
125
|
+
###
|
126
|
+
# Hook on exit and record errors
|
127
|
+
###
|
128
|
+
def hook_create_error_file
|
129
|
+
at_exit do
|
130
|
+
create_error_file unless current_process_status_success?
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
###
|
135
|
+
# Check exit status of the current process
|
136
|
+
#
|
137
|
+
# @return {Boolean}
|
138
|
+
###
|
139
|
+
def current_process_status_success?
|
140
|
+
$!.nil? || $!.is_a?(SystemExit) && $!.success?
|
141
|
+
end
|
142
|
+
|
143
|
+
###
|
144
|
+
# Check if any error is recorded
|
145
|
+
#
|
146
|
+
# @return {Boolean}
|
147
|
+
###
|
148
|
+
def error_recorded?
|
149
|
+
File.exists?(error_file)
|
150
|
+
end
|
151
|
+
|
152
|
+
###
|
153
|
+
# Path for an error file
|
154
|
+
#
|
155
|
+
# @return {Pathname}
|
156
|
+
###
|
157
|
+
def error_file
|
158
|
+
@error_file ||= DeltaTest.config.tmp_table_file.parent.join('error.txt')
|
159
|
+
end
|
160
|
+
|
161
|
+
###
|
162
|
+
# Create an error file
|
163
|
+
###
|
164
|
+
def create_error_file
|
165
|
+
FileUtils.mkdir_p(File.dirname(error_file))
|
166
|
+
File.new(error_file, 'w')
|
167
|
+
end
|
168
|
+
|
114
169
|
end
|
115
170
|
end
|
116
171
|
end
|
@@ -9,12 +9,16 @@ module DeltaTest
|
|
9
9
|
class StatsSaveCommand < CommandBase
|
10
10
|
|
11
11
|
def invoke!
|
12
|
+
return if error_recorded?
|
13
|
+
|
12
14
|
load_tmp_table_files
|
13
15
|
cleanup_tmp_table_files
|
14
|
-
save_table_file
|
15
16
|
|
16
|
-
|
17
|
-
|
17
|
+
if table.any?
|
18
|
+
save_table_file
|
19
|
+
stage_table_file
|
20
|
+
sync_table_file unless @options['no-sync']
|
21
|
+
end
|
18
22
|
end
|
19
23
|
|
20
24
|
def load_tmp_table_files
|
data/lib/delta_test/version.rb
CHANGED
@@ -161,4 +161,64 @@ describe DeltaTest::CLI::CommandBase do
|
|
161
161
|
|
162
162
|
end
|
163
163
|
|
164
|
+
describe '#error_file' do
|
165
|
+
|
166
|
+
it 'should return a path for an error file' do
|
167
|
+
expect(command_base.error_file).to be_a(Pathname)
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
|
172
|
+
describe '#create_error_file' do
|
173
|
+
|
174
|
+
it 'should create an error file' do
|
175
|
+
expect(File.exists?(command_base.error_file)).to be(false)
|
176
|
+
command_base.create_error_file
|
177
|
+
expect(File.exists?(command_base.error_file)).to be(true)
|
178
|
+
end
|
179
|
+
|
180
|
+
end
|
181
|
+
|
182
|
+
describe '#error_recorded?' do
|
183
|
+
|
184
|
+
it 'should return false if no error file exists' do
|
185
|
+
expect(File.exists?(command_base.error_file)).to be(false)
|
186
|
+
expect(command_base.error_recorded?).to be(false)
|
187
|
+
end
|
188
|
+
|
189
|
+
it 'should return false if an error file exists' do
|
190
|
+
command_base.create_error_file
|
191
|
+
expect(File.exists?(command_base.error_file)).to be(true)
|
192
|
+
expect(command_base.error_recorded?).to be(true)
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
197
|
+
describe '#record_error' do
|
198
|
+
|
199
|
+
before do
|
200
|
+
allow(command_base).to receive(:hook_create_error_file).and_return(nil)
|
201
|
+
end
|
202
|
+
|
203
|
+
it 'should call hook_create_error_file' do
|
204
|
+
expect(command_base).to receive(:hook_create_error_file)
|
205
|
+
command_base.record_error
|
206
|
+
end
|
207
|
+
|
208
|
+
it 'should yield a given block' do
|
209
|
+
called = false
|
210
|
+
command_base.record_error { called = true }
|
211
|
+
expect(called).to be(true)
|
212
|
+
end
|
213
|
+
|
214
|
+
end
|
215
|
+
|
216
|
+
describe '#hook_create_error_file' do
|
217
|
+
|
218
|
+
end
|
219
|
+
|
220
|
+
describe '#current_process_status_success?' do
|
221
|
+
|
222
|
+
end
|
223
|
+
|
164
224
|
end
|
@@ -27,6 +27,8 @@ describe DeltaTest::CLI::ExecCommand do
|
|
27
27
|
|
28
28
|
allow(command.stats).to receive(:base_commit).and_return(base_commit)
|
29
29
|
allow(command.stats).to receive(:table_file_path).and_return(nil)
|
30
|
+
|
31
|
+
allow(command).to receive(:hook_create_error_file).and_return(nil)
|
30
32
|
end
|
31
33
|
|
32
34
|
describe '#profile_mode?' do
|
@@ -49,6 +49,11 @@ describe DeltaTest::CLI::StatsSaveCommand do
|
|
49
49
|
|
50
50
|
describe '#invoke!' do
|
51
51
|
|
52
|
+
before do
|
53
|
+
allow(command.table).to receive(:any?).and_return(true)
|
54
|
+
allow(command).to receive(:error_recorded?).and_return(false)
|
55
|
+
end
|
56
|
+
|
52
57
|
it 'should execute procedures' do
|
53
58
|
expect(command).to receive(:load_tmp_table_files).and_return(nil).once.ordered
|
54
59
|
expect(command).to receive(:cleanup_tmp_table_files).and_return(nil).once.ordered
|
@@ -73,6 +78,34 @@ describe DeltaTest::CLI::StatsSaveCommand do
|
|
73
78
|
|
74
79
|
end
|
75
80
|
|
81
|
+
context 'no table data' do
|
82
|
+
|
83
|
+
it 'should not create an empty table file' do
|
84
|
+
allow(command.table).to receive(:any?).and_return(false)
|
85
|
+
expect(command).to receive(:load_tmp_table_files).and_return(nil).once.ordered
|
86
|
+
expect(command).to receive(:cleanup_tmp_table_files).and_return(nil).once.ordered
|
87
|
+
expect(command).not_to receive(:save_table_file)
|
88
|
+
expect(command).not_to receive(:stage_table_file)
|
89
|
+
expect(command).not_to receive(:sync_table_file)
|
90
|
+
command.invoke!
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'error_recorded?' do
|
96
|
+
|
97
|
+
it 'should do nothing' do
|
98
|
+
allow(command).to receive(:error_recorded?).and_return(true)
|
99
|
+
expect(command).not_to receive(:load_tmp_table_files)
|
100
|
+
expect(command).not_to receive(:cleanup_tmp_table_files)
|
101
|
+
expect(command).not_to receive(:save_table_file)
|
102
|
+
expect(command).not_to receive(:stage_table_file)
|
103
|
+
expect(command).not_to receive(:sync_table_file)
|
104
|
+
command.invoke!
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
76
109
|
end
|
77
110
|
|
78
111
|
describe '#tmp_table_files' do
|
data/spec/rails/Gemfile.lock
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delta_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuki Iwanaga
|
@@ -121,7 +121,6 @@ files:
|
|
121
121
|
- ".gitignore"
|
122
122
|
- ".rspec"
|
123
123
|
- ".ruby-version"
|
124
|
-
- CHANGELOG.md
|
125
124
|
- Gemfile
|
126
125
|
- LICENSE.txt
|
127
126
|
- README.md
|
data/CHANGELOG.md
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
Change logs
|
2
|
-
===========
|
3
|
-
|
4
|
-
master
|
5
|
-
------
|
6
|
-
|
7
|
-
N/A
|
8
|
-
|
9
|
-
|
10
|
-
1.0.1
|
11
|
-
-----
|
12
|
-
|
13
|
-
- [feature] #26 Subversioning to avoid conflicts
|
14
|
-
|
15
|
-
|
16
|
-
1.0.0
|
17
|
-
-----
|
18
|
-
|
19
|
-
- [feature] #25 Versioning table files. Including many refactorings and bug fixes
|
20
|
-
|
21
|
-
|
22
|
-
0.2.0
|
23
|
-
-----
|
24
|
-
|
25
|
-
- [dev] #1 Setup CircleCI. and others
|
26
|
-
- [dev] #2 Add codeclimate
|
27
|
-
- [dev] #3 Fix bundle install command in rails directory. and others
|
28
|
-
- [bugfix] #4 Use hook scope names of rspec v2
|
29
|
-
- [bugfix] #8 Exit with real status
|
30
|
-
- [bugfix] #9 Fail to obtain current spec file path with RSpec 2
|
31
|
-
- [improvement] #12 Use original profiler
|
32
|
-
- [improvement] #14 Improve profiler
|
33
|
-
- [improvement] #15 Fully support parallel_tests
|
34
|
-
- [improvement] #19 Auto bundle exec
|
35
|
-
- [feature] #20 Run full tests
|
36
|
-
- [feature] #21 Add clear command
|
37
|
-
|
38
|
-
And many bugfixes and refactorings.
|
39
|
-
|
40
|
-
|
41
|
-
0.1.0
|
42
|
-
-----
|
43
|
-
|
44
|
-
- The first release
|