mesa_test 0.0.11 → 0.0.12
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 +14 -0
- data/lib/mesa_test.rb +38 -35
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9fed2c720b2a988af51cf039b7fb00c7c2b1351
|
4
|
+
data.tar.gz: ee251c506f1f203d4899fa799519921312e4f107
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e38d7647e692dba6ffdce3e2fa971bd47b4d4549a52e44805d34e42220bec9696973f786b7c162873fef7c9c63fc77375b790585cd967b233bd5d77f571a1fc0
|
7
|
+
data.tar.gz: 94168a931b36aea7d2315914d625f2fd51da500ce4196066213488628e0efafe393e45e222ca2da2aaf38c716b9c5836a05c8e4af7d84a833cd10cc89344d15f
|
data/bin/mesa_test
CHANGED
@@ -27,6 +27,10 @@ class MesaTest < Thor
|
|
27
27
|
|
28
28
|
#{MesaTestCase.modules.map { |mod| ' ' + mod.to_s }.join(', ')}
|
29
29
|
|
30
|
+
With --diff option, assume the checksums are up-to-date (behave like
|
31
|
+
each_test_run_and_diff), on by default. To update checksums after ./rn
|
32
|
+
(behave like each_test_run), use --no-diff.
|
33
|
+
|
30
34
|
With --force option, skip confirmation of computer details, assuming values
|
31
35
|
in ~/.mesa_test.yml are correct.
|
32
36
|
|
@@ -39,6 +43,7 @@ class MesaTest < Thor
|
|
39
43
|
With --submit option, upload results to MESATestHub. By default, this is on.
|
40
44
|
To run without submission, use --no-submit.
|
41
45
|
LONGDESC
|
46
|
+
option :diff, type: :boolean, default: true
|
42
47
|
option :force, type: :boolean, aliases: '-f'
|
43
48
|
option :log, type: :boolean, default: true
|
44
49
|
option :module, type: :string, default: :all
|
@@ -62,6 +67,9 @@ class MesaTest < Thor
|
|
62
67
|
m.installed?
|
63
68
|
m.load_test_source_data
|
64
69
|
|
70
|
+
# choose whether to update checksums
|
71
|
+
m.update_checksums = !options[:diff]
|
72
|
+
|
65
73
|
# make sure the test case is valid
|
66
74
|
t = m.find_test_case(test_case_name: test_case_name,
|
67
75
|
mod: options[:module].downcase.to_sym)
|
@@ -97,6 +105,10 @@ class MesaTest < Thor
|
|
97
105
|
report results to MesaTestHub. Specifically, runs and checks all tests
|
98
106
|
detailed in MESA_DIR/star/test_suite/do1_test_source.
|
99
107
|
|
108
|
+
With --diff option, assume the checksums are up-to-date (behave like
|
109
|
+
each_test_run_and_diff), on by default. To update checksums after ./rn
|
110
|
+
(behave like each_test_run), use --no-diff.
|
111
|
+
|
100
112
|
With --force option, skip confirmation of computer details, assuming values
|
101
113
|
in ~/.mesa_test.yml are correct. Only relevant if --submit option is on
|
102
114
|
(by default it is).
|
@@ -107,6 +119,7 @@ class MesaTest < Thor
|
|
107
119
|
With --submit option, upload results to MESATestHub. By default, this is on.
|
108
120
|
To run without submission, use --no-submit.
|
109
121
|
LONGDESC
|
122
|
+
option :diff, type: :boolean, default: true
|
110
123
|
option :force, type: :boolean, aliases: '-f'
|
111
124
|
option :log, type: :boolean, default: true
|
112
125
|
option :submit, type: :boolean, default: true
|
@@ -132,6 +145,7 @@ class MesaTest < Thor
|
|
132
145
|
m.load_test_source_data
|
133
146
|
|
134
147
|
# run all tests
|
148
|
+
m.update_checksums = !options[:diff]
|
135
149
|
m.each_test_run_and_diff(log_results: options[:log])
|
136
150
|
|
137
151
|
# submit all tests
|
data/lib/mesa_test.rb
CHANGED
@@ -27,56 +27,56 @@ are all required. All other data are useful, but optional. Any data
|
|
27
27
|
transferred to MESATestHub will be encrypted via HTTPS, but be warned that your
|
28
28
|
e-mail and password will be stored in plain text.'
|
29
29
|
# Get computer name
|
30
|
-
response = shell.ask(
|
31
|
-
"(#{s.computer_name}):",
|
30
|
+
response = shell.ask('What is the name of this computer (required)? ' \
|
31
|
+
"(#{s.computer_name}):", :blue)
|
32
32
|
s.computer_name = response unless response.empty?
|
33
33
|
|
34
34
|
# Get user name
|
35
|
-
response = shell.ask
|
36
|
-
"computer? (#{s.user_name}):",
|
35
|
+
response = shell.ask 'What is the name of the operator of this ' \
|
36
|
+
"computer? (#{s.user_name}):", :blue
|
37
37
|
s.user_name = response unless response.empty?
|
38
38
|
|
39
39
|
# Get user e-mail
|
40
|
-
response = shell.ask
|
41
|
-
"at (required)? (#{s.email}):",
|
40
|
+
response = shell.ask 'What is the email you can be reached ' \
|
41
|
+
"at (required)? (#{s.email}):", :blue
|
42
42
|
s.email = response unless response.empty?
|
43
43
|
|
44
44
|
# Get user password
|
45
|
-
response = shell.ask
|
46
|
-
"#{s.email} (required)? (#{s.password})",
|
45
|
+
response = shell.ask 'What is the password associated with the email ' \
|
46
|
+
"#{s.email} (required)? (#{s.password})", :blue
|
47
47
|
s.password = response unless response.empty?
|
48
48
|
|
49
49
|
# Get platform information
|
50
|
-
response = shell.ask
|
51
|
-
"macOS, Ubuntu)? (#{s.platform}):",
|
50
|
+
response = shell.ask 'What is the platform of this computer (eg. ' \
|
51
|
+
"macOS, Ubuntu)? (#{s.platform}):", :blue
|
52
52
|
s.platform = response unless response.empty?
|
53
|
-
response = shell.ask
|
54
|
-
"16.04)? (#{s.platform_version}):",
|
53
|
+
response = shell.ask 'What is the version of the platform (eg. 10.13, ' \
|
54
|
+
"16.04)? (#{s.platform_version}):", :blue
|
55
55
|
s.platform_version = response unless response.empty?
|
56
56
|
|
57
57
|
# Get processor information
|
58
|
-
response = shell.ask
|
59
|
-
"(eg. 3.1 GHz Intel i7)? (#{s.processor}):",
|
58
|
+
response = shell.ask 'What type of processor does this computer have ' \
|
59
|
+
"(eg. 3.1 GHz Intel i7)? (#{s.processor}):", :blue
|
60
60
|
s.processor = response unless response.empty?
|
61
61
|
|
62
62
|
# Get ram information
|
63
|
-
response = shell.ask
|
64
|
-
"have (eg. 8)? (#{s.ram_gb}) ",
|
63
|
+
response = shell.ask 'How much RAM (in integer GB) does this computer ' \
|
64
|
+
"have (eg. 8)? (#{s.ram_gb}) ", :blue
|
65
65
|
s.ram_gb = response.to_i unless response.empty?
|
66
66
|
|
67
67
|
# Get compiler information
|
68
|
-
response = shell.ask "Which compiler are you using? (#{s.compiler}):",
|
69
|
-
|
70
|
-
s.compiler = response unless response.empty?
|
68
|
+
response = shell.ask "Which compiler are you using? (#{s.compiler}):",
|
69
|
+
:blue, limited_to: ['', 'SDK', 'gfortran', 'ifort']
|
70
|
+
s.compiler = response unless response.empty?
|
71
71
|
|
72
72
|
# Get compiler version
|
73
|
-
response = shell.ask
|
74
|
-
"7.2.0)? (#{s.compiler_version}): ",
|
73
|
+
response = shell.ask 'What version of the compiler (eg. 20170921 or ' \
|
74
|
+
"7.2.0)? (#{s.compiler_version}): ", :blue
|
75
75
|
s.compiler_version = response unless response.empty?
|
76
76
|
|
77
77
|
# Confirm save location
|
78
|
-
response = shell.ask "This will be saved in #{s.config_file}. Press "
|
79
|
-
|
78
|
+
response = shell.ask "This will be saved in #{s.config_file}. Press " \
|
79
|
+
'enter to accept or enter a new location:', :blue, path: true
|
80
80
|
s.config_file = response unless response.empty?
|
81
81
|
end
|
82
82
|
|
@@ -166,10 +166,8 @@ e-mail and password will be stored in plain text.'
|
|
166
166
|
puts "Config location #{config_file}"
|
167
167
|
puts '-------------------------------------------------------'
|
168
168
|
puts ''
|
169
|
-
shell = Thor.new
|
170
169
|
response = shell.ask 'Is this correct? (y/Y = Yes, anything else = No):'
|
171
|
-
|
172
|
-
false
|
170
|
+
response.strip.casecmp('y') == 0
|
173
171
|
end
|
174
172
|
|
175
173
|
# For one "computer" on the web server, and for [subjective] consistency
|
@@ -329,6 +327,7 @@ end
|
|
329
327
|
|
330
328
|
class Mesa
|
331
329
|
attr_reader :mesa_dir, :test_data, :test_names, :test_cases, :shell
|
330
|
+
attr_accessor :update_checksums
|
332
331
|
|
333
332
|
def self.download(version_number: nil, new_mesa_dir: nil)
|
334
333
|
new_mesa_dir ||= File.join(ENV['HOME'], 'mesa-test-r' + version_number.to_s)
|
@@ -343,6 +342,7 @@ class Mesa
|
|
343
342
|
|
344
343
|
def initialize(mesa_dir: ENV['MESA_DIR'])
|
345
344
|
@mesa_dir = mesa_dir
|
345
|
+
@update_checksums = false
|
346
346
|
|
347
347
|
# these get populated by calling #load_test_data
|
348
348
|
@test_data = {}
|
@@ -909,20 +909,23 @@ class MesaTestCase
|
|
909
909
|
# no final model to check, and we already found the test string, so pass
|
910
910
|
return succeed(:run_test_string) unless final_model
|
911
911
|
|
912
|
-
#
|
913
|
-
|
914
|
-
|
915
|
-
#
|
916
|
-
|
912
|
+
# display runtime message
|
913
|
+
puts IO.readlines('out.txt').select { |line| line.scan(/runtime/i) }[-1]
|
914
|
+
|
915
|
+
# update checksums
|
916
|
+
#
|
917
|
+
# if this is true, behave like each_test_run. update the checksum
|
918
|
+
# after rn and then check it matches after re
|
919
|
+
#
|
920
|
+
# if this is false, behave like each_test_run_and_diff. assume
|
921
|
+
# the checksum is up-to-date and check it matches after rn and re.
|
922
|
+
if @mesa.update_checksums
|
917
923
|
system("md5sum \"#{final_model}\" > checks.md5")
|
918
924
|
puts "md5sum \"#{final_model}\" > checks.md5"
|
919
|
-
FileUtils.cp final_model 'final_check.mod'
|
925
|
+
FileUtils.cp final_model, 'final_check.mod'
|
920
926
|
return true
|
921
927
|
end
|
922
928
|
|
923
|
-
# display runtime message
|
924
|
-
puts IO.readlines('out.txt').select { |line| line.scan(/runtime/i) }[-1]
|
925
|
-
|
926
929
|
# check that final model matches
|
927
930
|
puts './ck >& final_check_diff.txt'
|
928
931
|
return fail_test(:run_checksum) unless
|