cosmos 3.2.1 → 3.3.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.
Files changed (364) hide show
  1. checksums.yaml +4 -4
  2. data/Manifest.txt +195 -0
  3. data/README.md +3 -3
  4. data/data/crc.txt +52 -52
  5. data/lib/cosmos.rb +1 -1
  6. data/lib/cosmos/core_ext/time.rb +11 -9
  7. data/lib/cosmos/gui/choosers/telemetry_chooser.rb +0 -2
  8. data/lib/cosmos/gui/dialogs/about_dialog.rb +2 -2
  9. data/lib/cosmos/gui/dialogs/exception_dialog.rb +2 -2
  10. data/lib/cosmos/gui/dialogs/progress_dialog.rb +11 -5
  11. data/lib/cosmos/gui/dialogs/splash.rb +32 -10
  12. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +1 -1
  13. data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +2 -2
  14. data/lib/cosmos/gui/qt.rb +22 -22
  15. data/lib/cosmos/io/json_drb.rb +4 -4
  16. data/lib/cosmos/io/json_rpc.rb +21 -21
  17. data/lib/cosmos/packet_logs/packet_log_writer.rb +18 -20
  18. data/lib/cosmos/packets/commands.rb +8 -6
  19. data/lib/cosmos/packets/limits.rb +3 -2
  20. data/lib/cosmos/packets/packet.rb +14 -11
  21. data/lib/cosmos/packets/parsers/limits_parser.rb +1 -1
  22. data/lib/cosmos/packets/parsers/macro_parser.rb +4 -4
  23. data/lib/cosmos/packets/parsers/state_parser.rb +1 -1
  24. data/lib/cosmos/packets/structure.rb +2 -2
  25. data/lib/cosmos/packets/telemetry.rb +5 -4
  26. data/lib/cosmos/script/script.rb +6 -6
  27. data/lib/cosmos/streams/tcpip_socket_stream.rb +2 -1
  28. data/lib/cosmos/streams/template_stream_protocol.rb +1 -1
  29. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +1 -1
  30. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +5 -8
  31. data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +4 -3
  32. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +9 -3
  33. data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +15 -11
  34. data/lib/cosmos/tools/data_viewer/data_viewer.rb +1 -1
  35. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +2 -2
  36. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +2 -2
  37. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +0 -2
  38. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +1 -1
  39. data/lib/cosmos/tools/replay/replay.rb +2 -2
  40. data/lib/cosmos/tools/script_runner/script_audit.rb +1 -1
  41. data/lib/cosmos/tools/script_runner/script_runner.rb +1 -1
  42. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +3 -7
  43. data/lib/cosmos/tools/table_manager/table_config.rb +1 -1
  44. data/lib/cosmos/tools/test_runner/results_writer.rb +1 -1
  45. data/lib/cosmos/tools/test_runner/test_runner.rb +2 -2
  46. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +2 -1
  47. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +1 -1
  48. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +1 -0
  49. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +1 -0
  50. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +1 -0
  51. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +3 -3
  52. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +1 -3
  53. data/lib/cosmos/top_level.rb +2 -6
  54. data/lib/cosmos/utilities/ruby_lex_utils.rb +1 -1
  55. data/lib/cosmos/version.rb +5 -5
  56. data/lib/cosmos/win32/win32_main.rb +11 -7
  57. data/spec/ccsds/ccsds_packet_spec.rb +28 -28
  58. data/spec/ccsds/ccsds_parser_spec.rb +27 -27
  59. data/spec/config/config_parser_spec.rb +88 -88
  60. data/spec/conversions/conversion_spec.rb +3 -3
  61. data/spec/conversions/generic_conversion_spec.rb +9 -9
  62. data/spec/conversions/new_packet_log_conversion_spec.rb +4 -4
  63. data/spec/conversions/polynomial_conversion_spec.rb +7 -7
  64. data/spec/conversions/processor_conversion_spec.rb +9 -9
  65. data/spec/conversions/received_count_conversion_spec.rb +7 -7
  66. data/spec/conversions/received_time_formatted_conversion_spec.rb +9 -9
  67. data/spec/conversions/received_time_seconds_conversion_spec.rb +9 -9
  68. data/spec/conversions/segmented_polynomial_conversion_spec.rb +11 -11
  69. data/spec/conversions/unix_time_formatted_conversion_spec.rb +13 -13
  70. data/spec/conversions/unix_time_seconds_conversion_spec.rb +13 -13
  71. data/spec/core_ext/array_spec.rb +76 -76
  72. data/spec/core_ext/class_spec.rb +3 -3
  73. data/spec/core_ext/cosmos_io_spec.rb +16 -16
  74. data/spec/core_ext/exception_spec.rb +19 -19
  75. data/spec/core_ext/file_spec.rb +16 -16
  76. data/spec/core_ext/hash_spec.rb +3 -3
  77. data/spec/core_ext/io_spec.rb +2 -2
  78. data/spec/core_ext/kernel_spec.rb +2 -2
  79. data/spec/core_ext/math_spec.rb +43 -43
  80. data/spec/core_ext/matrix_spec.rb +22 -22
  81. data/spec/core_ext/objectspace_spec.rb +6 -6
  82. data/spec/core_ext/range_spec.rb +2 -2
  83. data/spec/core_ext/socket_spec.rb +4 -4
  84. data/spec/core_ext/string_spec.rb +67 -67
  85. data/spec/core_ext/stringio_spec.rb +2 -2
  86. data/spec/core_ext/time_spec.rb +82 -82
  87. data/spec/gui/line_graph/line_clip_spec.rb +34 -34
  88. data/spec/interfaces/interface_spec.rb +46 -46
  89. data/spec/interfaces/linc_interface_spec.rb +26 -26
  90. data/spec/interfaces/serial_interface_spec.rb +16 -16
  91. data/spec/interfaces/simulated_target_interface_spec.rb +21 -21
  92. data/spec/interfaces/stream_interface_spec.rb +22 -22
  93. data/spec/interfaces/tcpip_client_interface_spec.rb +14 -14
  94. data/spec/interfaces/tcpip_server_interface_spec.rb +41 -41
  95. data/spec/interfaces/udp_interface_spec.rb +46 -46
  96. data/spec/io/buffered_file_spec.rb +50 -50
  97. data/spec/io/io_multiplexer_spec.rb +9 -9
  98. data/spec/io/json_drb_object_spec.rb +7 -7
  99. data/spec/io/json_drb_spec.rb +55 -55
  100. data/spec/io/json_rpc_spec.rb +68 -68
  101. data/spec/io/raw_logger_pair_spec.rb +28 -28
  102. data/spec/io/raw_logger_spec.rb +22 -22
  103. data/spec/io/serial_driver_spec.rb +3 -3
  104. data/spec/io/stderr_spec.rb +2 -2
  105. data/spec/io/stdout_spec.rb +2 -2
  106. data/spec/io/tcpip_server_spec.rb +62 -62
  107. data/spec/io/udp_sockets_spec.rb +19 -19
  108. data/spec/io/win32_serial_driver_spec.rb +10 -10
  109. data/spec/packet_logs/meta_packet_log_writer_spec.rb +32 -32
  110. data/spec/packet_logs/packet_log_reader_spec.rb +138 -138
  111. data/spec/packet_logs/packet_log_writer_pair_spec.rb +3 -3
  112. data/spec/packet_logs/packet_log_writer_spec.rb +26 -26
  113. data/spec/packets/binary_accessor_spec.rb +672 -672
  114. data/spec/packets/commands_spec.rb +123 -123
  115. data/spec/packets/limits_response_spec.rb +1 -1
  116. data/spec/packets/limits_spec.rb +69 -69
  117. data/spec/packets/packet_config_spec.rb +93 -93
  118. data/spec/packets/packet_item_limits_spec.rb +46 -46
  119. data/spec/packets/packet_item_spec.rb +108 -108
  120. data/spec/packets/packet_spec.rb +364 -348
  121. data/spec/packets/parsers/format_string_parser_spec.rb +13 -13
  122. data/spec/packets/parsers/limits_parser_spec.rb +8 -8
  123. data/spec/packets/parsers/limits_response_parser_spec.rb +9 -9
  124. data/spec/packets/parsers/macro_parser_spec.rb +34 -6
  125. data/spec/packets/parsers/packet_parser_spec.rb +6 -6
  126. data/spec/packets/parsers/processor_parser_spec.rb +7 -7
  127. data/spec/packets/parsers/state_parser_spec.rb +23 -23
  128. data/spec/packets/structure_item_spec.rb +62 -62
  129. data/spec/packets/structure_spec.rb +183 -183
  130. data/spec/packets/telemetry_spec.rb +174 -174
  131. data/spec/processors/new_packet_log_processor_spec.rb +4 -4
  132. data/spec/processors/processor_spec.rb +9 -9
  133. data/spec/processors/statistics_processor_spec.rb +21 -21
  134. data/spec/processors/watermark_processor_spec.rb +12 -12
  135. data/spec/script/script_spec.rb +158 -158
  136. data/spec/spec_helper.rb +44 -13
  137. data/spec/streams/burst_stream_protocol_spec.rb +8 -8
  138. data/spec/streams/fixed_stream_protocol_spec.rb +26 -26
  139. data/spec/streams/length_stream_protocol_spec.rb +27 -27
  140. data/spec/streams/preidentified_stream_protocol_spec.rb +25 -25
  141. data/spec/streams/serial_stream_spec.rb +19 -19
  142. data/spec/streams/stream_protocol_spec.rb +52 -52
  143. data/spec/streams/stream_spec.rb +1 -1
  144. data/spec/streams/tcpip_client_stream_spec.rb +7 -7
  145. data/spec/streams/tcpip_socket_stream_spec.rb +84 -49
  146. data/spec/streams/template_stream_protocol_spec.rb +17 -17
  147. data/spec/streams/terminated_stream_protocol_spec.rb +19 -19
  148. data/spec/system/system_spec.rb +95 -95
  149. data/spec/system/target_spec.rb +32 -32
  150. data/spec/tools/cmd_tlm_server/api_spec.rb +386 -386
  151. data/spec/tools/cmd_tlm_server/background_task_spec.rb +3 -3
  152. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +8 -8
  153. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +57 -57
  154. data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +85 -85
  155. data/spec/tools/cmd_tlm_server/commanding_spec.rb +11 -11
  156. data/spec/tools/cmd_tlm_server/connections_spec.rb +23 -23
  157. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +57 -57
  158. data/spec/tools/cmd_tlm_server/interfaces_spec.rb +32 -32
  159. data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +17 -17
  160. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +15 -15
  161. data/spec/tools/cmd_tlm_server/routers_spec.rb +36 -36
  162. data/spec/top_level/top_level_spec.rb +60 -60
  163. data/spec/utilities/crc_spec.rb +6 -6
  164. data/spec/utilities/csv_spec.rb +13 -13
  165. data/spec/utilities/logger_spec.rb +20 -20
  166. data/spec/utilities/message_log_spec.rb +13 -13
  167. data/spec/utilities/quaternion_spec.rb +30 -30
  168. data/spec/utilities/ruby_lex_utils_spec.rb +14 -14
  169. data/test/benchmarks/binary_accessor_benchmark.rb +14 -0
  170. data/test/benchmarks/gsub_benchmark.rb +114 -0
  171. data/test/performance/PACKETS.bat +1 -0
  172. data/test/performance/Rakefile +77 -0
  173. data/test/performance/THREADS.bat +1 -0
  174. data/test/performance/config/data/attitude.bin +0 -0
  175. data/test/performance/config/data/crc.txt +206 -0
  176. data/test/performance/config/data/diamond.STL +58 -0
  177. data/test/performance/config/data/groundoff.gif +0 -0
  178. data/test/performance/config/data/groundon.gif +0 -0
  179. data/test/performance/config/data/hselectoff.gif +0 -0
  180. data/test/performance/config/data/hselecton.gif +0 -0
  181. data/test/performance/config/data/hswitchoff.gif +0 -0
  182. data/test/performance/config/data/hswitchon.gif +0 -0
  183. data/test/performance/config/data/meta_init.txt +4 -0
  184. data/test/performance/config/data/position.bin +0 -0
  185. data/test/performance/config/data/poweroff.gif +0 -0
  186. data/test/performance/config/data/poweron.gif +0 -0
  187. data/test/performance/config/data/satellite.gif +0 -0
  188. data/test/performance/config/data/tada.wav +0 -0
  189. data/test/performance/config/data/vswitchoff.gif +0 -0
  190. data/test/performance/config/data/vswitchon.gif +0 -0
  191. data/test/performance/config/system/system_packets.txt +39 -0
  192. data/test/performance/config/system/system_threads.txt +59 -0
  193. data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  194. data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  195. data/test/performance/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  196. data/test/performance/config/targets/COSMOS/screens/limits_change.txt +20 -0
  197. data/test/performance/config/targets/COSMOS/screens/version.txt +19 -0
  198. data/test/performance/config/targets/COSMOS/target.txt +11 -0
  199. data/test/performance/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +17 -0
  200. data/test/performance/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +18 -0
  201. data/test/performance/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -0
  202. data/test/performance/config/targets/EXAMPLE/lib/example_interface.rb +22 -0
  203. data/test/performance/config/targets/EXAMPLE/target.txt +7 -0
  204. data/test/performance/config/targets/SYSTEM/screens/status.txt +12 -0
  205. data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +34 -0
  206. data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +68 -0
  207. data/test/performance/config/tools/data_viewer/data_viewer.txt +11 -0
  208. data/test/performance/config/tools/handbook_creator/default_toc.xsl +59 -0
  209. data/test/performance/config/tools/handbook_creator/handbook_creator.txt +66 -0
  210. data/test/performance/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
  211. data/test/performance/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
  212. data/test/performance/config/tools/handbook_creator/templates/footer.html.erb +9 -0
  213. data/test/performance/config/tools/handbook_creator/templates/header.html.erb +25 -0
  214. data/test/performance/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
  215. data/test/performance/config/tools/handbook_creator/templates/nav.html.erb +27 -0
  216. data/test/performance/config/tools/handbook_creator/templates/overview.html.erb +1 -0
  217. data/test/performance/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
  218. data/test/performance/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
  219. data/test/performance/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
  220. data/test/performance/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
  221. data/test/performance/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
  222. data/test/performance/config/tools/handbook_creator/templates/title.html.erb +1 -0
  223. data/test/performance/config/tools/launcher/launcher_packets.txt +29 -0
  224. data/test/performance/config/tools/launcher/launcher_threads.txt +70 -0
  225. data/test/performance/config/tools/limits_monitor/README.txt +1 -0
  226. data/test/performance/config/tools/opengl_builder/README.txt +1 -0
  227. data/test/performance/config/tools/script_runner/script_runner.txt +3 -0
  228. data/test/performance/config/tools/table_manager/ConfigTables_def.txt +8 -0
  229. data/test/performance/config/tools/table_manager/ExampleTableDefinition.txt +24 -0
  230. data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -0
  231. data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -0
  232. data/test/performance/config/tools/table_manager/PPSSelectionTable_def.txt +8 -0
  233. data/test/performance/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -0
  234. data/test/performance/config/tools/test_runner/test_runner.txt +17 -0
  235. data/test/performance/config/tools/tlm_extractor/tlm_extractor.txt +13 -0
  236. data/test/performance/config/tools/tlm_extractor/tlm_extractor2.txt +2 -0
  237. data/test/performance/config/tools/tlm_extractor/tlm_extractor3.txt +2 -0
  238. data/test/performance/config/tools/tlm_extractor/tlm_extractor4.txt +2 -0
  239. data/test/performance/config/tools/tlm_grapher/README.txt +1 -0
  240. data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +41 -0
  241. data/test/performance/lib/example_background_task.rb +57 -0
  242. data/test/performance/lib/example_target.rb +120 -0
  243. data/test/performance/lib/scpi_target.rb +74 -0
  244. data/test/performance/lib/user_version.rb +3 -0
  245. data/test/performance/outputs/handbooks/README.txt +1 -0
  246. data/test/performance/outputs/logs/README.txt +1 -0
  247. data/test/performance/outputs/saved_config/README.txt +1 -0
  248. data/test/performance/outputs/tables/README.txt +1 -0
  249. data/test/performance/outputs/tmp/README.txt +1 -0
  250. data/test/performance/procedures/checks.rb +11 -0
  251. data/test/performance/procedures/clear_util.rb +7 -0
  252. data/test/performance/procedures/collect.rb +18 -0
  253. data/test/performance/procedures/collect_util.rb +14 -0
  254. data/test/performance/procedures/cosmos_api_test.rb +293 -0
  255. data/test/performance/procedures/disconnect.rb +29 -0
  256. data/test/performance/procedures/example_test.rb +182 -0
  257. data/test/performance/procedures/plot_test.rb +8 -0
  258. data/test/performance/procedures/procedure.rb +3 -0
  259. data/test/performance/procedures/run_example_test.rb +3 -0
  260. data/test/performance/procedures/test.rb +51 -0
  261. data/test/performance/tools/CmdExtractor +14 -0
  262. data/test/performance/tools/CmdExtractor.bat +59 -0
  263. data/test/performance/tools/CmdSender +14 -0
  264. data/test/performance/tools/CmdSender.bat +59 -0
  265. data/test/performance/tools/CmdTlmServer +16 -0
  266. data/test/performance/tools/CmdTlmServer.bat +59 -0
  267. data/test/performance/tools/CmdTlmServerMemProf +20 -0
  268. data/test/performance/tools/CmdTlmServerMemProf.bat +59 -0
  269. data/test/performance/tools/DataViewer +14 -0
  270. data/test/performance/tools/DataViewer.bat +59 -0
  271. data/test/performance/tools/ExampleTarget +14 -0
  272. data/test/performance/tools/ExampleTarget.bat +59 -0
  273. data/test/performance/tools/HandbookCreator +14 -0
  274. data/test/performance/tools/HandbookCreator.bat +61 -0
  275. data/test/performance/tools/Launcher +14 -0
  276. data/test/performance/tools/Launcher.bat +59 -0
  277. data/test/performance/tools/LimitsMonitor +14 -0
  278. data/test/performance/tools/LimitsMonitor.bat +59 -0
  279. data/test/performance/tools/OpenGLBuilder +14 -0
  280. data/test/performance/tools/OpenGLBuilder.bat +59 -0
  281. data/test/performance/tools/PacketViewer +14 -0
  282. data/test/performance/tools/PacketViewer.bat +59 -0
  283. data/test/performance/tools/Replay +14 -0
  284. data/test/performance/tools/Replay.bat +59 -0
  285. data/test/performance/tools/ScpiTarget +14 -0
  286. data/test/performance/tools/ScpiTarget.bat +59 -0
  287. data/test/performance/tools/ScriptRunner +14 -0
  288. data/test/performance/tools/ScriptRunner.bat +59 -0
  289. data/test/performance/tools/TableManager +14 -0
  290. data/test/performance/tools/TableManager.bat +59 -0
  291. data/test/performance/tools/TestRunner +14 -0
  292. data/test/performance/tools/TestRunner.bat +59 -0
  293. data/test/performance/tools/TlmExtractor +14 -0
  294. data/test/performance/tools/TlmExtractor.bat +59 -0
  295. data/test/performance/tools/TlmGrapher +14 -0
  296. data/test/performance/tools/TlmGrapher.bat +59 -0
  297. data/test/performance/tools/TlmViewer +14 -0
  298. data/test/performance/tools/TlmViewer.bat +59 -0
  299. data/test/performance/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
  300. data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -0
  301. data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -0
  302. data/test/performance/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
  303. data/test/performance/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
  304. data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -0
  305. data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -0
  306. data/test/performance/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
  307. data/test/performance/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
  308. data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -0
  309. data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -0
  310. data/test/performance/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
  311. data/test/performance/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
  312. data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -0
  313. data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -0
  314. data/test/performance/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
  315. data/test/performance/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
  316. data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -0
  317. data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -0
  318. data/test/performance/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
  319. data/test/performance/tools/mac/Launcher.app/Contents/Info.plist +38 -0
  320. data/test/performance/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -0
  321. data/test/performance/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -0
  322. data/test/performance/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
  323. data/test/performance/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
  324. data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -0
  325. data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -0
  326. data/test/performance/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
  327. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
  328. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -0
  329. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -0
  330. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
  331. data/test/performance/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
  332. data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -0
  333. data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -0
  334. data/test/performance/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
  335. data/test/performance/tools/mac/Replay.app/Contents/Info.plist +38 -0
  336. data/test/performance/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -0
  337. data/test/performance/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -0
  338. data/test/performance/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
  339. data/test/performance/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
  340. data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -0
  341. data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -0
  342. data/test/performance/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
  343. data/test/performance/tools/mac/TableManager.app/Contents/Info.plist +38 -0
  344. data/test/performance/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -0
  345. data/test/performance/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -0
  346. data/test/performance/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
  347. data/test/performance/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
  348. data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -0
  349. data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -0
  350. data/test/performance/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
  351. data/test/performance/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
  352. data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -0
  353. data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -0
  354. data/test/performance/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
  355. data/test/performance/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
  356. data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -0
  357. data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -0
  358. data/test/performance/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
  359. data/test/performance/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
  360. data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -0
  361. data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -0
  362. data/test/performance/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
  363. data/test/performance/userpath.txt +1 -0
  364. metadata +197 -2
@@ -91,7 +91,7 @@ RSpec.configure do |config|
91
91
 
92
92
  config.after(:each) do
93
93
  # Make sure we didn't leave any lingering threads
94
- Thread.list.length.should eql(1)
94
+ expect(Thread.list.length).to eql(1)
95
95
  end
96
96
  end
97
97
 
@@ -132,23 +132,54 @@ def capture_io
132
132
  end
133
133
 
134
134
  RSpec.configure do |c|
135
- c.around(:each) do |example|
136
- if ENV.key?("PROFILE")
137
- klass = example.metadata[:example_group][:example_group][:description_args][0].to_s.gsub(/::/,'')
138
- method = example.metadata[:description_args][0].to_s.gsub!(/ /,'_')
135
+ if ENV.key?("PROFILE")
136
+ c.before(:suite) do
139
137
  RubyProf.start
138
+ end
139
+ c.after(:suite) do |example|
140
+ result = RubyProf.stop
141
+ ignore = [/BasicObject/]
142
+ # Get all the RSpec constants so we can ignore them
143
+ RSpec.constants.each do |constant|
144
+ if Object.const_get("RSpec::#{constant}").respond_to? :constants
145
+ Object.const_get("RSpec::#{constant}").constants.each {|sub| ignore << Regexp.new("RSpec::#{constant}::#{sub}") }
146
+ else
147
+ ignore << Regexp.new("RSpec::#{constant}")
148
+ end
149
+ end
150
+ # But don't ignore RSpec::Core::Runner because it's the root.
151
+ # Ignoring this causes "can't eliminate root method (RuntimeError)"
152
+ ignore.delete(Regexp.new("RSpec::Core::Runner"))
153
+
154
+ result.eliminate_methods!(ignore)
155
+ printer = RubyProf::GraphHtmlPrinter.new(result)
156
+ printer.print(File.open("profile.html", 'w+'), :min_percent => 1)
157
+ end
158
+ c.around(:each) do |example|
159
+ # Run each test 100 times to prevent startup issues from dominating
140
160
  100.times do
141
161
  example.run
142
162
  end
143
- result = RubyProf.stop
144
- result.eliminate_methods!([/RSpec/, /BasicObject/])
145
- printer = RubyProf::GraphHtmlPrinter.new(result)
146
- dir = "./profile/#{klass}"
147
- FileUtils.mkdir_p(dir)
148
- printer.print(File.open("#{dir}/#{method}.html", 'w+'), :min_percent => 2)
149
- else
150
- example.run
151
163
  end
152
164
  end
165
+ # This code causes a new profile file to be created for each test case which is excessive and hard to read
166
+ # c.around(:each) do |example|
167
+ # if ENV.key?("PROFILE")
168
+ # klass = example.metadata[:example_group][:example_group][:description_args][0].to_s.gsub(/::/,'')
169
+ # method = example.metadata[:description_args][0].to_s.gsub!(/ /,'_')
170
+ # RubyProf.start
171
+ # 100.times do
172
+ # example.run
173
+ # end
174
+ # result = RubyProf.stop
175
+ # result.eliminate_methods!([/RSpec/, /BasicObject/])
176
+ # printer = RubyProf::GraphHtmlPrinter.new(result)
177
+ # dir = "./profile/#{klass}"
178
+ # FileUtils.mkdir_p(dir)
179
+ # printer.print(File.open("#{dir}/#{method}.html", 'w+'), :min_percent => 2)
180
+ # else
181
+ # example.run
182
+ # end
183
+ # end
153
184
  end
154
185
 
@@ -16,15 +16,15 @@ module Cosmos
16
16
  describe BurstStreamProtocol do
17
17
 
18
18
  describe "initialize" do
19
- it "should initialize attributes" do
19
+ it "initializes attributes" do
20
20
  bsp = BurstStreamProtocol.new
21
- bsp.bytes_read.should eql 0
22
- bsp.bytes_written.should eql 0
23
- bsp.interface.should be_nil
24
- bsp.stream.should be_nil
25
- bsp.post_read_data_callback.should be_nil
26
- bsp.post_read_packet_callback.should be_nil
27
- bsp.pre_write_packet_callback.should be_nil
21
+ expect(bsp.bytes_read).to eql 0
22
+ expect(bsp.bytes_written).to eql 0
23
+ expect(bsp.interface).to be_nil
24
+ expect(bsp.stream).to be_nil
25
+ expect(bsp.post_read_data_callback).to be_nil
26
+ expect(bsp.post_read_packet_callback).to be_nil
27
+ expect(bsp.pre_write_packet_callback).to be_nil
28
28
  end
29
29
  end
30
30
  end
@@ -27,19 +27,19 @@ module Cosmos
27
27
  end
28
28
 
29
29
  describe "initialize" do
30
- it "should initialize attributes" do
31
- @fsp.bytes_read.should eql 0
32
- @fsp.bytes_written.should eql 0
33
- @fsp.interface.should be_nil
34
- @fsp.stream.should be_nil
35
- @fsp.post_read_data_callback.should be_nil
36
- @fsp.post_read_packet_callback.should be_nil
37
- @fsp.pre_write_packet_callback.should be_nil
30
+ it "initializes attributes" do
31
+ expect(@fsp.bytes_read).to eql 0
32
+ expect(@fsp.bytes_written).to eql 0
33
+ expect(@fsp.interface).to be_nil
34
+ expect(@fsp.stream).to be_nil
35
+ expect(@fsp.post_read_data_callback).to be_nil
36
+ expect(@fsp.post_read_packet_callback).to be_nil
37
+ expect(@fsp.pre_write_packet_callback).to be_nil
38
38
  end
39
39
  end
40
40
 
41
41
  describe "read" do
42
- it "should complain if no interface set" do
42
+ it "complains if no interface set" do
43
43
  class MyStream < Stream
44
44
  def connect; end
45
45
  def connected?; true; end
@@ -50,7 +50,7 @@ module Cosmos
50
50
  expect { @fsp.read }.to raise_error(/Interface required/)
51
51
  end
52
52
 
53
- it "should read telemetry data from the stream" do
53
+ it "reads telemetry data from the stream" do
54
54
  class MyStream < Stream
55
55
  def connect; end
56
56
  def connected?; true; end
@@ -62,24 +62,24 @@ module Cosmos
62
62
  interface.target_names = %w(TEST COSMOS)
63
63
  @fsp.interface = interface
64
64
  packet = @fsp.read
65
- packet.received_time.to_f.should be_within(0.1).of(Time.now.to_f)
66
- packet.target_name.should eql 'COSMOS'
67
- packet.packet_name.should eql 'VERSION'
65
+ expect(packet.received_time.to_f).to be_within(0.1).of(Time.now.to_f)
66
+ expect(packet.target_name).to eql 'COSMOS'
67
+ expect(packet.packet_name).to eql 'VERSION'
68
68
  packet = @fsp.read
69
- packet.received_time.to_f.should be_within(0.1).of(Time.now.to_f)
70
- packet.target_name.should eql 'COSMOS'
71
- packet.packet_name.should eql 'LIMITS_CHANGE'
69
+ expect(packet.received_time.to_f).to be_within(0.1).of(Time.now.to_f)
70
+ expect(packet.target_name).to eql 'COSMOS'
71
+ expect(packet.packet_name).to eql 'LIMITS_CHANGE'
72
72
  packet = @fsp.read
73
- packet.received_time.to_f.should be_within(0.1).of(Time.now.to_f)
74
- packet.target_name.should eql 'COSMOS'
75
- packet.packet_name.should eql 'VERSION'
73
+ expect(packet.received_time.to_f).to be_within(0.1).of(Time.now.to_f)
74
+ expect(packet.target_name).to eql 'COSMOS'
75
+ expect(packet.packet_name).to eql 'VERSION'
76
76
  packet = @fsp.read
77
- packet.received_time.to_f.should be_within(0.1).of(Time.now.to_f)
78
- packet.target_name.should eql 'COSMOS'
79
- packet.packet_name.should eql 'LIMITS_CHANGE'
77
+ expect(packet.received_time.to_f).to be_within(0.1).of(Time.now.to_f)
78
+ expect(packet.target_name).to eql 'COSMOS'
79
+ expect(packet.packet_name).to eql 'LIMITS_CHANGE'
80
80
  end
81
81
 
82
- it "should read command data from the stream" do
82
+ it "reads command data from the stream" do
83
83
  @fsp = FixedStreamProtocol.new(8, 0, '0x1ACFFC1D', false)
84
84
 
85
85
  $index = 0
@@ -102,9 +102,9 @@ module Cosmos
102
102
  interface.target_names = %w(TEST COSMOS)
103
103
  @fsp.interface = interface
104
104
  packet = @fsp.read
105
- packet.received_time.to_f.should be_within(0.01).of(Time.now.to_f)
106
- packet.target_name.should eql 'COSMOS'
107
- packet.packet_name.should eql 'STARTLOGGING'
105
+ expect(packet.received_time.to_f).to be_within(0.01).of(Time.now.to_f)
106
+ expect(packet.target_name).to eql 'COSMOS'
107
+ expect(packet.packet_name).to eql 'STARTLOGGING'
108
108
  end
109
109
  end
110
110
 
@@ -17,20 +17,20 @@ module Cosmos
17
17
 
18
18
  describe LengthStreamProtocol do
19
19
  describe "initialize" do
20
- it "should initialize attributes" do
20
+ it "initializes attributes" do
21
21
  lsp = LengthStreamProtocol.new(1)
22
- lsp.bytes_read.should eql 0
23
- lsp.bytes_written.should eql 0
24
- lsp.interface.should be_nil
25
- lsp.stream.should be_nil
26
- lsp.post_read_data_callback.should be_nil
27
- lsp.post_read_packet_callback.should be_nil
28
- lsp.pre_write_packet_callback.should be_nil
22
+ expect(lsp.bytes_read).to eql 0
23
+ expect(lsp.bytes_written).to eql 0
24
+ expect(lsp.interface).to be_nil
25
+ expect(lsp.stream).to be_nil
26
+ expect(lsp.post_read_data_callback).to be_nil
27
+ expect(lsp.post_read_packet_callback).to be_nil
28
+ expect(lsp.pre_write_packet_callback).to be_nil
29
29
  end
30
30
  end
31
31
 
32
32
  describe "read" do
33
- it "should read BIG_ENDIAN length fields from the stream" do
33
+ it "reads BIG_ENDIAN length fields from the stream" do
34
34
  class MyStream < Stream
35
35
  def connect; end
36
36
  def connected?; true; end
@@ -56,7 +56,7 @@ module Cosmos
56
56
  $buffer1 = "\x00\x01\x00\x05"
57
57
  $buffer2 = "\x03\x04"
58
58
  packet = lsp.read
59
- packet.buffer.length.should eql 6
59
+ expect(packet.buffer.length).to eql 6
60
60
 
61
61
  lsp = LengthStreamProtocol.new(16, # bit offset
62
62
  16, # bit size
@@ -68,7 +68,7 @@ module Cosmos
68
68
  $buffer1 = "\x00\x01\x00\x05"
69
69
  $buffer2 = "\x03\x04\x05\x06\x07\x08\x09"
70
70
  packet = lsp.read
71
- packet.buffer.length.should eql 11
71
+ expect(packet.buffer.length).to eql 11
72
72
 
73
73
  lsp = LengthStreamProtocol.new(19, # bit offset
74
74
  5, # bit size
@@ -80,7 +80,7 @@ module Cosmos
80
80
  $buffer1 = "\x00\x01\x05"
81
81
  $buffer2 = "\x03\x04"
82
82
  packet = lsp.read
83
- packet.buffer.length.should eql 5
83
+ expect(packet.buffer.length).to eql 5
84
84
 
85
85
  lsp = LengthStreamProtocol.new(16, # bit offset
86
86
  16, # bit size
@@ -97,7 +97,7 @@ module Cosmos
97
97
  expect { packet = lsp.read }.to raise_error(RuntimeError, "Length value received larger than max_length: 65535 > 50")
98
98
  end
99
99
 
100
- it "should read LITTLE_ENDIAN length fields from the stream" do
100
+ it "reads LITTLE_ENDIAN length fields from the stream" do
101
101
  class MyStream < Stream
102
102
  def connect; end
103
103
  def connected?; true; end
@@ -123,7 +123,7 @@ module Cosmos
123
123
  $buffer1 = "\x00\x01\x05\x00"
124
124
  $buffer2 = "\x03\x04"
125
125
  packet = lsp.read
126
- packet.buffer.length.should eql 6
126
+ expect(packet.buffer.length).to eql 6
127
127
 
128
128
  lsp = LengthStreamProtocol.new(16, # bit offset
129
129
  16, # bit size
@@ -135,7 +135,7 @@ module Cosmos
135
135
  $buffer1 = "\x00\x01\x05\x00"
136
136
  $buffer2 = "\x03\x04\x05\x06\x07\x08\x09"
137
137
  packet = lsp.read
138
- packet.buffer.length.should eql 11
138
+ expect(packet.buffer.length).to eql 11
139
139
 
140
140
  lsp = LengthStreamProtocol.new(19, # bit offset
141
141
  5, # bit size
@@ -147,7 +147,7 @@ module Cosmos
147
147
  $buffer1 = "\x00\x01\x05"
148
148
  $buffer2 = "\x03\x04"
149
149
  packet = lsp.read
150
- packet.buffer.length.should eql 5
150
+ expect(packet.buffer.length).to eql 5
151
151
 
152
152
  lsp = LengthStreamProtocol.new(16, # bit offset
153
153
  16, # bit size
@@ -166,7 +166,7 @@ module Cosmos
166
166
  end
167
167
 
168
168
  describe "write" do
169
- it "should fill the length field and sync pattern if told to" do
169
+ it "fills the length field and sync pattern if told to" do
170
170
  class MyStream < Stream
171
171
  def connect; end
172
172
  @@written_data = nil
@@ -213,8 +213,8 @@ module Cosmos
213
213
  lsp.write(packet)
214
214
  # Since we discarded 2 leading bytes, they are put back in the final stream data
215
215
  # with the sync word and then then length is set to 0
216
- MyStream.written_data.should eql("\xBA\x5E\xBA\x11\x00\x00")
217
- packet.buffer.should eql("\x01\x02\x00\x00")
216
+ expect(MyStream.written_data).to eql("\xBA\x5E\xBA\x11\x00\x00")
217
+ expect(packet.buffer).to eql("\x01\x02\x00\x00")
218
218
 
219
219
  lsp = LengthStreamProtocol.new(32, # bit offset
220
220
  16, # bit size
@@ -234,8 +234,8 @@ module Cosmos
234
234
  # Since we discarded 4 leading bytes, they are put back in the final stream data
235
235
  # with the sync word and then then length is set to 1 followed by the
236
236
  # last two bytes in the buffer. The \x01\x02 get written over by the length.
237
- MyStream.written_data.should eql("\xBA\x5E\xBA\x11\x00\x01\x03\x04")
238
- packet.buffer.should eql("\x00\x01\x03\x04")
237
+ expect(MyStream.written_data).to eql("\xBA\x5E\xBA\x11\x00\x01\x03\x04")
238
+ expect(packet.buffer).to eql("\x00\x01\x03\x04")
239
239
 
240
240
  lsp = LengthStreamProtocol.new(32, # bit offset
241
241
  16, # bit size
@@ -254,8 +254,8 @@ module Cosmos
254
254
  lsp.write(packet)
255
255
  # Since we discarded 6 leading bytes, they are put back in the final stream data
256
256
  # with the sync word and then then length is set to 2 followed by the buffer data.
257
- MyStream.written_data.should eql("\xBA\x5E\xBA\x11\x00\x02\x01\x02\x03\x04")
258
- packet.buffer.should eql("\x01\x02\x03\x04")
257
+ expect(MyStream.written_data).to eql("\xBA\x5E\xBA\x11\x00\x02\x01\x02\x03\x04")
258
+ expect(packet.buffer).to eql("\x01\x02\x03\x04")
259
259
 
260
260
  lsp = LengthStreamProtocol.new(64, # bit offset
261
261
  32, # bit size
@@ -272,8 +272,8 @@ module Cosmos
272
272
  packet.buffer = "\x00\x00\x00\x00\x01\x02\x03\x04"
273
273
  lsp.write(packet)
274
274
  # Since we discarded 8 leading bytes, they are put back in the final stream data
275
- MyStream.written_data.should eql("\xBA\x5E\xBA\x11\xCA\xFE\xBA\xBE\x00\x00\x00\x04\x01\x02\x03\x04")
276
- packet.buffer.should eql("\x00\x00\x00\x04\x01\x02\x03\x04")
275
+ expect(MyStream.written_data).to eql("\xBA\x5E\xBA\x11\xCA\xFE\xBA\xBE\x00\x00\x00\x04\x01\x02\x03\x04")
276
+ expect(packet.buffer).to eql("\x00\x00\x00\x04\x01\x02\x03\x04")
277
277
 
278
278
  lsp = LengthStreamProtocol.new(64, # bit offset
279
279
  32, # bit size
@@ -290,8 +290,8 @@ module Cosmos
290
290
  packet.buffer = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04"
291
291
  lsp.write(packet)
292
292
  # Since we discarded 0 leading bytes, they are simply written over by the write call
293
- MyStream.written_data.should eql("\xBA\x5E\xBA\x11\xCA\xFE\xBA\xBE\x00\x00\x00\x04\x01\x02\x03\x04")
294
- packet.buffer.should eql("\xBA\x5E\xBA\x11\xCA\xFE\xBA\xBE\x00\x00\x00\x04\x01\x02\x03\x04")
293
+ expect(MyStream.written_data).to eql("\xBA\x5E\xBA\x11\xCA\xFE\xBA\xBE\x00\x00\x00\x04\x01\x02\x03\x04")
294
+ expect(packet.buffer).to eql("\xBA\x5E\xBA\x11\xCA\xFE\xBA\xBE\x00\x00\x00\x04\x01\x02\x03\x04")
295
295
  end
296
296
  end
297
297
 
@@ -26,7 +26,7 @@ module Cosmos
26
26
  clean_config()
27
27
  end
28
28
 
29
- it "should handle receiving a bad packet length" do
29
+ it "handles receiving a bad packet length" do
30
30
  @psp = PreidentifiedStreamProtocol.new(nil, 5)
31
31
  pkt = System.telemetry.packet("COSMOS","VERSION")
32
32
  class MyStream < Stream
@@ -44,19 +44,19 @@ module Cosmos
44
44
  end
45
45
 
46
46
  describe "initialize" do
47
- it "should initialize attributes" do
48
- @psp.bytes_read.should eql 0
49
- @psp.bytes_written.should eql 0
50
- @psp.interface.should be_nil
51
- @psp.stream.should be_nil
52
- @psp.post_read_data_callback.should be_nil
53
- @psp.post_read_packet_callback.should be_nil
54
- @psp.pre_write_packet_callback.should be_nil
47
+ it "initializes attributes" do
48
+ expect(@psp.bytes_read).to eql 0
49
+ expect(@psp.bytes_written).to eql 0
50
+ expect(@psp.interface).to be_nil
51
+ expect(@psp.stream).to be_nil
52
+ expect(@psp.post_read_data_callback).to be_nil
53
+ expect(@psp.post_read_packet_callback).to be_nil
54
+ expect(@psp.pre_write_packet_callback).to be_nil
55
55
  end
56
56
  end
57
57
 
58
58
  describe "write" do
59
- it "should create a packet header" do
59
+ it "creates a packet header" do
60
60
  pkt = System.telemetry.packet("COSMOS","VERSION")
61
61
  class MyStream < Stream
62
62
  def connect; end
@@ -69,25 +69,25 @@ module Cosmos
69
69
  time = Time.new(2020,1,31,12,15,30.5)
70
70
  pkt.received_time = time
71
71
  @psp.write(pkt)
72
- $buffer[0..3].unpack('N')[0].should eql time.to_f.to_i
73
- $buffer[4..7].unpack('N')[0].should eql 500000
72
+ expect($buffer[0..3].unpack('N')[0]).to eql time.to_f.to_i
73
+ expect($buffer[4..7].unpack('N')[0]).to eql 500000
74
74
  offset = 8
75
75
  tgt_name_length = $buffer[offset].unpack('C')[0]
76
76
  offset += 1 # for the length field
77
- $buffer[offset...(offset+tgt_name_length)].should eql 'COSMOS'
77
+ expect($buffer[offset...(offset+tgt_name_length)]).to eql 'COSMOS'
78
78
  offset += tgt_name_length
79
79
  pkt_name_length = $buffer[offset].unpack('C')[0]
80
80
  offset += 1 # for the length field
81
- $buffer[offset...(offset+pkt_name_length)].should eql 'VERSION'
81
+ expect($buffer[offset...(offset+pkt_name_length)]).to eql 'VERSION'
82
82
  offset += pkt_name_length
83
- $buffer[offset..(offset+3)].unpack('N')[0].should eql pkt.buffer.length
83
+ expect($buffer[offset..(offset+3)].unpack('N')[0]).to eql pkt.buffer.length
84
84
  offset += 4
85
- $buffer[offset..-1].should eql pkt.buffer
85
+ expect($buffer[offset..-1]).to eql pkt.buffer
86
86
  end
87
87
  end
88
88
 
89
89
  describe "read" do
90
- it "should return a packet" do
90
+ it "returns a packet" do
91
91
  pkt = System.telemetry.packet("COSMOS","VERSION")
92
92
  pkt.write("PKT_ID", 1)
93
93
  pkt.write("COSMOS", "TEST")
@@ -103,16 +103,16 @@ module Cosmos
103
103
  pkt.received_time = time
104
104
  @psp.write(pkt)
105
105
  packet = @psp.read
106
- packet.target_name.should eql 'COSMOS'
107
- packet.packet_name.should eql 'VERSION'
108
- packet.identified?.should be_truthy
109
- packet.defined?.should be_falsey
106
+ expect(packet.target_name).to eql 'COSMOS'
107
+ expect(packet.packet_name).to eql 'VERSION'
108
+ expect(packet.identified?).to be_truthy
109
+ expect(packet.defined?).to be_falsey
110
110
 
111
111
  pkt2 = System.telemetry.update!("COSMOS","VERSION",packet.buffer)
112
- pkt2.read('PKT_ID').should eql 1
113
- pkt2.read('COSMOS').should eql 'TEST'
114
- pkt2.identified?.should be_truthy
115
- pkt2.defined?.should be_truthy
112
+ expect(pkt2.read('PKT_ID')).to eql 1
113
+ expect(pkt2.read('COSMOS')).to eql 'TEST'
114
+ expect(pkt2.identified?).to be_truthy
115
+ expect(pkt2.defined?).to be_truthy
116
116
  end
117
117
  end
118
118
 
@@ -15,46 +15,46 @@ module Cosmos
15
15
 
16
16
  describe SerialStream do
17
17
  describe "initialize" do
18
- it "should complain if neither a read or write port given" do
18
+ it "complains if neither a read or write port given" do
19
19
  expect { SerialStream.new(nil,nil,9600,:EVEN,1,nil,nil) }.to raise_error("Either a write port or read port must be given")
20
20
  end
21
21
  end
22
22
 
23
23
  describe "connected?" do
24
- it "should be connected when initialized" do
24
+ it "is connected when initialized" do
25
25
  driver = double("driver")
26
26
  expect(SerialDriver).to receive(:new).and_return(driver)
27
27
  ss = SerialStream.new('COM1',nil,9600,:EVEN,1,nil,nil)
28
- ss.connected?.should be_truthy
28
+ expect(ss.connected?).to be_truthy
29
29
  end
30
30
  end
31
31
 
32
32
  describe "read" do
33
- it "should raise an error if no read port given" do
33
+ it "raises an error if no read port given" do
34
34
  driver = double("driver")
35
35
  expect(SerialDriver).to receive(:new).and_return(driver)
36
36
  ss = SerialStream.new('COM1',nil,9600,:EVEN,1,nil,nil)
37
37
  expect { ss.read }.to raise_error("Attempt to read from write only stream")
38
38
  end
39
39
 
40
- it "should call read from the driver" do
40
+ it "calls read from the driver" do
41
41
  driver = double("driver")
42
42
  expect(driver).to receive(:read).and_return 'test'
43
43
  expect(SerialDriver).to receive(:new).and_return(driver)
44
44
  ss = SerialStream.new('COM1','COM1',9600,:EVEN,1,nil,nil)
45
- ss.read.should eql 'test'
45
+ expect(ss.read).to eql 'test'
46
46
  end
47
47
  end
48
48
 
49
49
  describe "write" do
50
- it "should raise an error if no write port given" do
50
+ it "raises an error if no write port given" do
51
51
  driver = double("driver")
52
52
  expect(SerialDriver).to receive(:new).and_return(driver)
53
53
  ss = SerialStream.new(nil,'COM1',9600,:EVEN,1,nil,nil)
54
54
  expect { ss.write('') }.to raise_error("Attempt to write to read only stream")
55
55
  end
56
56
 
57
- it "should call write from the driver" do
57
+ it "calls write from the driver" do
58
58
  driver = double("driver")
59
59
  expect(driver).to receive(:write).with('test')
60
60
  expect(SerialDriver).to receive(:new).and_return(driver)
@@ -64,44 +64,44 @@ module Cosmos
64
64
  end
65
65
 
66
66
  describe "disconnect" do
67
- it "should close the write driver" do
67
+ it "closes the write driver" do
68
68
  driver = double("driver")
69
69
  expect(driver).to receive(:closed?).and_return(false)
70
70
  expect(driver).to receive(:close)
71
71
  expect(SerialDriver).to receive(:new).and_return(driver)
72
72
  ss = SerialStream.new('COM1',nil,9600,:EVEN,1,nil,nil)
73
- ss.connected?.should be_truthy
73
+ expect(ss.connected?).to be_truthy
74
74
  ss.disconnect
75
- ss.connected?.should be_falsey
75
+ expect(ss.connected?).to be_falsey
76
76
  end
77
77
 
78
- it "should close the read driver" do
78
+ it "closes the read driver" do
79
79
  driver = double("driver")
80
80
  expect(driver).to receive(:closed?).and_return(false)
81
81
  expect(driver).to receive(:close)
82
82
  expect(SerialDriver).to receive(:new).and_return(driver)
83
83
  ss = SerialStream.new(nil,'COM1',9600,:EVEN,1,nil,nil)
84
- ss.connected?.should be_truthy
84
+ expect(ss.connected?).to be_truthy
85
85
  ss.disconnect
86
- ss.connected?.should be_falsey
86
+ expect(ss.connected?).to be_falsey
87
87
  end
88
88
 
89
- it "shouldn't close the driver twice" do
89
+ it "does not close the driver twice" do
90
90
  driver = double("driver")
91
91
  expect(driver).to receive(:closed?).and_return(false, true)
92
92
  expect(driver).to receive(:close).once
93
93
  expect(SerialDriver).to receive(:new).and_return(driver)
94
94
  ss = SerialStream.new('COM1','COM1',9600,:EVEN,1,nil,nil)
95
- ss.connected?.should be_truthy
95
+ expect(ss.connected?).to be_truthy
96
96
  ss.disconnect
97
- ss.connected?.should be_falsey
97
+ expect(ss.connected?).to be_falsey
98
98
  ss.disconnect
99
- ss.connected?.should be_falsey
99
+ expect(ss.connected?).to be_falsey
100
100
  end
101
101
  end
102
102
 
103
103
  describe "connect" do
104
- it "should support a connect method that does nothing" do
104
+ it "supports a connect method that does nothing" do
105
105
  driver = double("driver")
106
106
  expect(driver).to receive(:closed?).and_return(false)
107
107
  expect(driver).to receive(:close).once