calypso 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 170ce85369fbbdf51b9ef207fbb371e51167b870
4
- data.tar.gz: 0cb0131ed1eecc82b9567a93a819eaf7bbbeb6a4
3
+ metadata.gz: 54ea4595b7a3ec507bfbb0a49d03c24fb7cb7e49
4
+ data.tar.gz: 52ac19c39a4cc38adfabeb924dec1e1562ebe805
5
5
  SHA512:
6
- metadata.gz: 7186a005c6c8d6582e99ebb87e16088760370c32160f99e5f374d692821a6cd230888ced193e8bc387debad0302d20ea38c5dd24a9ee673d9af1fa6a89b46e31
7
- data.tar.gz: e54e457cfc00701dc1bb8e4fcb0e97b18b7fc8895c6593f11f9a1e233596029d38c87c7f71d3e2acd505f95fc4ad8e08991b35cbe3b714ff07bb17e2f4af2193
6
+ metadata.gz: 2b53b775c3e3ab569a804dc8f1077502fe05355d42088f8e303a39c7f68f369e708dcd98c793ff3ca1bdb719a04c37f7bceddbc9bf79eff37c02d154088dd6d4
7
+ data.tar.gz: a150d32764677cc1b22eb455374b53f197b1348dc98210a4b96f9ef19aa1e2cc1cdb123a9bc3bfb1b67b9062e027084eeaeaa0768bd3e2c63353969fdc86d011
@@ -38,6 +38,8 @@ module Calypso
38
38
  attr_reader :exec
39
39
  # @return [Boolean] Whether or not the test should be ran automatically.
40
40
  attr_reader :autorun
41
+ # @return [SerialPortData] Information about the serial port used by the test
42
+ attr_reader :serial
41
43
 
42
44
  # Create a new UnitTest model.
43
45
  #
@@ -19,5 +19,5 @@
19
19
  #
20
20
  module Calypso
21
21
  # Calypso version constant
22
- VERSION = '0.1.1'
22
+ VERSION = '0.1.2'
23
23
  end
data/lib/calypso.rb CHANGED
@@ -44,6 +44,8 @@ module Calypso
44
44
  options.bare = false
45
45
  options.hardware = nil
46
46
  options.run_mode = :all
47
+ options.tty_fix = false
48
+ options.tty_fix = true if ENV['TTY_FIX'].eql? 'true'
47
49
 
48
50
  parser = OptionParser.new do |p|
49
51
  p.banner = "Usage: calypso [options] -c [config]"
@@ -58,6 +60,11 @@ module Calypso
58
60
  options.bare = true
59
61
  end
60
62
 
63
+ p.on('-f', '--tty-fix',
64
+ 'Enforce the correct TTY settings before trying to run a test') do
65
+ options.tty_fix = true
66
+ end
67
+
61
68
  p.on('-t [TESTID]', '--test [TESTID]',
62
69
  'Run a specific test') do |id|
63
70
  options.single = id
@@ -118,23 +125,24 @@ module Calypso
118
125
 
119
126
  case options.run_mode
120
127
  when :all
121
- Calypso.run(config)
128
+ Calypso.run(config, options)
122
129
  when :hardware
123
- Calypso.run_hardware(config, options.hardware)
130
+ Calypso.run_hardware(config, options, options.hardware)
124
131
  when :single
125
- Calypso.run_single(config, options.single)
132
+ Calypso.run_single(config, options)
126
133
  end
127
134
  end
128
135
 
129
136
  # Run a single test.
130
137
  #
131
138
  # @param parser [Calypso::ParserProxy] Configuration parser.
132
- # @param testid [String] Test identifier.
139
+ # @param options [OpenStruct] Options passed to Calypso on the cmd line.
133
140
  # @return [nil]
134
- def run_single(parser, testid)
135
- test = parser.tests[testid]
141
+ def run_single(parser, options)
142
+ test = parser.tests[options.single]
136
143
  puts "Running test [#{test.name}]"
137
144
 
145
+ Calypso.tty_fix(test.serial) if options.tty_fix
138
146
  test.execute
139
147
  puts "[#{test.name}]: #{test.success? ? 'OK' : 'FAIL'}"
140
148
  end
@@ -142,9 +150,10 @@ module Calypso
142
150
  # Run all tests for a specific piece of hardware.
143
151
  #
144
152
  # @param config [Calypso::ParserProxy] Configuration parser.
153
+ # @param options [OpenStruct] Options passed to Calypso on the cmd line.
145
154
  # @param hwid [String] Hardware ID.
146
155
  # @return [nil]
147
- def run_hardware(config, hwid)
156
+ def run_hardware(config, options, hwid)
148
157
  hw = config.hardware[hwid]
149
158
  tests = hw.tests
150
159
  puts "Running #{hw.name} tests. Press enter to continue..."
@@ -152,6 +161,7 @@ module Calypso
152
161
 
153
162
  tests.each do |test|
154
163
  next unless test.autorun
164
+ Calypso.tty_fix(test.serial) if options.tty_fix
155
165
  test.execute
156
166
  success = "successfully" if test.success?
157
167
  success = "unsuccessfully" unless test.success?
@@ -170,14 +180,24 @@ module Calypso
170
180
  # Run all unit tests.
171
181
  #
172
182
  # @param parser [Calypso::ParserProxy] Configuration parser.
183
+ # @param options [OpenStruct] Options passed to Calypso on the cmd line.
173
184
  # @return [nil]
174
- def run(parser)
185
+ def run(parser, options)
175
186
  hw = parser.hardware
176
187
 
177
188
  hw.each do |hwid, hwdata|
178
- Calypso.run_hardware(parser, hwid)
189
+ Calypso.run_hardware(parser, options, hwid)
179
190
  end
180
191
  end
192
+
193
+ # Fix the serial TTY configuration.
194
+ #
195
+ # @param serial [Calypso::SerialPortData] Serial port data
196
+ # @return [nil]
197
+ def tty_fix(serial)
198
+ fix_cmd = "stty 57600 raw ignbrk hup < #{serial.port}"
199
+ system(fix_cmd)
200
+ end
181
201
  end
182
202
  end
183
203
 
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calypso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michel Megens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-14 00:00:00.000000000 Z
11
+ date: 2016-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.10'
19
+ version: 1.10.0
20
20
  type: :development
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: '1.10'
26
+ version: 1.10.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 10.0.0
34
34
  type: :development
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: '10.0'
40
+ version: 10.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -105,9 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  requirements: []
107
107
  rubyforge_project:
108
- rubygems_version: 2.4.8
108
+ rubygems_version: 2.2.2
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: Embedded test automation.
112
112
  test_files: []
113
- has_rdoc: