cosmos 3.5.3 → 3.6.0
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Manifest.txt +3 -0
- data/autohotkey/procedures/script_test.rb +4 -0
- data/autohotkey/tools/script_runner2.ahk +13 -0
- data/cosmos.gemspec +2 -2
- data/data/crc.txt +17 -17
- data/demo/config/data/crc.txt +10 -7
- data/demo/config/targets/INST/cmd_tlm/_ccsds_cmd.txt +9 -0
- data/demo/config/targets/INST/cmd_tlm/_ccsds_tlm.txt +19 -0
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +19 -84
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +27 -110
- data/demo/config/tools/table_manager/TLMMonitoringTable_def.txt +3 -220
- data/demo/config/tools/tlm_extractor/_adcs_time.txt +2 -0
- data/demo/config/tools/tlm_extractor/tlm_extractor.txt +1 -1
- data/demo/config/tools/tlm_extractor/tlm_extractor2.txt +1 -1
- data/demo/config/tools/tlm_extractor/tlm_extractor3.txt +1 -1
- data/demo/config/tools/tlm_extractor/tlm_extractor4.txt +1 -1
- data/lib/cosmos/config/config_parser.rb +54 -1
- data/lib/cosmos/gui/utilities/script_module_gui.rb +31 -20
- data/lib/cosmos/io/json_drb.rb +33 -23
- data/lib/cosmos/io/json_drb_object.rb +4 -1
- data/lib/cosmos/io/tcpip_server.rb +1 -1
- data/lib/cosmos/packets/packet_config.rb +5 -1
- data/lib/cosmos/packets/parsers/macro_parser.rb +1 -1
- data/lib/cosmos/script/scripting.rb +28 -0
- data/lib/cosmos/streams/tcpip_socket_stream.rb +72 -19
- data/lib/cosmos/system/target.rb +16 -2
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +28 -17
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +14 -2
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +27 -20
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +2 -2
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +40 -36
- data/lib/cosmos/version.rb +5 -5
- data/spec/config/config_parser_spec.rb +1 -1
- data/spec/io/json_drb_spec.rb +7 -21
- data/spec/packets/packet_config_spec.rb +12 -12
- data/spec/packets/parsers/format_string_parser_spec.rb +3 -3
- data/spec/packets/parsers/limits_parser_spec.rb +10 -10
- data/spec/packets/parsers/limits_response_parser_spec.rb +2 -2
- data/spec/packets/parsers/macro_parser_spec.rb +6 -6
- data/spec/packets/parsers/packet_parser_spec.rb +1 -1
- data/spec/packets/parsers/processor_parser_spec.rb +2 -2
- data/spec/packets/parsers/state_parser_spec.rb +1 -1
- data/spec/script/scripting_spec.rb +23 -0
- data/spec/streams/tcpip_socket_stream_spec.rb +28 -0
- data/spec/system/system_spec.rb +20 -20
- data/spec/system/target_spec.rb +10 -10
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +30 -22
- metadata +9 -6
@@ -48,7 +48,7 @@ module Cosmos
|
|
48
48
|
tf = Tempfile.new('unittest')
|
49
49
|
tf.puts keyword + ' tgt1 pkt1 MIDDLE_ENDIAN "Packet"'
|
50
50
|
tf.close
|
51
|
-
expect { @pc.process_file(tf.path, "TGT1") }.to raise_error(ConfigParser::Error,
|
51
|
+
expect { @pc.process_file(tf.path, "TGT1") }.to raise_error(ConfigParser::Error, /Invalid endianness MIDDLE_ENDIAN. Must be BIG_ENDIAN or LITTLE_ENDIAN./)
|
52
52
|
tf.unlink
|
53
53
|
end
|
54
54
|
end
|
@@ -28,7 +28,7 @@ module Cosmos
|
|
28
28
|
tf = Tempfile.new('unittest')
|
29
29
|
tf.puts('PROCESSOR')
|
30
30
|
tf.close
|
31
|
-
expect { @pc.process_file(tf.path, "SYSTEM") }.to raise_error(ConfigParser::Error,
|
31
|
+
expect { @pc.process_file(tf.path, "SYSTEM") }.to raise_error(ConfigParser::Error, /No current packet for PROCESSOR/)
|
32
32
|
tf.unlink
|
33
33
|
end
|
34
34
|
|
@@ -105,7 +105,7 @@ module Cosmos
|
|
105
105
|
tf.puts 'COMMAND tgt1 pkt1 LITTLE_ENDIAN "Packet"'
|
106
106
|
tf.puts ' PROCESSOR P1 processor1.rb'
|
107
107
|
tf.close
|
108
|
-
expect { @pc.process_file(tf.path, "TGT1") }.to raise_error(ConfigParser::Error,
|
108
|
+
expect { @pc.process_file(tf.path, "TGT1") }.to raise_error(ConfigParser::Error, /PROCESSOR only applies to telemetry packets/)
|
109
109
|
tf.unlink
|
110
110
|
end
|
111
111
|
end
|
@@ -29,7 +29,7 @@ module Cosmos
|
|
29
29
|
tf.puts 'TELEMETRY tgt1 pkt1 LITTLE_ENDIAN "Packet"'
|
30
30
|
tf.puts 'STATE'
|
31
31
|
tf.close
|
32
|
-
expect { @pc.process_file(tf.path, "TGT1") }.to raise_error(ConfigParser::Error,
|
32
|
+
expect { @pc.process_file(tf.path, "TGT1") }.to raise_error(ConfigParser::Error, /No current item for STATE/)
|
33
33
|
tf.unlink
|
34
34
|
end
|
35
35
|
|
@@ -73,6 +73,29 @@ module Cosmos
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
describe "save_file_dialog, open_file_dialog, open_files_dialog, open_directory_dialog" do
|
77
|
+
it "gets file listings" do
|
78
|
+
capture_io do |stdout|
|
79
|
+
expect(self).to receive(:gets) { 'file' }
|
80
|
+
expect(save_file_dialog(Dir.pwd, "Save Something!!!")).to eql 'file'
|
81
|
+
expect(stdout.string).to include "Save Something!!!"
|
82
|
+
stdout.rewind
|
83
|
+
expect(self).to receive(:gets) { 'file' }
|
84
|
+
expect(open_file_dialog("C:/")).to eql 'file'
|
85
|
+
expect(stdout.string).to include "Open File"
|
86
|
+
stdout.rewind
|
87
|
+
expect(self).to receive(:gets) { 'file' }
|
88
|
+
expect(open_files_dialog()).to eql 'file'
|
89
|
+
expect(stdout.string).to include "Open File(s)"
|
90
|
+
stdout.rewind
|
91
|
+
expect(self).to receive(:gets) { 'dir' }
|
92
|
+
expect(open_directory_dialog()).to eql 'dir'
|
93
|
+
expect(stdout.string).to include "Open Directory"
|
94
|
+
stdout.rewind
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
76
99
|
describe "ask_string, ask" do
|
77
100
|
it "gets user input" do
|
78
101
|
$stdout = StringIO.new
|
@@ -22,6 +22,34 @@ module Cosmos
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
# This test takes time and doesn't actually assert any functionality
|
26
|
+
# It was created to verify the changes to socket reads in PR#181.
|
27
|
+
#describe "read benchmark" do
|
28
|
+
# it "determines how fast the read is" do
|
29
|
+
# server = TCPServer.new(2000) # Server bound to port 2000
|
30
|
+
# thread = Thread.new do
|
31
|
+
# client = server.accept # Wait for a client to connect
|
32
|
+
# i = 0
|
33
|
+
# 100000.times do
|
34
|
+
# client.write "test"
|
35
|
+
# i += 1
|
36
|
+
# sleep 0.001 if i % 100 == 1
|
37
|
+
# end
|
38
|
+
# client.close
|
39
|
+
# end
|
40
|
+
# socket = TCPSocket.new('localhost', 2000)
|
41
|
+
# ss = TcpipSocketStream.new(nil,socket,nil,nil)
|
42
|
+
# bytes = 0
|
43
|
+
# while bytes < 400000
|
44
|
+
# bytes += ss.read.length
|
45
|
+
# end
|
46
|
+
# Cosmos.close_socket(socket)
|
47
|
+
# Cosmos.close_socket(server)
|
48
|
+
# thread.kill
|
49
|
+
# sleep 0.1
|
50
|
+
# end
|
51
|
+
#end
|
52
|
+
|
25
53
|
describe "read" do
|
26
54
|
it "raises an error if no read socket given" do
|
27
55
|
ss = TcpipSocketStream.new('write',nil,nil,nil)
|
data/spec/system/system_spec.rb
CHANGED
@@ -242,7 +242,7 @@ module Cosmos
|
|
242
242
|
tf = Tempfile.new('unittest')
|
243
243
|
tf.puts("BLAH")
|
244
244
|
tf.close
|
245
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
245
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Unknown keyword 'BLAH'/)
|
246
246
|
tf.unlink
|
247
247
|
end
|
248
248
|
|
@@ -251,7 +251,7 @@ module Cosmos
|
|
251
251
|
tf = Tempfile.new('unittest')
|
252
252
|
tf.puts("AUTO_DECLARE_TARGETS TRUE")
|
253
253
|
tf.close
|
254
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
254
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for AUTO_DECLARE_TARGETS./)
|
255
255
|
tf.unlink
|
256
256
|
end
|
257
257
|
|
@@ -270,7 +270,7 @@ module Cosmos
|
|
270
270
|
tf.puts("AUTO_DECLARE_TARGETS")
|
271
271
|
tf.close
|
272
272
|
FileUtils.mkdir_p(File.join(@config_targets, 'tgt'))
|
273
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
273
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Target folder must be uppercase: 'tgt'/)
|
274
274
|
Dir.rmdir(File.join(@config_targets, 'tgt'))
|
275
275
|
tf.unlink
|
276
276
|
end
|
@@ -298,13 +298,13 @@ module Cosmos
|
|
298
298
|
tf = Tempfile.new('unittest')
|
299
299
|
tf.puts("DECLARE_TARGET")
|
300
300
|
tf.close
|
301
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
301
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for DECLARE_TARGET./)
|
302
302
|
tf.unlink
|
303
303
|
|
304
304
|
tf = Tempfile.new('unittest')
|
305
305
|
tf.puts("DECLARE_TARGET TGT TGT TGT TGT")
|
306
306
|
tf.close
|
307
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
307
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DECLARE_TARGET./)
|
308
308
|
tf.unlink
|
309
309
|
end
|
310
310
|
|
@@ -352,13 +352,13 @@ module Cosmos
|
|
352
352
|
tf = Tempfile.new('unittest')
|
353
353
|
tf.puts("PORT CTS_API")
|
354
354
|
tf.close
|
355
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
355
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for PORT./)
|
356
356
|
tf.unlink
|
357
357
|
|
358
358
|
tf = Tempfile.new('unittest')
|
359
359
|
tf.puts("PORT CTS_API 8888 TRUE")
|
360
360
|
tf.close
|
361
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
361
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for PORT./)
|
362
362
|
tf.unlink
|
363
363
|
end
|
364
364
|
|
@@ -389,13 +389,13 @@ module Cosmos
|
|
389
389
|
tf = Tempfile.new('unittest')
|
390
390
|
tf.puts("PATH C:/")
|
391
391
|
tf.close
|
392
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
392
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for PATH./)
|
393
393
|
tf.unlink
|
394
394
|
|
395
395
|
tf = Tempfile.new('unittest')
|
396
396
|
tf.puts("PATH MYPATH C:/ TRUE")
|
397
397
|
tf.close
|
398
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
398
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for PATH./)
|
399
399
|
tf.unlink
|
400
400
|
end
|
401
401
|
|
@@ -428,13 +428,13 @@ module Cosmos
|
|
428
428
|
tf = Tempfile.new('unittest')
|
429
429
|
tf.puts("DEFAULT_PACKET_LOG_WRITER")
|
430
430
|
tf.close
|
431
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
431
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for DEFAULT_PACKET_LOG_WRITER./)
|
432
432
|
tf.unlink
|
433
433
|
|
434
434
|
tf = Tempfile.new('unittest')
|
435
435
|
tf.puts("DEFAULT_PACKET_LOG_WRITER my_nonexistent_class TRUE")
|
436
436
|
tf.close
|
437
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
437
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DEFAULT_PACKET_LOG_WRITER./)
|
438
438
|
tf.unlink
|
439
439
|
end
|
440
440
|
|
@@ -467,13 +467,13 @@ module Cosmos
|
|
467
467
|
tf = Tempfile.new('unittest')
|
468
468
|
tf.puts("DEFAULT_PACKET_LOG_READER")
|
469
469
|
tf.close
|
470
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
470
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for DEFAULT_PACKET_LOG_READER./)
|
471
471
|
tf.unlink
|
472
472
|
|
473
473
|
tf = Tempfile.new('unittest')
|
474
474
|
tf.puts("DEFAULT_PACKET_LOG_READER my_nonexistent_class TRUE")
|
475
475
|
tf.close
|
476
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
476
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DEFAULT_PACKET_LOG_READER./)
|
477
477
|
tf.unlink
|
478
478
|
end
|
479
479
|
|
@@ -506,7 +506,7 @@ module Cosmos
|
|
506
506
|
tf = Tempfile.new('unittest')
|
507
507
|
tf.puts("DISABLE_DNS BLAH TRUE")
|
508
508
|
tf.close
|
509
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
509
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DISABLE_DNS./)
|
510
510
|
tf.unlink
|
511
511
|
end
|
512
512
|
|
@@ -536,13 +536,13 @@ module Cosmos
|
|
536
536
|
tf = Tempfile.new('unittest')
|
537
537
|
tf.puts("ALLOW_ACCESS")
|
538
538
|
tf.close
|
539
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
539
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for ALLOW_ACCESS./)
|
540
540
|
tf.unlink
|
541
541
|
|
542
542
|
tf = Tempfile.new('unittest')
|
543
543
|
tf.puts("ALLOW_ACCESS localhost true")
|
544
544
|
tf.close
|
545
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
545
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for ALLOW_ACCESS./)
|
546
546
|
tf.unlink
|
547
547
|
end
|
548
548
|
|
@@ -596,13 +596,13 @@ module Cosmos
|
|
596
596
|
tf = Tempfile.new('unittest')
|
597
597
|
tf.puts("STALENESS_SECONDS")
|
598
598
|
tf.close
|
599
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
599
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for STALENESS_SECONDS./)
|
600
600
|
tf.unlink
|
601
601
|
|
602
602
|
tf = Tempfile.new('unittest')
|
603
603
|
tf.puts("STALENESS_SECONDS 1 2")
|
604
604
|
tf.close
|
605
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
605
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for STALENESS_SECONDS./)
|
606
606
|
tf.unlink
|
607
607
|
end
|
608
608
|
|
@@ -622,13 +622,13 @@ module Cosmos
|
|
622
622
|
tf = Tempfile.new('unittest')
|
623
623
|
tf.puts("CMD_TLM_VERSION")
|
624
624
|
tf.close
|
625
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
625
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for CMD_TLM_VERSION./)
|
626
626
|
tf.unlink
|
627
627
|
|
628
628
|
tf = Tempfile.new('unittest')
|
629
629
|
tf.puts("CMD_TLM_VERSION 1 2")
|
630
630
|
tf.close
|
631
|
-
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
631
|
+
expect { System.instance.process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for CMD_TLM_VERSION./)
|
632
632
|
tf.unlink
|
633
633
|
end
|
634
634
|
|
data/spec/system/target_spec.rb
CHANGED
@@ -100,7 +100,7 @@ module Cosmos
|
|
100
100
|
tf = Tempfile.new('unittest')
|
101
101
|
tf.puts("BLAH")
|
102
102
|
tf.close
|
103
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
103
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Unknown keyword 'BLAH'/)
|
104
104
|
tf.unlink
|
105
105
|
end
|
106
106
|
|
@@ -109,13 +109,13 @@ module Cosmos
|
|
109
109
|
tf = Tempfile.new('unittest')
|
110
110
|
tf.puts("REQUIRE")
|
111
111
|
tf.close
|
112
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
112
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for REQUIRE./)
|
113
113
|
tf.unlink
|
114
114
|
|
115
115
|
tf = Tempfile.new('unittest')
|
116
116
|
tf.puts("REQUIRE my_file.rb TRUE")
|
117
117
|
tf.close
|
118
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
118
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for REQUIRE./)
|
119
119
|
tf.unlink
|
120
120
|
end
|
121
121
|
|
@@ -148,13 +148,13 @@ module Cosmos
|
|
148
148
|
tf = Tempfile.new('unittest')
|
149
149
|
tf.puts("IGNORE_PARAMETER")
|
150
150
|
tf.close
|
151
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
151
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for IGNORE_PARAMETER./)
|
152
152
|
tf.unlink
|
153
153
|
|
154
154
|
tf = Tempfile.new('unittest')
|
155
155
|
tf.puts("IGNORE_PARAMETER my_file.rb TRUE")
|
156
156
|
tf.close
|
157
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
157
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for IGNORE_PARAMETER./)
|
158
158
|
tf.unlink
|
159
159
|
end
|
160
160
|
|
@@ -174,25 +174,25 @@ module Cosmos
|
|
174
174
|
tf = Tempfile.new('unittest')
|
175
175
|
tf.puts("COMMANDS")
|
176
176
|
tf.close
|
177
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
177
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for COMMANDS./)
|
178
178
|
tf.unlink
|
179
179
|
|
180
180
|
tf = Tempfile.new('unittest')
|
181
181
|
tf.puts("COMMANDS tgt_cmds.txt TRUE")
|
182
182
|
tf.close
|
183
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
183
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for COMMANDS./)
|
184
184
|
tf.unlink
|
185
185
|
|
186
186
|
tf = Tempfile.new('unittest')
|
187
187
|
tf.puts("TELEMETRY")
|
188
188
|
tf.close
|
189
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
189
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for TELEMETRY./)
|
190
190
|
tf.unlink
|
191
191
|
|
192
192
|
tf = Tempfile.new('unittest')
|
193
193
|
tf.puts("TELEMETRY tgt_tlm.txt TRUE")
|
194
194
|
tf.close
|
195
|
-
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error,
|
195
|
+
expect { Target.new("TGT").process_file(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for TELEMETRY./)
|
196
196
|
tf.unlink
|
197
197
|
end
|
198
198
|
|
@@ -238,7 +238,7 @@ module Cosmos
|
|
238
238
|
file.puts("TELEMETRY tgt_tlm4.txt")
|
239
239
|
end
|
240
240
|
|
241
|
-
expect { Target.new(tgt_name,nil,tgt_path) }.to raise_error(ConfigParser::Error,
|
241
|
+
expect { Target.new(tgt_name,nil,tgt_path) }.to raise_error(ConfigParser::Error, /#{tgt_dir + '/cmd_tlm/tgt_cmds4.txt'} not found/)
|
242
242
|
|
243
243
|
FileUtils.rm_r(tgt_dir)
|
244
244
|
end
|
@@ -46,7 +46,7 @@ module Cosmos
|
|
46
46
|
tf = Tempfile.new('unittest')
|
47
47
|
tf.puts "UNKNOWN"
|
48
48
|
tf.close
|
49
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
49
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Unknown keyword: UNKNOWN/)
|
50
50
|
tf.unlink
|
51
51
|
end
|
52
52
|
|
@@ -56,7 +56,7 @@ module Cosmos
|
|
56
56
|
tf = Tempfile.new('unittest')
|
57
57
|
tf.puts keyword
|
58
58
|
tf.close
|
59
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
59
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for #{keyword}./)
|
60
60
|
tf.unlink
|
61
61
|
end
|
62
62
|
|
@@ -66,7 +66,7 @@ module Cosmos
|
|
66
66
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
67
67
|
tf.puts keyword
|
68
68
|
tf.close
|
69
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
69
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for #{keyword}./)
|
70
70
|
tf.unlink
|
71
71
|
end
|
72
72
|
end
|
@@ -76,7 +76,7 @@ module Cosmos
|
|
76
76
|
tf = Tempfile.new('unittest')
|
77
77
|
tf.puts 'TITLE HI THERE'
|
78
78
|
tf.close
|
79
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
79
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for TITLE./)
|
80
80
|
tf.unlink
|
81
81
|
end
|
82
82
|
|
@@ -115,6 +115,14 @@ module Cosmos
|
|
115
115
|
end
|
116
116
|
sleep(0.2)
|
117
117
|
end
|
118
|
+
|
119
|
+
it "doesnt allow overriding a PACKET_LOG_WRITER associated with an interface" do
|
120
|
+
tf = Tempfile.new('unittest')
|
121
|
+
tf.puts 'AUTO_INTERFACE_TARGETS'
|
122
|
+
tf.puts 'PACKET_LOG_WRITER DEFAULT packet_log_writer.rb test_log_name false 3 1000 C:\log false'
|
123
|
+
tf.close
|
124
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Redefining Packet Log Writer DEFAULT not allowed after it is associated with an interface/)
|
125
|
+
end
|
118
126
|
end
|
119
127
|
|
120
128
|
context "with AUTO_INTERFACE_TARGETS" do
|
@@ -122,7 +130,7 @@ module Cosmos
|
|
122
130
|
tf = Tempfile.new('unittest')
|
123
131
|
tf.puts 'AUTO_INTERFACE_TARGETS BLAH'
|
124
132
|
tf.close
|
125
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
133
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for AUTO_INTERFACE_TARGETS./)
|
126
134
|
tf.unlink
|
127
135
|
end
|
128
136
|
|
@@ -144,7 +152,7 @@ module Cosmos
|
|
144
152
|
tf = Tempfile.new('unittest')
|
145
153
|
tf.puts 'INTERFACE_TARGET BLAH config.txt MORE'
|
146
154
|
tf.close
|
147
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
155
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for INTERFACE_TARGET./)
|
148
156
|
tf.unlink
|
149
157
|
end
|
150
158
|
|
@@ -152,7 +160,7 @@ module Cosmos
|
|
152
160
|
tf = Tempfile.new('unittest')
|
153
161
|
tf.puts 'INTERFACE_TARGET BLAH'
|
154
162
|
tf.close
|
155
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
163
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Unknown target: BLAH/)
|
156
164
|
tf.unlink
|
157
165
|
end
|
158
166
|
|
@@ -181,7 +189,7 @@ module Cosmos
|
|
181
189
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
182
190
|
tf.puts 'DONT_CONNECT TRUE'
|
183
191
|
tf.close
|
184
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
192
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DONT_CONNECT./)
|
185
193
|
tf.unlink
|
186
194
|
end
|
187
195
|
|
@@ -202,7 +210,7 @@ module Cosmos
|
|
202
210
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
203
211
|
tf.puts 'DONT_RECONNECT TRUE'
|
204
212
|
tf.close
|
205
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
213
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DONT_RECONNECT./)
|
206
214
|
tf.unlink
|
207
215
|
end
|
208
216
|
|
@@ -223,7 +231,7 @@ module Cosmos
|
|
223
231
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
224
232
|
tf.puts 'RECONNECT_DELAY 5.0 TRUE'
|
225
233
|
tf.close
|
226
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
234
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for RECONNECT_DELAY./)
|
227
235
|
tf.unlink
|
228
236
|
end
|
229
237
|
|
@@ -244,7 +252,7 @@ module Cosmos
|
|
244
252
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
245
253
|
tf.puts 'DISABLE_DISCONNECT TRUE'
|
246
254
|
tf.close
|
247
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
255
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DISABLE_DISCONNECT./)
|
248
256
|
tf.unlink
|
249
257
|
end
|
250
258
|
|
@@ -265,7 +273,7 @@ module Cosmos
|
|
265
273
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
266
274
|
tf.puts 'OPTION TRUE'
|
267
275
|
tf.close
|
268
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
276
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Not enough parameters for OPTION./)
|
269
277
|
tf.unlink
|
270
278
|
end
|
271
279
|
|
@@ -286,7 +294,7 @@ module Cosmos
|
|
286
294
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
287
295
|
tf.puts 'LOG PacketLogWriter TRUE'
|
288
296
|
tf.close
|
289
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
297
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for LOG./)
|
290
298
|
tf.unlink
|
291
299
|
end
|
292
300
|
|
@@ -295,7 +303,7 @@ module Cosmos
|
|
295
303
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
296
304
|
tf.puts 'LOG MyLogWriter'
|
297
305
|
tf.close
|
298
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
306
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Unknown packet log writer: MYLOGWRITER/)
|
299
307
|
tf.unlink
|
300
308
|
end
|
301
309
|
|
@@ -326,7 +334,7 @@ module Cosmos
|
|
326
334
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
327
335
|
tf.puts 'DONT_LOG TRUE'
|
328
336
|
tf.close
|
329
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
337
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for DONT_LOG./)
|
330
338
|
tf.unlink
|
331
339
|
end
|
332
340
|
|
@@ -347,7 +355,7 @@ module Cosmos
|
|
347
355
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
348
356
|
tf.puts 'TARGET TEST TRUE'
|
349
357
|
tf.close
|
350
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
358
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for TARGET./)
|
351
359
|
tf.unlink
|
352
360
|
end
|
353
361
|
|
@@ -356,7 +364,7 @@ module Cosmos
|
|
356
364
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
357
365
|
tf.puts 'TARGET BLAH'
|
358
366
|
tf.close
|
359
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
367
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Unknown target BLAH mapped to interface CTSCONFIGTESTINTERFACE/)
|
360
368
|
tf.unlink
|
361
369
|
end
|
362
370
|
end
|
@@ -367,7 +375,7 @@ module Cosmos
|
|
367
375
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
368
376
|
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
369
377
|
tf.close
|
370
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
378
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Interface 'CTSCONFIGTESTINTERFACE' defined twice/)
|
371
379
|
tf.unlink
|
372
380
|
end
|
373
381
|
end
|
@@ -378,7 +386,7 @@ module Cosmos
|
|
378
386
|
tf.puts "ROUTER MY_ROUTER1 cts_config_test_interface.rb"
|
379
387
|
tf.puts "ROUTER MY_ROUTER1 cts_config_test_interface.rb"
|
380
388
|
tf.close
|
381
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
389
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Router 'MY_ROUTER1' defined twice/)
|
382
390
|
tf.unlink
|
383
391
|
end
|
384
392
|
end
|
@@ -401,7 +409,7 @@ module Cosmos
|
|
401
409
|
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
402
410
|
tf.puts 'ROUTE interface more'
|
403
411
|
tf.close
|
404
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
412
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Too many parameters for ROUTE./)
|
405
413
|
tf.unlink
|
406
414
|
end
|
407
415
|
|
@@ -409,7 +417,7 @@ module Cosmos
|
|
409
417
|
tf = Tempfile.new('unittest')
|
410
418
|
tf.puts 'ROUTE interface more'
|
411
419
|
tf.close
|
412
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
420
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /No current router for ROUTE/)
|
413
421
|
tf.unlink
|
414
422
|
end
|
415
423
|
|
@@ -418,7 +426,7 @@ module Cosmos
|
|
418
426
|
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
419
427
|
tf.puts 'ROUTE CTSCONFIGTESTINTERFACE'
|
420
428
|
tf.close
|
421
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error,
|
429
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /Unknown interface CTSCONFIGTESTINTERFACE mapped to router ROUTER/)
|
422
430
|
tf.unlink
|
423
431
|
end
|
424
432
|
|