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
@@ -21,81 +21,81 @@ module Cosmos
21
21
  end
22
22
 
23
23
  describe "initialize" do
24
- it "should initialize attributes" do
25
- @sp.bytes_read.should eql 0
26
- @sp.bytes_written.should eql 0
27
- @sp.interface.should be_nil
28
- @sp.stream.should be_nil
29
- @sp.post_read_data_callback.should be_nil
30
- @sp.post_read_packet_callback.should be_nil
31
- @sp.pre_write_packet_callback.should be_nil
24
+ it "initializes attributes" do
25
+ expect(@sp.bytes_read).to eql 0
26
+ expect(@sp.bytes_written).to eql 0
27
+ expect(@sp.interface).to be_nil
28
+ expect(@sp.stream).to be_nil
29
+ expect(@sp.post_read_data_callback).to be_nil
30
+ expect(@sp.post_read_packet_callback).to be_nil
31
+ expect(@sp.pre_write_packet_callback).to be_nil
32
32
  end
33
33
  end
34
34
 
35
35
  describe "interface=" do
36
- it "should set the interface" do
36
+ it "sets the interface" do
37
37
  class MyInterface1 < Interface; end
38
38
  interface = MyInterface1.new
39
39
  @sp.interface = interface
40
- @sp.interface.should eql interface
40
+ expect(@sp.interface).to eql interface
41
41
  end
42
42
 
43
- it "should set the post_read_data callback" do
43
+ it "sets the post_read_data callback" do
44
44
  class MyInterface2 < Interface
45
45
  def post_read_data(buffer); 1; end
46
46
  end
47
47
  interface = MyInterface2.new
48
48
  @sp.interface = interface
49
- @sp.post_read_data_callback.call(nil).should eql 1
49
+ expect(@sp.post_read_data_callback.call(nil)).to eql 1
50
50
  end
51
51
 
52
- it "should set the post_read_packet callback" do
52
+ it "sets the post_read_packet callback" do
53
53
  class MyInterface3 < Interface
54
54
  def post_read_packet(packet); 2; end
55
55
  end
56
56
  interface = MyInterface3.new
57
57
  @sp.interface = interface
58
- @sp.post_read_packet_callback.call(nil).should eql 2
58
+ expect(@sp.post_read_packet_callback.call(nil)).to eql 2
59
59
  end
60
60
 
61
- it "should set the pre_write_packet callback" do
61
+ it "sets the pre_write_packet callback" do
62
62
  class MyInterface4 < Interface
63
63
  def pre_write_packet(packet); 3; end
64
64
  end
65
65
  interface = MyInterface4.new
66
66
  @sp.interface = interface
67
- @sp.pre_write_packet_callback.call(nil).should eql 3
67
+ expect(@sp.pre_write_packet_callback.call(nil)).to eql 3
68
68
  end
69
69
  end
70
70
 
71
71
  describe "connect" do
72
- it "should set the stream" do
72
+ it "sets the stream" do
73
73
  class MyStream1 < Stream; end
74
74
  stream = MyStream1.new
75
75
  allow(stream).to receive(:connect)
76
76
  @sp.connect(stream)
77
- @sp.stream.should eql stream
77
+ expect(@sp.stream).to eql stream
78
78
  end
79
79
  end
80
80
 
81
81
  describe "connected" do
82
- it "should return false if the stream hasn't been set" do
83
- @sp.connected?.should be_falsey
82
+ it "returns false if the stream hasn't been set" do
83
+ expect(@sp.connected?).to be_falsey
84
84
  end
85
85
 
86
- it "should return the status of the stream connection" do
86
+ it "returns the status of the stream connection" do
87
87
  class MyStream2 < Stream
88
88
  def connect; end
89
89
  def connected?; true; end
90
90
  end
91
91
  stream = MyStream2.new
92
92
  @sp.connect(stream)
93
- @sp.connected?.should be_truthy
93
+ expect(@sp.connected?).to be_truthy
94
94
  end
95
95
  end
96
96
 
97
97
  describe "disconnect" do
98
- it "should call disconnect on the stream" do
98
+ it "calls disconnect on the stream" do
99
99
  $test = false
100
100
  class MyStream3 < Stream
101
101
  def connect; end
@@ -103,14 +103,14 @@ module Cosmos
103
103
  end
104
104
  stream = MyStream3.new
105
105
  @sp.connect(stream)
106
- $test.should be_falsey
106
+ expect($test).to be_falsey
107
107
  @sp.disconnect
108
- $test.should be_truthy
108
+ expect($test).to be_truthy
109
109
  end
110
110
  end
111
111
 
112
112
  describe "read" do
113
- it "should read data from the stream" do
113
+ it "reads data from the stream" do
114
114
  class MyStream33 < Stream
115
115
  def connect; end
116
116
  def connected?; true; end
@@ -119,10 +119,10 @@ module Cosmos
119
119
  stream = MyStream33.new
120
120
  @sp.connect(stream)
121
121
  packet = @sp.read
122
- packet.length.should eql 4
122
+ expect(packet.length).to eql 4
123
123
  end
124
124
 
125
- it "should handle timeouts from the stream" do
125
+ it "handles timeouts from the stream" do
126
126
  class MyStream4 < Stream
127
127
  def connect; end
128
128
  def connected?; true; end
@@ -130,10 +130,10 @@ module Cosmos
130
130
  end
131
131
  stream = MyStream4.new
132
132
  @sp.connect(stream)
133
- @sp.read.should be_nil
133
+ expect(@sp.read).to be_nil
134
134
  end
135
135
 
136
- it "should handle a sync pattern" do
136
+ it "handles a sync pattern" do
137
137
  $read_cnt = 0
138
138
  class MyStream5 < Stream
139
139
  def connect; end
@@ -154,10 +154,10 @@ module Cosmos
154
154
  stream = MyStream5.new
155
155
  @sp.connect(stream)
156
156
  packet = @sp.read
157
- packet.length.should eql 4 # sync plus two bytes
157
+ expect(packet.length).to eql 4 # sync plus two bytes
158
158
  end
159
159
 
160
- it "should handle a sync pattern split across reads" do
160
+ it "handles a sync pattern split across reads" do
161
161
  $read_cnt = 0
162
162
  class MyStream6 < Stream
163
163
  def connect; end
@@ -178,10 +178,10 @@ module Cosmos
178
178
  stream = MyStream6.new
179
179
  @sp.connect(stream)
180
180
  packet = @sp.read
181
- packet.length.should eql 3 # sync plus one byte
181
+ expect(packet.length).to eql 3 # sync plus one byte
182
182
  end
183
183
 
184
- it "should handle a false positive sync pattern" do
184
+ it "handles a false positive sync pattern" do
185
185
  $read_cnt = 0
186
186
  class MyStream7 < Stream
187
187
  def connect; end
@@ -202,10 +202,10 @@ module Cosmos
202
202
  stream = MyStream7.new
203
203
  @sp.connect(stream)
204
204
  packet = @sp.read
205
- packet.length.should eql 3 # sync plus one byte
205
+ expect(packet.length).to eql 3 # sync plus one byte
206
206
  end
207
207
 
208
- it "should discard leading bytes from the stream" do
208
+ it "discards leading bytes from the stream" do
209
209
  class MyStream8 < Stream
210
210
  def connect; end
211
211
  def connected?; true; end
@@ -217,11 +217,11 @@ module Cosmos
217
217
  stream = MyStream8.new
218
218
  @sp.connect(stream)
219
219
  packet = @sp.read
220
- packet.length.should eql 2
221
- packet.buffer.formatted.should match(/03 04/)
220
+ expect(packet.length).to eql 2
221
+ expect(packet.buffer.formatted).to match(/03 04/)
222
222
  end
223
223
 
224
- it "should call the post_read_data method on the inteface" do
224
+ it "calls the post_read_data method on the inteface" do
225
225
  class MyStream9 < Stream
226
226
  def connect; end
227
227
  def connected?; true; end
@@ -237,8 +237,8 @@ module Cosmos
237
237
  stream = MyStream9.new
238
238
  @sp.connect(stream)
239
239
  packet = @sp.read
240
- packet.length.should eql 4
241
- packet.buffer.formatted.should match(/00 01 02 03/)
240
+ expect(packet.length).to eql 4
241
+ expect(packet.buffer.formatted).to match(/00 01 02 03/)
242
242
 
243
243
  # Simulate the interface returning an empty string which means to skip
244
244
  # this packet and go back to reading data.
@@ -257,7 +257,7 @@ module Cosmos
257
257
  interface = MyInterface5.new
258
258
  @sp.interface = interface
259
259
  packet = @sp.read
260
- packet.length.should eql 2
260
+ expect(packet.length).to eql 2
261
261
 
262
262
  # Simulate the interface returning nil which means the connection is
263
263
  # lost.
@@ -268,10 +268,10 @@ module Cosmos
268
268
  interface = MyInterface5.new
269
269
  @sp.interface = interface
270
270
  packet = @sp.read
271
- packet.should be_nil
271
+ expect(packet).to be_nil
272
272
  end
273
273
 
274
- it "should call the post_read_packet method on the inteface" do
274
+ it "calls the post_read_packet method on the inteface" do
275
275
  class MyStream10 < Stream
276
276
  def connect; end
277
277
  def connected?; true; end
@@ -290,13 +290,13 @@ module Cosmos
290
290
  stream = MyStream10.new
291
291
  @sp.connect(stream)
292
292
  packet = @sp.read
293
- packet.length.should eql 4
294
- packet.buffer.formatted.should match(/00 01 02 03/)
293
+ expect(packet.length).to eql 4
294
+ expect(packet.buffer.formatted).to match(/00 01 02 03/)
295
295
  end
296
296
  end
297
297
 
298
298
  describe "write" do
299
- it "should call pre_write_packet on the interface" do
299
+ it "calls pre_write_packet on the interface" do
300
300
  $buffer = ''
301
301
  class MyStream11 < Stream
302
302
  def connect; end
@@ -310,10 +310,10 @@ module Cosmos
310
310
  @sp.interface = MyInterface7.new
311
311
  @sp.connect(MyStream11.new)
312
312
  @sp.write(packet)
313
- $buffer.should eql "\x01\02\03\04"
313
+ expect($buffer).to eql "\x01\02\03\04"
314
314
  end
315
315
 
316
- it "should write the packet buffer to the stream" do
316
+ it "writes the packet buffer to the stream" do
317
317
  $buffer = ''
318
318
  class MyStream11 < Stream
319
319
  def connect; end
@@ -323,12 +323,12 @@ module Cosmos
323
323
  packet = Packet.new(nil, nil, :BIG_ENDIAN, nil, "\x01\x02\x03\x04")
324
324
  @sp.connect(MyStream11.new)
325
325
  @sp.write(packet)
326
- $buffer.should eql "\x01\02\03\04"
326
+ expect($buffer).to eql "\x01\02\03\04"
327
327
  end
328
328
  end
329
329
 
330
330
  describe "write_raw" do
331
- it "should write the raw buffer to the stream" do
331
+ it "writes the raw buffer to the stream" do
332
332
  $buffer = ''
333
333
  class MyStream11 < Stream
334
334
  def connect; end
@@ -337,7 +337,7 @@ module Cosmos
337
337
  end
338
338
  @sp.connect(MyStream11.new)
339
339
  @sp.write_raw("\x01\x02\x03\x04")
340
- $buffer.should eql "\x01\02\03\04"
340
+ expect($buffer).to eql "\x01\02\03\04"
341
341
  end
342
342
  end
343
343
 
@@ -16,7 +16,7 @@ module Cosmos
16
16
  describe Stream do
17
17
 
18
18
  describe "read, write, connected?, disconnect" do
19
- it "should raise an error" do
19
+ it "raises an error" do
20
20
  expect { Stream.new.read }.to raise_error(/not defined/)
21
21
  expect { Stream.new.write(nil) }.to raise_error(/not defined/)
22
22
  expect { Stream.new.connect }.to raise_error(/not defined/)
@@ -27,28 +27,28 @@ module Cosmos
27
27
  end
28
28
 
29
29
  describe "initialize" do
30
- it "should complain if the host is bad" do
30
+ it "complains if the host is bad" do
31
31
  expect { TcpipClientStream.new('asdf',8888,8888,nil,nil) }.to raise_error(/Invalid hostname/)
32
32
  end
33
33
 
34
- it "should use the same socket if read_port == write_port" do
34
+ it "uses the same socket if read_port == write_port" do
35
35
  ss = TcpipClientStream.new('localhost',8888,8888,nil,nil)
36
36
  ss.connect
37
- ss.connected?.should be_truthy
37
+ expect(ss.connected?).to be_truthy
38
38
  ss.disconnect
39
39
  end
40
40
 
41
- it "should create the write socket" do
41
+ it "creates the write socket" do
42
42
  ss = TcpipClientStream.new('localhost',8888,nil,nil,nil)
43
43
  ss.connect
44
- ss.connected?.should be_truthy
44
+ expect(ss.connected?).to be_truthy
45
45
  ss.disconnect
46
46
  end
47
47
 
48
- it "should create the read socket" do
48
+ it "creates the read socket" do
49
49
  ss = TcpipClientStream.new('localhost',nil,8888,nil,nil)
50
50
  ss.connect
51
- ss.connected?.should be_truthy
51
+ expect(ss.connected?).to be_truthy
52
52
  ss.disconnect
53
53
  end
54
54
  end
@@ -10,76 +10,111 @@
10
10
 
11
11
  require 'spec_helper'
12
12
  require 'cosmos/streams/tcpip_socket_stream'
13
+ require 'socket'
13
14
 
14
15
  module Cosmos
15
16
 
16
17
  describe TcpipSocketStream do
17
18
  describe "initialize, connected?" do
18
- it "should be not be connected when initialized" do
19
+ it "is not be connected when initialized" do
19
20
  ss = TcpipSocketStream.new(nil,nil,nil,nil)
20
- ss.connected?.should be_falsy
21
+ expect(ss.connected?).to be false
21
22
  end
22
23
  end
23
24
 
24
25
  describe "read" do
25
- it "should raise an error if no read socket given" do
26
+ it "raises an error if no read socket given" do
26
27
  ss = TcpipSocketStream.new('write',nil,nil,nil)
27
28
  ss.connect
28
29
  expect { ss.read }.to raise_error("Attempt to read from write only stream")
29
30
  end
30
31
 
31
- it "should call recv_nonblock from the socket" do
32
- read = double("read_socket")
33
- expect(read).to receive(:recv_nonblock).and_return 'test'
34
- ss = TcpipSocketStream.new(nil,read,nil,nil)
35
- ss.connect
36
- ss.read.should eql 'test'
32
+ it "calls read_nonblock from the socket" do
33
+ server = TCPServer.new(2000) # Server bound to port 2000
34
+ thread = Thread.new do
35
+ loop do
36
+ client = server.accept # Wait for a client to connect
37
+ sleep 0.1
38
+ client.write "test"
39
+ client.close
40
+ end
41
+ end
42
+ socket = TCPSocket.new('localhost', 2000)
43
+ ss = TcpipSocketStream.new(nil,socket,nil,nil)
44
+ expect(ss.read_nonblock).to eql ''
45
+ sleep 0.2
46
+ expect(ss.read_nonblock).to eql 'test'
47
+ Cosmos.close_socket(socket)
48
+ Cosmos.close_socket(server)
49
+ thread.kill
50
+ sleep 0.1
37
51
  end
38
52
 
39
- it "should handle socket blocking exceptions" do
40
- read = double("read_socket")
41
- allow(read).to receive(:recv_nonblock) do
42
- case $index
43
- when 1
44
- $index += 1
45
- raise Errno::EWOULDBLOCK
46
- when 2
47
- 'test'
53
+ it "handles socket blocking exceptions" do
54
+ server = TCPServer.new(2000) # Server bound to port 2000
55
+ thread = Thread.new do
56
+ loop do
57
+ client = server.accept # Wait for a client to connect
58
+ sleep 0.2
59
+ client.write "test"
60
+ client.close
48
61
  end
49
62
  end
50
- expect(IO).to receive(:select).at_least(:once).and_return([])
51
- $index = 1
52
- ss = TcpipSocketStream.new(nil,read,nil,nil)
53
- ss.connect
54
- ss.read.should eql 'test'
63
+ socket = TCPSocket.new('localhost', 2000)
64
+ ss = TcpipSocketStream.new(nil,socket,nil,nil)
65
+ expect(ss.read).to eql 'test'
66
+ Cosmos.close_socket(socket)
67
+ Cosmos.close_socket(server)
68
+ thread.kill
69
+ sleep 0.1
55
70
  end
56
71
 
57
- it "should handle socket timeouts" do
58
- read = double("read_socket")
59
- allow(read).to receive(:recv_nonblock).and_raise(Errno::EWOULDBLOCK)
60
- expect(IO).to receive(:select).at_least(:once).and_return(nil)
61
- ss = TcpipSocketStream.new(nil,read,nil,nil)
62
- ss.connect
72
+ it "handles socket timeouts" do
73
+ server = TCPServer.new(2000) # Server bound to port 2000
74
+ thread = Thread.new do
75
+ loop do
76
+ client = server.accept # Wait for a client to connect
77
+ sleep 0.2
78
+ client.close
79
+ end
80
+ end
81
+ socket = TCPSocket.new('localhost', 2000)
82
+ ss = TcpipSocketStream.new(nil,socket,nil,0.1)
63
83
  expect { ss.read }.to raise_error(Timeout::Error)
84
+ sleep 0.2
85
+ Cosmos.close_socket(socket)
86
+ Cosmos.close_socket(server)
87
+ thread.kill
88
+ sleep 0.1
64
89
  end
65
90
 
66
- it "should handle socket connection reset exceptions" do
67
- read = double("read_socket")
68
- allow(read).to receive(:recv_nonblock).and_raise(Errno::ECONNRESET)
69
- ss = TcpipSocketStream.new(nil,read,nil,nil)
70
- ss.connect
71
- ss.read.should eql ''
91
+ it "handles socket connection reset exceptions" do
92
+ server = TCPServer.new(2000) # Server bound to port 2000
93
+ thread = Thread.new do
94
+ loop do
95
+ client = server.accept # Wait for a client to connect
96
+ client.close
97
+ end
98
+ end
99
+ socket = TCPSocket.new('localhost', 2000)
100
+ ss = TcpipSocketStream.new(nil,socket,nil,5)
101
+ # Close the socket before trying to read from it
102
+ Cosmos.close_socket(socket)
103
+ expect(ss.read).to eql ''
104
+ Cosmos.close_socket(server)
105
+ thread.kill
106
+ sleep 0.1
72
107
  end
73
108
  end
74
109
 
75
110
  describe "write" do
76
- it "should raise an error if no write port given" do
111
+ it "raises an error if no write port given" do
77
112
  ss = TcpipSocketStream.new(nil,'read',nil,nil)
78
113
  ss.connect
79
114
  expect { ss.write('test') }.to raise_error("Attempt to write to read only stream")
80
115
  end
81
116
 
82
- it "should call write from the driver" do
117
+ it "calls write from the driver" do
83
118
  write = double("write_socket")
84
119
  # Simulate only writing two bytes at a time
85
120
  expect(write).to receive(:write_nonblock).twice.and_return(2)
@@ -88,7 +123,7 @@ module Cosmos
88
123
  ss.write('test')
89
124
  end
90
125
 
91
- it "should handle socket blocking exceptions" do
126
+ it "handles socket blocking exceptions" do
92
127
  write = double("write_socket")
93
128
  allow(write).to receive(:write_nonblock) do
94
129
  case $index
@@ -106,7 +141,7 @@ module Cosmos
106
141
  ss.write('test')
107
142
  end
108
143
 
109
- it "should handle socket timeouts" do
144
+ it "handles socket timeouts" do
110
145
  write = double("write_socket")
111
146
  allow(write).to receive(:write_nonblock).and_raise(Errno::EWOULDBLOCK)
112
147
  expect(IO).to receive(:select).at_least(:once).and_return(nil)
@@ -117,39 +152,39 @@ module Cosmos
117
152
  end
118
153
 
119
154
  describe "disconnect" do
120
- it "should close the write socket" do
155
+ it "closes the write socket" do
121
156
  write = double("write_socket")
122
157
  expect(write).to receive(:closed?).and_return(false)
123
158
  expect(write).to receive(:close)
124
159
  ss = TcpipSocketStream.new(write,nil,nil,nil)
125
160
  ss.connect
126
- ss.connected?.should be_truthy
161
+ expect(ss.connected?).to be_truthy
127
162
  ss.disconnect
128
- ss.connected?.should be_falsey
163
+ expect(ss.connected?).to be_falsey
129
164
  end
130
165
 
131
- it "should close the read socket" do
166
+ it "closes the read socket" do
132
167
  read = double("read_socket")
133
168
  expect(read).to receive(:closed?).and_return(false)
134
169
  expect(read).to receive(:close)
135
170
  ss = TcpipSocketStream.new(nil,read,nil,nil)
136
171
  ss.connect
137
- ss.connected?.should be_truthy
172
+ expect(ss.connected?).to be_truthy
138
173
  ss.disconnect
139
- ss.connected?.should be_falsey
174
+ expect(ss.connected?).to be_falsey
140
175
  end
141
176
 
142
- it "shouldn't close the socket twice" do
177
+ it "does not close the socket twice" do
143
178
  socket = double("socket")
144
179
  expect(socket).to receive(:closed?).and_return(false, true, true, true)
145
180
  expect(socket).to receive(:close).once
146
181
  ss = TcpipSocketStream.new(socket,socket,nil,nil)
147
182
  ss.connect
148
- ss.connected?.should be_truthy
183
+ expect(ss.connected?).to be_truthy
149
184
  ss.disconnect
150
- ss.connected?.should be_falsey
185
+ expect(ss.connected?).to be_falsey
151
186
  ss.disconnect
152
- ss.connected?.should be_falsey
187
+ expect(ss.connected?).to be_falsey
153
188
  end
154
189
  end
155
190