mesa_test 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/mesa_test +82 -5
- data/lib/mesa_test.rb +106 -87
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6bc6d6b90192e1bfd95d973de84b1ad786cbbe6
|
4
|
+
data.tar.gz: e5a9666a5fe7fd43f075e0b997f8d8896c202061
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6aa98742c529c1ac14b2565083da3598f7a91173300a3b08b9e621ea0ef32f6dfc4918227dc5e25feeadfaaf8dc0b0b15180f99ccfa22592324731902a65869e
|
7
|
+
data.tar.gz: 7658a4c416bf42afb70ca55d70ed97b53d3379eec2557b6e9edd216ff99296e712ae21fe10014b8053debb9545e4d1a9c8f154aa063119b0e30e103e58ce7e7b
|
data/bin/mesa_test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
require_relative '../lib/mesa_test'
|
3
|
+
# require_relative '../lib/mesa_test'
|
4
|
+
require 'mesa_test'
|
4
5
|
require 'thor'
|
5
6
|
|
6
7
|
class MesaTest < Thor
|
7
|
-
|
8
8
|
desc "setup [CONFIG_FILE]", "Setup MesaTestHub config file."
|
9
9
|
long_desc <<-LONGDESC
|
10
10
|
If optional CONFIG_FILE is provided, search for that file and load it
|
@@ -16,8 +16,6 @@ class MesaTest < Thor
|
|
16
16
|
MesaTestSubmitter.new_from_config(config_file: config_file).setup
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
19
|
desc "test_one MESA_DIR TEST_CASE", "run, check, and submit one test case"
|
22
20
|
long_desc <<-LONGDESC
|
23
21
|
Run and check TEST_CASE, which resides in MESA_DIR/star/test_suite. Then
|
@@ -36,7 +34,6 @@ class MesaTest < Thor
|
|
36
34
|
option :log, type: :boolean, default: true
|
37
35
|
option :submit, type: :boolean, default: true
|
38
36
|
def test_one(mesa_dir, test_case_name)
|
39
|
-
|
40
37
|
if options[:submit]
|
41
38
|
s = MesaTestSubmitter.new_from_config
|
42
39
|
unless options[:force]
|
@@ -132,6 +129,86 @@ class MesaTest < Thor
|
|
132
129
|
s.submit_all(m) if options[:submit]
|
133
130
|
end
|
134
131
|
|
132
|
+
desc 'submit_one MESA_DIR TEST_CASE', 'submit one completed test case'
|
133
|
+
long_desc <<-LONGDESC
|
134
|
+
Load complete test case data from existing YAML file and submit to MESA
|
135
|
+
|
136
|
+
With --force option, skip confirmation of computer details, assuming values
|
137
|
+
in ~/.mesa_test.yml are correct.
|
138
|
+
LONGDESC
|
139
|
+
option :force, type: :boolean
|
140
|
+
def submit_one(mesa_dir, test_case_name)
|
141
|
+
s = MesaTestSubmitter.new_from_config
|
142
|
+
unless options[:force]
|
143
|
+
s.setup unless s.confirm_computer_data
|
144
|
+
end
|
145
|
+
|
146
|
+
check_user_and_computer s
|
147
|
+
|
148
|
+
# set up and check mesa directory (doesn't really check to see if it's
|
149
|
+
# installed, just to see if it has a version number and a test suite
|
150
|
+
# directory)
|
151
|
+
m = Mesa.new mesa_dir: mesa_dir
|
152
|
+
unless m.installed?
|
153
|
+
raise MesaDirError, "Invalid MESA_DIR: #{mesa_dir}. Please download " \
|
154
|
+
'and install a valid MESA version or provide the path to one.'
|
155
|
+
end
|
156
|
+
m.load_test_source_data
|
157
|
+
|
158
|
+
# make sure the test case is valid
|
159
|
+
t = m.find_test_case test_case_name: test_case_name
|
160
|
+
if t.nil?
|
161
|
+
msg = "No such test case, #{test_case_name} found in any of "
|
162
|
+
msg << MesaTestCase.modules.map do |mod|
|
163
|
+
File.join(m.test_suite_dir(mod: mod), 'do1_test_source')
|
164
|
+
end.join(' or ')
|
165
|
+
msg << '.'
|
166
|
+
raise TestCaseDirError, msg
|
167
|
+
end
|
168
|
+
|
169
|
+
# load test results
|
170
|
+
t.load_results
|
171
|
+
|
172
|
+
# submit results
|
173
|
+
print 'Submitting results to ' + s.base_uri + '... '
|
174
|
+
s.submit(t)
|
175
|
+
puts "Done.\n"
|
176
|
+
end
|
177
|
+
|
178
|
+
desc 'submit_all MESA_DIR', 'submit all [previously run] test cases'
|
179
|
+
long_desc <<-LONGDESC
|
180
|
+
Load results for all test cases residing in MESA_DIR/star/test_suite. Then
|
181
|
+
submit results to MesaTestHub. Specifically, loads and submits all tests
|
182
|
+
detailed in MESA_DIR/star/test_suite/do1_test_source.
|
183
|
+
|
184
|
+
With --force option, skip confirmation of computer details, assuming values
|
185
|
+
in ~/.mesa_test.yml are correct.
|
186
|
+
LONGDESC
|
187
|
+
option :force, type: :boolean
|
188
|
+
def submit_all(mesa_dir)
|
189
|
+
s = MesaTestSubmitter.new_from_config
|
190
|
+
unless options[:force]
|
191
|
+
s.setup unless s.confirm_computer_data
|
192
|
+
end
|
193
|
+
check_user_and_computer s
|
194
|
+
|
195
|
+
# set up and check mesa directory (doesn't really check to see if it's
|
196
|
+
# installed, just to see if it has a version number and a test suite
|
197
|
+
# directory)
|
198
|
+
m = Mesa.new mesa_dir: mesa_dir
|
199
|
+
unless m.installed?
|
200
|
+
raise MesaDirError, "Invalid MESA_DIR: #{mesa_dir}. Please download " \
|
201
|
+
'and install a valid MESA version or provide the path to one.'
|
202
|
+
end
|
203
|
+
m.load_test_source_data
|
204
|
+
|
205
|
+
# run all tests
|
206
|
+
m.each_test_load_results
|
207
|
+
|
208
|
+
# submit all tests
|
209
|
+
s.submit_all(m)
|
210
|
+
end
|
211
|
+
|
135
212
|
|
136
213
|
desc "install VERSION_NUMBER MESA_DIR", 'download and install mesa release '+
|
137
214
|
'VERSION_NUMBER to directory MESA_DIR'
|
data/lib/mesa_test.rb
CHANGED
@@ -13,12 +13,11 @@ class TestCaseDirError < StandardError; end
|
|
13
13
|
class InvalidDataType < StandardError; end
|
14
14
|
|
15
15
|
class MesaTestSubmitter
|
16
|
-
|
17
16
|
# set up config file for computer
|
18
17
|
def setup
|
19
18
|
update do |s|
|
20
|
-
|
21
|
-
and default data for test case submissions to MESATestHub. You
|
19
|
+
shell.say 'This wizard will guide you through setting up a computer
|
20
|
+
profile and default data for test case submissions to MESATestHub. You
|
22
21
|
will be able to confirm entries at the end. Default/current values are always
|
23
22
|
shown in parentheses at the end of a prompt. Pressing enter will accept the
|
24
23
|
default values.
|
@@ -26,8 +25,7 @@ default values.
|
|
26
25
|
To submit to MESATestHub, a valid computer name, email address, and password
|
27
26
|
are all required. All other data are useful, but optional. Any data
|
28
27
|
transferred to MESATestHub will be encrypted via HTTPS, but be warned that your
|
29
|
-
e-mail and password will be stored in plain text.
|
30
|
-
"
|
28
|
+
e-mail and password will be stored in plain text.'
|
31
29
|
# Get computer name
|
32
30
|
response = shell.ask("What is the name of this computer (required)? "+
|
33
31
|
"(#{s.computer_name}):", color = :blue)
|
@@ -122,13 +120,14 @@ e-mail and password will be stored in plain text.
|
|
122
120
|
@password = password || ''
|
123
121
|
@platform = platform
|
124
122
|
if @platform.nil?
|
125
|
-
@platform =
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
123
|
+
@platform =
|
124
|
+
if OS.osx?
|
125
|
+
'macOS'
|
126
|
+
elsif OS.linux?
|
127
|
+
'Linux'
|
128
|
+
else
|
129
|
+
''
|
130
|
+
end
|
132
131
|
end
|
133
132
|
@platform_version = platform_version || ''
|
134
133
|
@processor = processor || ''
|
@@ -182,7 +181,7 @@ e-mail and password will be stored in plain text.
|
|
182
181
|
# if you try different compilers
|
183
182
|
#
|
184
183
|
# Note this is NOT checked! The server really only uses the test-by-test
|
185
|
-
# quantities (platform version, compiler,
|
184
|
+
# quantities (platform version, compiler, compiler version) and the
|
186
185
|
# computer name. Once the computer is found (by the name) all the other
|
187
186
|
# data is assumed to be fixed. The others... probably shouldn't be here,
|
188
187
|
# but remain so you can confirm that the computer on the web server is the
|
@@ -257,32 +256,33 @@ e-mail and password will be stored in plain text.
|
|
257
256
|
computer_name: computer_name
|
258
257
|
}.to_json
|
259
258
|
|
260
|
-
JSON.
|
259
|
+
JSON.parse(https.request(request).body).to_hash
|
261
260
|
end
|
262
261
|
|
263
262
|
# attempt to post to MesaTestHub with test_case parameters
|
264
263
|
# returns true if the id is in the returned JSON (indicating success)
|
265
264
|
# otherwise returns false (maybe failed in authorization or in finding
|
266
265
|
# computer or test case) No error thrown for failure, though.
|
267
|
-
def submit(test_case, verbose=
|
266
|
+
def submit(test_case, verbose = false)
|
268
267
|
uri = URI.parse(base_uri + '/test_instances/submit.json')
|
269
268
|
https = Net::HTTP.new(uri.hostname, uri.port)
|
270
269
|
https.use_ssl = true if base_uri.include? 'https'
|
271
270
|
|
272
|
-
request = Net::HTTP::Post.new(
|
273
|
-
|
271
|
+
request = Net::HTTP::Post.new(
|
272
|
+
uri,
|
273
|
+
initheader = { 'Content-Type' => 'application/json' }
|
274
|
+
)
|
274
275
|
request.body = submit_params(test_case).to_json
|
275
276
|
|
276
|
-
puts "\n" if verbose
|
277
|
-
puts JSON.
|
277
|
+
# puts "\n" if verbose
|
278
|
+
# puts JSON.parse(request.body).to_hash if verbose
|
278
279
|
|
279
280
|
response = https.request request
|
280
|
-
puts JSON.
|
281
|
-
|
281
|
+
# puts JSON.parse(response.body).to_hash if verbose
|
282
|
+
!response.is_a? Net::HTTPUnprocessableEntity
|
282
283
|
end
|
283
284
|
|
284
285
|
def submit_all(mesa)
|
285
|
-
uri=URI.parse(base_uri + '/test_instances/submit.json')
|
286
286
|
submitted_cases = []
|
287
287
|
unsubmitted_cases = []
|
288
288
|
mesa.test_names.each do |mod, test_names|
|
@@ -317,10 +317,8 @@ e-mail and password will be stored in plain text.
|
|
317
317
|
# return true if all cases were submitted
|
318
318
|
submitted_cases.length == mesa.test_names.length
|
319
319
|
end
|
320
|
-
|
321
320
|
end
|
322
321
|
|
323
|
-
|
324
322
|
class Mesa
|
325
323
|
attr_reader :mesa_dir, :test_data, :test_names, :test_cases, :shell
|
326
324
|
|
@@ -329,7 +327,7 @@ class Mesa
|
|
329
327
|
success = system("svn co -r #{version_number} "+
|
330
328
|
"svn://svn.code.sf.net/p/mesa/code/trunk #{new_mesa_dir}")
|
331
329
|
unless success
|
332
|
-
raise MesaDirError, "Encountered a problem in
|
330
|
+
raise MesaDirError, "Encountered a problem in download mesa " +
|
333
331
|
"revision #{version_number}."
|
334
332
|
end
|
335
333
|
Mesa.new(mesa_dir: new_mesa_dir)
|
@@ -378,7 +376,6 @@ class Mesa
|
|
378
376
|
FileUtils.rm_rf mesa_dir
|
379
377
|
end
|
380
378
|
|
381
|
-
|
382
379
|
## TEST SUITE METHODS
|
383
380
|
|
384
381
|
def check_mod(mod)
|
@@ -452,9 +449,9 @@ class Mesa
|
|
452
449
|
if mod == :all
|
453
450
|
# look through all loaded modules for desired test case name, return
|
454
451
|
# FIRST found (assuming no name duplication across modules)
|
455
|
-
@test_names.each do |
|
456
|
-
if
|
457
|
-
return @test_cases[
|
452
|
+
@test_names.each do |this_mod, mod_names|
|
453
|
+
if mod_names.include? test_case_name
|
454
|
+
return @test_cases[this_mod][test_case_name]
|
458
455
|
end
|
459
456
|
end
|
460
457
|
# didn't find any matches, return nil
|
@@ -484,9 +481,8 @@ class Mesa
|
|
484
481
|
each_test_clean(mod: mod)
|
485
482
|
|
486
483
|
if mod == :all
|
487
|
-
MesaTestCase.modules.each do
|
488
|
-
|
489
|
-
log_results: log_results)
|
484
|
+
MesaTestCase.modules.each do |this_mod|
|
485
|
+
each_test_run_and_diff(mod: this_mod, log_results: log_results)
|
490
486
|
end
|
491
487
|
else
|
492
488
|
test_names[mod].each do |test_name|
|
@@ -497,6 +493,18 @@ class Mesa
|
|
497
493
|
end
|
498
494
|
end
|
499
495
|
|
496
|
+
def each_test_load_results(mod: :all)
|
497
|
+
if mod == :all
|
498
|
+
MesaTestCase.modules.each do |this_mod|
|
499
|
+
each_test_load_results(mod: this_mod)
|
500
|
+
end
|
501
|
+
else
|
502
|
+
test_names[mod].each do |test_name|
|
503
|
+
test_cases[mod][test_name].load_results
|
504
|
+
end
|
505
|
+
end
|
506
|
+
end
|
507
|
+
|
500
508
|
# note that this only changes MESA_DIR for subprocesses launched from ruby
|
501
509
|
# the old value of MESA_DIR will persist after the ruby process ends
|
502
510
|
def set_mesa_dir
|
@@ -547,7 +555,6 @@ class Mesa
|
|
547
555
|
end
|
548
556
|
end
|
549
557
|
|
550
|
-
|
551
558
|
class MesaTestCase
|
552
559
|
attr_reader :test_name, :mesa_dir, :mesa, :success_string, :final_model,
|
553
560
|
:failure_msg, :success_msg, :photo, :runtime_seconds,
|
@@ -631,8 +638,10 @@ class MesaTestCase
|
|
631
638
|
end
|
632
639
|
|
633
640
|
def add_datum(datum_name, datum_type)
|
634
|
-
|
635
|
-
|
641
|
+
unless data_types.include? datum_type.to_sym
|
642
|
+
raise InvalidDataType, "Invalid data type: #{datum_type}. Must be one "\
|
643
|
+
'of ' + data_types.join(', ') + '.'
|
644
|
+
end
|
636
645
|
@data[datum_name] = datum_type
|
637
646
|
@data_names << datum_name
|
638
647
|
end
|
@@ -667,8 +676,8 @@ class MesaTestCase
|
|
667
676
|
FileUtils.rm_f 'binary_history.data'
|
668
677
|
FileUtils.rm_f 'out.txt'
|
669
678
|
if File.directory? File.join('star_history','history_out')
|
670
|
-
shell.say
|
671
|
-
|
679
|
+
shell.say 'Removing all files of the form history_out* from ' \
|
680
|
+
'star_history', :blue
|
672
681
|
FileUtils.rm_f Dir.glob(File.join('star_history', 'history_out', '*'))
|
673
682
|
end
|
674
683
|
if File.directory? File.join('star_profile', 'profiles_out')
|
@@ -686,7 +695,7 @@ class MesaTestCase
|
|
686
695
|
@test_omp_num_threads = omp_num_threads
|
687
696
|
in_dir do
|
688
697
|
FileUtils.touch '.running'
|
689
|
-
shell.say("building and running #{test_name}",
|
698
|
+
shell.say("building and running #{test_name}", :blue)
|
690
699
|
puts ''
|
691
700
|
build_and_run
|
692
701
|
FileUtils.rm '.running'
|
@@ -772,13 +781,13 @@ class MesaTestCase
|
|
772
781
|
def write_failure_message
|
773
782
|
msg = "******************** #{failure_msg[@failure_type]} " +
|
774
783
|
"********************"
|
775
|
-
log_message(msg,
|
784
|
+
log_message(msg, :red)
|
776
785
|
end
|
777
786
|
|
778
787
|
# write success message to log file
|
779
788
|
def write_success_msg(success_type)
|
780
789
|
msg = 'PASS ' + success_msg[success_type]
|
781
|
-
log_message(msg,
|
790
|
+
log_message(msg, :green)
|
782
791
|
end
|
783
792
|
|
784
793
|
# used as return value for run or photo test. Logs failure to text file, and
|
@@ -810,8 +819,8 @@ class MesaTestCase
|
|
810
819
|
# report runtime and clean up
|
811
820
|
run_finish = Time.now
|
812
821
|
@runtime_seconds = (run_finish - run_start).to_i
|
813
|
-
shell.say
|
814
|
-
|
822
|
+
shell.say("Finished with ./rn; runtime = #{@runtime_seconds} seconds.",
|
823
|
+
:blue)
|
815
824
|
append_and_rm_err
|
816
825
|
|
817
826
|
|
@@ -855,7 +864,6 @@ class MesaTestCase
|
|
855
864
|
else
|
856
865
|
return succeed(:run_test_string)
|
857
866
|
end
|
858
|
-
|
859
867
|
end
|
860
868
|
|
861
869
|
# prepare for and do restart, check results, and return pass/fail status
|
@@ -893,88 +901,98 @@ class MesaTestCase
|
|
893
901
|
# assumes we are in the test case directory. Should only be called
|
894
902
|
# in the context of an `in_dir` block.
|
895
903
|
|
896
|
-
|
897
904
|
# first clean and make... worried about shell compatibility since we
|
898
905
|
# aren't forcing bash. Hopefully '>' for redirecting output is pretty
|
899
906
|
# universal
|
907
|
+
simple_clean
|
908
|
+
mk
|
909
|
+
|
910
|
+
# remove old final model if it exists
|
911
|
+
remove_final_model
|
912
|
+
|
913
|
+
# only check restart/photo if we get through run successfully
|
914
|
+
check_restart if check_run
|
915
|
+
end
|
916
|
+
|
917
|
+
# append contents of err.txt to end of out.txt, then delete err.txt
|
918
|
+
def append_and_rm_err(outfile = 'out.txt', errfile = 'err.txt')
|
919
|
+
err_contents = File.read(errfile)
|
920
|
+
display_errors(err_contents)
|
921
|
+
log_errors(err_contents, outfile)
|
922
|
+
FileUtils.rm errfile
|
923
|
+
end
|
924
|
+
|
925
|
+
def display_errors(err_contents)
|
926
|
+
return unless err_contents.strip.empty?
|
927
|
+
shell.say("\nERRORS", :red)
|
928
|
+
puts err_contents
|
929
|
+
shell.say("END OF ERRORS", :red)
|
930
|
+
end
|
931
|
+
|
932
|
+
def log_errors(err_contents, outfile)
|
933
|
+
File.open(outfile, 'a') { |f_out| f_out.write(err_contents) }
|
934
|
+
shell.say("appended to #{outfile})\n", :red)
|
935
|
+
end
|
936
|
+
|
937
|
+
def simple_clean
|
900
938
|
puts './clean'
|
901
939
|
unless system('./clean')
|
902
|
-
raise TestCaseDirError,
|
940
|
+
raise TestCaseDirError, 'Encountered an error when running `clean` in ' +
|
903
941
|
"#{Dir.getwd} for test case #{test_name}."
|
904
942
|
end
|
943
|
+
end
|
905
944
|
|
945
|
+
def mk
|
906
946
|
puts './mk > mk.txt'
|
907
947
|
unless system('./mk > mk.txt')
|
908
|
-
raise TestCaseDirError,
|
948
|
+
raise TestCaseDirError, 'Encountered an error when running `mk` in ' +
|
909
949
|
"#{Dir.getwd} for test case #{test_name}."
|
910
950
|
end
|
911
951
|
FileUtils.rm 'mk.txt'
|
912
|
-
|
913
|
-
# remove final model if it already exists
|
914
|
-
unless final_model.nil?
|
915
|
-
FileUtils.rm final_model if File.exist? final_model
|
916
|
-
end
|
917
|
-
|
918
|
-
if check_run
|
919
|
-
# only check restart/photo if we get through run successfully
|
920
|
-
check_restart
|
921
|
-
end
|
922
952
|
end
|
923
953
|
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
shell.say "\nERRORS", color = :red
|
930
|
-
puts err_contents
|
931
|
-
shell.say "END OF ERRORS (appended to #{outfile})", color = :red
|
932
|
-
puts ''
|
933
|
-
f_out.write(err_contents)
|
934
|
-
end
|
935
|
-
end
|
936
|
-
FileUtils.rm errfile
|
954
|
+
def remove_final_model
|
955
|
+
# remove final model if it already exists
|
956
|
+
return unless final_model
|
957
|
+
return unless File.exist?(final_model)
|
958
|
+
FileUtils.rm(final_model)
|
937
959
|
end
|
938
|
-
|
939
960
|
end
|
940
961
|
|
941
|
-
|
942
962
|
################################
|
943
963
|
# GENERAL METHODS #
|
944
964
|
################################
|
945
965
|
|
946
|
-
|
947
966
|
# cd into a new directory, execute a block whose return value is either
|
948
967
|
# true or false. Either way, cd back to original directory. Raise an
|
949
968
|
# exception if the block failed (returned false or nil)
|
950
969
|
def visit_and_check(new_dir, exception, message)
|
951
970
|
cwd = Dir.getwd
|
952
|
-
shell.say "Leaving #{cwd}",
|
953
|
-
puts
|
954
|
-
shell.say "Entering #{new_dir}.",
|
971
|
+
shell.say "Leaving #{cwd}", :blue
|
972
|
+
puts ''
|
973
|
+
shell.say "Entering #{new_dir}.", :blue
|
955
974
|
Dir.chdir(new_dir)
|
956
975
|
success = yield if block_given?
|
957
|
-
shell.say "Leaving #{new_dir}",
|
958
|
-
puts
|
959
|
-
shell.say "Entering #{cwd}.",
|
976
|
+
shell.say "Leaving #{new_dir}", :blue
|
977
|
+
puts ''
|
978
|
+
shell.say "Entering #{cwd}.", :blue
|
960
979
|
Dir.chdir(cwd)
|
961
|
-
unless success
|
962
|
-
|
963
|
-
end
|
980
|
+
return unless success
|
981
|
+
raise exception, message
|
964
982
|
end
|
965
983
|
|
966
984
|
# cd into a new directory, execute a block, then cd back into original
|
967
985
|
# directory
|
968
986
|
def visit_dir(new_dir)
|
969
987
|
cwd = Dir.getwd
|
970
|
-
shell.say "Leaving #{cwd}",
|
988
|
+
shell.say "Leaving #{cwd}", :blue
|
971
989
|
puts ""
|
972
|
-
shell.say "Entering #{new_dir}.",
|
990
|
+
shell.say "Entering #{new_dir}.", :blue
|
973
991
|
Dir.chdir(new_dir)
|
974
992
|
yield if block_given?
|
975
|
-
shell.say "Leaving #{new_dir}",
|
993
|
+
shell.say "Leaving #{new_dir}", :blue
|
976
994
|
puts ""
|
977
|
-
shell.say "Entering #{cwd}.",
|
995
|
+
shell.say "Entering #{cwd}.", :blue
|
978
996
|
Dir.chdir(cwd)
|
979
997
|
end
|
980
998
|
|
@@ -991,12 +1009,13 @@ def generate_seeds_rb(mesa_dir, outfile)
|
|
991
1009
|
f.puts " version_added: #{m.version_number},"
|
992
1010
|
# no comma on last one
|
993
1011
|
if test_case_name == m.test_names[-1]
|
994
|
-
f.puts
|
1012
|
+
f.puts(' }')
|
995
1013
|
else
|
996
|
-
f.puts
|
1014
|
+
f.puts(' }')
|
997
1015
|
end
|
998
1016
|
end
|
999
1017
|
f.puts ' ]'
|
1000
1018
|
f.puts ')'
|
1001
1019
|
end
|
1002
1020
|
end
|
1021
|
+
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mesa_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Wolf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: os
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
33
|
+
version: '1.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0
|
40
|
+
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0.19'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0.19'
|
55
55
|
description: mesa_test is a command-line interface for running the test suites in
|
56
56
|
MESA and submitting them to the companion website MESATestHub.
|
57
57
|
email: wmwolf@asu.edu
|