mesa_test 0.2.1 → 0.2.2

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.
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.