mesa_test 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +5 -5
  2. data/bin/mesa_test +24 -9
  3. data/lib/mesa_test.rb +25 -0
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: e39eda31af33458a33b066006203290ebe1c7b51daf79b8347bda4da7a28b5c9
4
- data.tar.gz: 2a5d0c0ccb199c0be121b0614e5ea28252d5802affa1d26def601433df125fd9
2
+ SHA1:
3
+ metadata.gz: 26ef4bd6ae1c1477a4854e2538e82739cc014f8f
4
+ data.tar.gz: 3c6f8083a3b8f398581d84dbd90e655b7d106a2b
5
5
  SHA512:
6
- metadata.gz: 140d12aeeb0211108a56c52f537811ac46cba6c3792599ab76a33a536d575951b1d4d1b2b86d9ae37eb2055dc2eae3123ece53b4bd176f76f8176fa661a32b60
7
- data.tar.gz: bd83ecabec1798df5e2142d8e5381f8d0fc559671e9b84913362e66b70b2b81b82ce6a97f27ca5371444aa0643fa96d67ac8ac7262dc40dd0fda1236986a8d24
6
+ metadata.gz: 4c3d20717f37ff348806b287c97e450e102e8bbd21bdebdeffbe54c265091d578c0d3dee5aa7761aa8ce6912b61ad18e7bda8ddfd88f956540b9ebde36104183
7
+ data.tar.gz: 8b096bd903232e3ebd9b9eb9db216bac67540368417307eac3596e991da07a67768e0cc83d36804e8c62167d2b6677698e95295a79caf26794a03c49c398aee3
data/bin/mesa_test CHANGED
@@ -59,11 +59,15 @@ class MesaTest < Thor
59
59
  type: :string, default: 'all', aliases: '-m'
60
60
  option :log, type: :boolean, default: true, desc: 'Save yml file of test ' \
61
61
  'results in test case directory.'
62
+ option :auto_diff, desc: 'Automatically determine if diffs should be run '\
63
+ 'from svn log entry. Overrides --diff or --no-diff.',
64
+ type: :boolean, default: false
62
65
  def test_one(mesa_dir, test_case_name)
63
66
  s = create_and_check_submitter(force: options[:force]) if options[:submit]
64
67
  m = create_and_check_mesa(mesa_dir: mesa_dir, diff: options[:diff],
65
68
  mod: options[:module].downcase.to_sym,
66
- use_svn: options[:svn], using_sdk: using_sdk?(s))
69
+ use_svn: options[:svn], using_sdk: using_sdk?(s),
70
+ auto_diff: options[:auto_diff])
67
71
  t = create_and_check_test_case(mesa: m, test_case_name: test_case_name,
68
72
  mod: options[:module].downcase.to_sym)
69
73
 
@@ -113,11 +117,16 @@ class MesaTest < Thor
113
117
  type: :string, default: 'all', aliases: '-m'
114
118
  option :log, type: :boolean, default: true, desc: 'Save yml file of test ' \
115
119
  'results in test case directory.'
120
+ option :auto_diff, desc: 'Automatically determine if diffs should be run '\
121
+ 'from svn log entry. Overrides --diff or --no-diff.',
122
+ type: :boolean, default: false
116
123
  def test_revision(mesa_dir)
117
124
  s = create_and_check_submitter(force: options[:force]) if options[:submit]
118
125
  m = create_and_check_mesa(mesa_dir: mesa_dir, diff: options[:diff],
119
126
  mod: options[:module].downcase.to_sym,
120
- use_svn: options[:svn], using_sdk: using_sdk?(s))
127
+ use_svn: options[:svn],
128
+ using_sdk: using_sdk?(s),
129
+ auto_diff: options[:auto_diff])
121
130
 
122
131
  # run all tests
123
132
  m.each_test_run_and_diff(log_results: options[:log],
@@ -274,8 +283,11 @@ class MesaTest < Thor
274
283
  'submission of complete results.', default: false
275
284
  option :log, type: :boolean, default: true, desc: 'Save yml file of test ' \
276
285
  'results in test case directory.'
286
+ option :auto_diff, desc: 'Automatically determine if diffs should be run '\
287
+ 'from svn log entry. Overrides --diff or --no-diff.',
288
+ type: :boolean, default: false
277
289
  def install_and_test_revision(version, mesa_dir)
278
- s = nil # to make sure using_sdk? below will work properly
290
+ s = nil # to make sure using_sdk? below will work properly
279
291
  s = create_and_check_submitter(force: options[:force]) if options[:submit]
280
292
  mesa_version, diff = filter_version_and_diff(version, s)
281
293
  if mesa_version.nil?
@@ -292,7 +304,8 @@ class MesaTest < Thor
292
304
  shell.say "\nFailed in compiling MESA r-#{m.version_number}.", :red
293
305
  else
294
306
  check_mesa(m)
295
- update_mesa(mesa: m, diff: diff, mod: options[:module].downcase.to_sym)
307
+ update_mesa(mesa: m, diff: diff, mod: options[:module].downcase.to_sym,
308
+ auto_diff: options[:auto_diff])
296
309
 
297
310
  # run all tests. Don't be fooled, whether or not a diff happens is set
298
311
  # by the diff attribute of the mesa object, set above.
@@ -335,10 +348,10 @@ class MesaTest < Thor
335
348
  end
336
349
 
337
350
  def create_and_check_mesa(mesa_dir:, use_svn: true, diff: true, mod: :all,
338
- using_sdk: true)
351
+ using_sdk: true, auto_diff: false)
339
352
  m = Mesa.new(mesa_dir: mesa_dir, use_svn: use_svn, using_sdk: using_sdk)
340
353
  check_mesa(m)
341
- update_mesa(mesa: m, diff: diff, mod: mod)
354
+ update_mesa(mesa: m, diff: diff, mod: mod, auto_diff: true)
342
355
  m
343
356
  end
344
357
 
@@ -349,10 +362,12 @@ class MesaTest < Thor
349
362
  end
350
363
  end
351
364
 
352
- def update_mesa(mesa:, diff: true, mod: :all)
365
+ def update_mesa(mesa:, diff: true, mod: :all, auto_diff: false)
353
366
  mesa.load_test_source_data(mod: mod)
354
- # choose whether to update checksums
355
- mesa.update_checksums = !diff
367
+ # choose whether to update checksums.
368
+ mesa.update_checksums = !diff unless diff.nil?
369
+ # automatically figure out diff situation. Overrides choice from diff!
370
+ mesa.determine_diff if auto_diff
356
371
  end
357
372
 
358
373
  def create_and_check_test_case(mesa:, test_case_name:, mod: :all)
data/lib/mesa_test.rb CHANGED
@@ -553,6 +553,31 @@ class Mesa
553
553
  @use_svn
554
554
  end
555
555
 
556
+ def determine_diff
557
+ # automatically determine if update_checksums should be true (don't do
558
+ # diffs or true (DO do diffs). Only works if svn data has ALREADY been
559
+ # loaded
560
+
561
+ # don't do anything to @update_checksums if we haven't loaded svn data
562
+ return unless @svn_log
563
+
564
+ # by default, DON'T do diffs
565
+ @update_checksums = true
566
+
567
+ # list of phrases, which, if present in the log entry, will trigger diffs
568
+ [
569
+ /updated? checksums?/i,
570
+ /checksums? updated?/i,
571
+ /ready for diffs?/i,
572
+ ].each { |trigger| @update_checksums = false if trigger =~ @svn_log }
573
+ if @update_checksums
574
+ shell.say "\nFrom svn log, didn't decide to tak diffs."
575
+ else
576
+ shell.say "From svn log, automatically decided to take diffs."
577
+ end
578
+ shell.say "log entry: #{@svn_log}"
579
+ end
580
+
556
581
  def version_number
557
582
  version = @svn_version || 0
558
583
  # fall back to MESA_DIR/data's version number svn didn't work
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mesa_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Wolf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-07 00:00:00.000000000 Z
11
+ date: 2018-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -82,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  version: '0'
83
83
  requirements: []
84
84
  rubyforge_project:
85
- rubygems_version: 2.7.6
85
+ rubygems_version: 2.6.14
86
86
  signing_key:
87
87
  specification_version: 4
88
88
  summary: Command line tool for running and reporting the MESA test suites.