cosmos 4.1.1-java → 4.2.0-java
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/.gitignore +0 -2
- data/.travis.yml +2 -0
- data/.yardopts +1 -0
- data/Gemfile +1 -0
- data/Manifest.txt +130 -0
- data/autohotkey/tools/ConfigEditorAHK +19 -0
- data/autohotkey/tools/cmd_extractor.ahk +4 -4
- data/autohotkey/tools/cmd_sequence.ahk +9 -5
- data/autohotkey/tools/config_editor.ahk +197 -0
- data/autohotkey/tools/packet_viewer.ahk +12 -6
- data/autohotkey/tools/replay.ahk +29 -29
- data/autohotkey/tools/script_runner.ahk +10 -2
- data/autohotkey/tools/tlm_extractor.ahk +7 -8
- data/autohotkey/tools/tlm_grapher.ahk +21 -9
- data/bin/dart_import +2 -0
- data/cosmos.gemspec +18 -16
- data/data/config/cmd_tlm_server.yaml +9 -0
- data/data/config/interface_modifiers.yaml +17 -0
- data/data/config/item_modifiers.yaml +3 -3
- data/data/crc.txt +184 -90
- data/data/dart.png +0 -0
- data/demo/Gemfile +1 -0
- data/demo/Rakefile +4 -0
- data/demo/config/dart/Gemfile +54 -0
- data/demo/config/data/crc.txt +28 -21
- data/demo/config/system/system.txt +3 -0
- data/demo/config/system/system2.txt +3 -0
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +3 -3
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +1 -1
- data/demo/config/targets/INST/lib/sim_inst.rb +1 -1
- data/demo/config/targets/INST/screens/adcs.txt +2 -1
- data/demo/config/targets/INST/screens/array.txt +1 -1
- data/demo/config/targets/INST/screens/block.txt +1 -1
- data/demo/config/targets/INST/screens/commanding.txt +7 -2
- data/demo/config/targets/INST/screens/graphs.txt +1 -1
- data/demo/config/targets/INST/screens/ground.txt +1 -1
- data/demo/config/targets/INST/screens/hs.txt +2 -1
- data/demo/config/targets/INST/screens/latest.txt +1 -1
- data/demo/config/targets/INST/screens/limits.txt +1 -1
- data/demo/config/targets/INST/screens/other.txt +1 -1
- data/demo/config/targets/INST/screens/tabs.txt +1 -1
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +3 -1
- data/demo/config/tools/launcher/launcher.txt +3 -2
- data/demo/tools/Dart +16 -0
- data/demo/tools/Dart.bat +9 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +0 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +0 -0
- data/install/Gemfile +1 -0
- data/install/Rakefile +4 -0
- data/install/config/dart/Gemfile +54 -0
- data/install/config/data/crc.txt +6 -3
- data/install/config/system/system.txt +3 -0
- data/install/config/tools/launcher/launcher.txt +3 -2
- data/install/tools/Dart +16 -0
- data/install/tools/Dart.bat +9 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +0 -0
- data/install/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +0 -0
- data/lib/cosmos/core_ext/time.rb +8 -8
- data/lib/cosmos/dart/.rspec +1 -0
- data/lib/cosmos/dart/Gemfile +69 -0
- data/lib/cosmos/dart/Rakefile +7 -0
- data/lib/cosmos/dart/app/assets/config/manifest.js +4 -0
- data/lib/cosmos/dart/app/assets/images/.keep +0 -0
- data/lib/cosmos/dart/app/assets/javascripts/application.js +13 -0
- data/lib/cosmos/dart/app/assets/javascripts/cable.js +13 -0
- data/lib/cosmos/dart/app/assets/stylesheets/application.css.scss +15 -0
- data/lib/cosmos/dart/app/channels/application_cable/channel.rb +4 -0
- data/lib/cosmos/dart/app/channels/application_cable/connection.rb +4 -0
- data/lib/cosmos/dart/app/controllers/application_controller.rb +3 -0
- data/lib/cosmos/dart/app/helpers/application_helper.rb +2 -0
- data/lib/cosmos/dart/app/jobs/application_job.rb +2 -0
- data/lib/cosmos/dart/app/mailers/application_mailer.rb +4 -0
- data/lib/cosmos/dart/app/models/application_record.rb +3 -0
- data/lib/cosmos/dart/app/models/item.rb +6 -0
- data/lib/cosmos/dart/app/models/item_to_decom_table_mapping.rb +9 -0
- data/lib/cosmos/dart/app/models/packet.rb +4 -0
- data/lib/cosmos/dart/app/models/packet_config.rb +7 -0
- data/lib/cosmos/dart/app/models/packet_log.rb +3 -0
- data/lib/cosmos/dart/app/models/packet_log_entry.rb +41 -0
- data/lib/cosmos/dart/app/models/system_config.rb +2 -0
- data/lib/cosmos/dart/app/models/target.rb +4 -0
- data/lib/cosmos/dart/app/views/layouts/application.html.erb +14 -0
- data/lib/cosmos/dart/app/views/layouts/mailer.html.erb +13 -0
- data/lib/cosmos/dart/app/views/layouts/mailer.text.erb +1 -0
- data/lib/cosmos/dart/bin/bundle +3 -0
- data/lib/cosmos/dart/bin/rails +4 -0
- data/lib/cosmos/dart/bin/rake +4 -0
- data/lib/cosmos/dart/bin/setup +34 -0
- data/lib/cosmos/dart/bin/update +29 -0
- data/lib/cosmos/dart/config.ru +5 -0
- data/lib/cosmos/dart/config/application.rb +29 -0
- data/lib/cosmos/dart/config/boot.rb +3 -0
- data/lib/cosmos/dart/config/cable.yml +9 -0
- data/lib/cosmos/dart/config/database.yml +23 -0
- data/lib/cosmos/dart/config/environment.rb +5 -0
- data/lib/cosmos/dart/config/environments/development.rb +62 -0
- data/lib/cosmos/dart/config/environments/production.rb +84 -0
- data/lib/cosmos/dart/config/environments/test.rb +42 -0
- data/lib/cosmos/dart/config/initializers/application_controller_renderer.rb +6 -0
- data/lib/cosmos/dart/config/initializers/assets.rb +12 -0
- data/lib/cosmos/dart/config/initializers/backtrace_silencers.rb +7 -0
- data/lib/cosmos/dart/config/initializers/cookies_serializer.rb +5 -0
- data/lib/cosmos/dart/config/initializers/filter_parameter_logging.rb +4 -0
- data/lib/cosmos/dart/config/initializers/inflections.rb +16 -0
- data/lib/cosmos/dart/config/initializers/mime_types.rb +4 -0
- data/lib/cosmos/dart/config/initializers/new_framework_defaults.rb +25 -0
- data/lib/cosmos/dart/config/initializers/session_store.rb +3 -0
- data/lib/cosmos/dart/config/initializers/wrap_parameters.rb +14 -0
- data/lib/cosmos/dart/config/locales/en.yml +23 -0
- data/lib/cosmos/dart/config/puma.rb +47 -0
- data/lib/cosmos/dart/config/routes.rb +3 -0
- data/lib/cosmos/dart/config/secrets.yml +22 -0
- data/lib/cosmos/dart/db/migrate/20170406172907_create_targets.rb +8 -0
- data/lib/cosmos/dart/db/migrate/20170406172927_create_packets.rb +10 -0
- data/lib/cosmos/dart/db/migrate/20170406172937_create_packet_logs.rb +9 -0
- data/lib/cosmos/dart/db/migrate/20170406172943_create_packet_log_entries.rb +16 -0
- data/lib/cosmos/dart/db/migrate/20170406183500_change_packet_log_entries_primary_key.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20170407153618_add_unique_requirements.rb +7 -0
- data/lib/cosmos/dart/db/migrate/20170511155447_add_meta_id_to_packet_log_entries.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170523185056_rename_received_time_and_add_is_tlm_to_packet_log_entries.rb +7 -0
- data/lib/cosmos/dart/db/migrate/20170525201157_create_items.rb +10 -0
- data/lib/cosmos/dart/db/migrate/20170525201315_create_system_configs.rb +9 -0
- data/lib/cosmos/dart/db/migrate/20170525201624_create_packet_configs.rb +11 -0
- data/lib/cosmos/dart/db/migrate/20170525201745_create_item_to_decom_table_mappings.rb +12 -0
- data/lib/cosmos/dart/db/migrate/20170525201939_create_decom_tables.rb +12 -0
- data/lib/cosmos/dart/db/migrate/20170525202051_add_decom_state_to_packet_log_entry.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20170913160409_update_items.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170913160558_update_item_to_decom_table_mapping.rb +11 -0
- data/lib/cosmos/dart/db/migrate/20170913160916_udpate_decom_table.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170913212026_add_ready_to_packet_configs.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20170913223556_modify_tables.rb +9 -0
- data/lib/cosmos/dart/db/migrate/20170914215744_modify_mapping_table.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170919201433_add_system_config_id_to_packet_config.rb +11 -0
- data/lib/cosmos/dart/db/migrate/20170919210307_add_max_table_index_to_packet_configs.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20171215225546_add_ready_to_packet_log_entries.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20180116214338_add_index_for_ple_ready_to_packet_log_entries.rb +5 -0
- data/lib/cosmos/dart/db/schema.rb +103 -0
- data/lib/cosmos/dart/db/seeds.rb +7 -0
- data/lib/cosmos/dart/examples/dart_decom_client.rb +45 -0
- data/lib/cosmos/dart/examples/dart_stream_client.rb +93 -0
- data/lib/cosmos/dart/lib/dart_common.rb +749 -0
- data/lib/cosmos/dart/lib/dart_database_cleaner.rb +172 -0
- data/lib/cosmos/dart/lib/dart_decom_query.rb +184 -0
- data/lib/cosmos/dart/lib/dart_decommutator.rb +235 -0
- data/lib/cosmos/dart/lib/dart_importer.rb +154 -0
- data/lib/cosmos/dart/lib/dart_logging.rb +50 -0
- data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +139 -0
- data/lib/cosmos/dart/lib/dart_reducer_manager.rb +85 -0
- data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +263 -0
- data/lib/cosmos/dart/lib/dart_tcpip_server_interface.rb +142 -0
- data/lib/cosmos/dart/processes/dart.rb +145 -0
- data/lib/cosmos/dart/processes/dart_decom_server.rb +39 -0
- data/lib/cosmos/dart/processes/dart_import.rb +63 -0
- data/lib/cosmos/dart/processes/dart_ingester.rb +92 -0
- data/lib/cosmos/dart/processes/dart_reducer.rb +27 -0
- data/lib/cosmos/dart/processes/dart_stream_server.rb +31 -0
- data/lib/cosmos/dart/processes/dart_worker.rb +37 -0
- data/lib/cosmos/dart/spec/dart/dart_common_spec.rb +333 -0
- data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +455 -0
- data/lib/cosmos/dart/spec/dart/dart_decom_query_spec.rb +153 -0
- data/lib/cosmos/dart/spec/dart/dart_decommutator_spec.rb +336 -0
- data/lib/cosmos/dart/spec/dart/dart_importer_spec.rb +83 -0
- data/lib/cosmos/dart/spec/dart/dart_logging_spec.rb +30 -0
- data/lib/cosmos/dart/spec/dart/dart_packet_log_writer_spec.rb +149 -0
- data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +289 -0
- data/lib/cosmos/dart/spec/dart/dart_tcpip_server_interface_spec.rb +241 -0
- data/lib/cosmos/dart/spec/rails_helper.rb +60 -0
- data/lib/cosmos/dart/spec/spec_helper.rb +139 -0
- data/lib/cosmos/gui/dialogs/about_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/dart_dialog.rb +60 -0
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +1 -0
- data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +0 -3
- data/lib/cosmos/gui/qt.rb +10 -1
- data/lib/cosmos/gui/text/completion.rb +10 -9
- data/lib/cosmos/gui/text/completion_text_edit.rb +16 -14
- data/lib/cosmos/gui/text/ruby_editor.rb +2 -2
- data/lib/cosmos/gui/widgets/dart_frame.rb +142 -0
- data/lib/cosmos/gui/widgets/dart_meta_frame.rb +119 -0
- data/lib/cosmos/gui/widgets/packet_log_frame.rb +42 -12
- data/lib/cosmos/interfaces/interface.rb +1 -2
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +26 -8
- data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +8 -2
- data/lib/cosmos/interfaces/protocols/protocol.rb +2 -1
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +1 -1
- data/lib/cosmos/interfaces/stream_interface.rb +1 -0
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +2 -3
- data/lib/cosmos/io/json_drb_object.rb +1 -1
- data/lib/cosmos/io/json_rpc.rb +2 -1
- data/lib/cosmos/io/win32_serial_driver.rb +2 -9
- data/lib/cosmos/packet_logs/packet_log_writer.rb +1 -1
- data/lib/cosmos/packets/packet.rb +22 -12
- data/lib/cosmos/packets/packet_config.rb +2 -1
- data/lib/cosmos/packets/packet_item.rb +26 -24
- data/lib/cosmos/packets/parsers/macro_parser.rb +5 -2
- data/lib/cosmos/packets/parsers/packet_item_parser.rb +35 -17
- data/lib/cosmos/packets/parsers/packet_parser.rb +3 -10
- data/lib/cosmos/packets/parsers/xtce_converter.rb +21 -35
- data/lib/cosmos/packets/parsers/xtce_parser.rb +54 -46
- data/lib/cosmos/packets/structure.rb +10 -2
- data/lib/cosmos/packets/structure_item.rb +22 -8
- data/lib/cosmos/processors/statistics_processor.rb +2 -0
- data/lib/cosmos/script/api_shared.rb +13 -12
- data/lib/cosmos/script/cmd_tlm_server.rb +4 -0
- data/lib/cosmos/script/commands.rb +3 -15
- data/lib/cosmos/script/script.rb +69 -23
- data/lib/cosmos/streams/tcpip_client_stream.rb +2 -2
- data/lib/cosmos/system/system.rb +42 -25
- data/lib/cosmos/system/target.rb +6 -2
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +177 -36
- data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +3 -2
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +34 -8
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +80 -25
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +19 -4
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +15 -14
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +15 -9
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +1 -9
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -6
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +1 -3
- data/lib/cosmos/tools/cmd_tlm_server/gui/replay_tab.rb +84 -7
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +0 -1
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +1 -5
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +3 -2
- data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +159 -27
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +1 -1
- data/lib/cosmos/tools/config_editor/config_editor.rb +17 -52
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +0 -5
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +111 -0
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +31 -18
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +12 -3
- data/lib/cosmos/tools/script_runner/script_runner.rb +27 -14
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +104 -37
- data/lib/cosmos/tools/table_manager/table_config.rb +1 -1
- data/lib/cosmos/tools/table_manager/table_item_parser.rb +4 -2
- data/lib/cosmos/tools/table_manager/table_manager.rb +0 -5
- data/lib/cosmos/tools/table_manager/table_manager_core.rb +0 -1
- data/lib/cosmos/tools/test_runner/test.rb +1 -3
- data/lib/cosmos/tools/test_runner/test_runner.rb +26 -15
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +290 -137
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +122 -25
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +67 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +28 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +36 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +42 -3
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +88 -14
- data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +2 -5
- data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +2 -6
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +74 -18
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +3 -7
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +159 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +49 -2
- data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -0
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +0 -2
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/backgroundbutton_widget.rb +54 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +5 -5
- data/lib/cosmos/top_level.rb +1 -0
- data/lib/cosmos/utilities/crc.rb +3 -0
- data/lib/cosmos/utilities/csv.rb +1 -0
- data/lib/cosmos/utilities/message_log.rb +2 -1
- data/lib/cosmos/utilities/simulated_target.rb +8 -8
- data/lib/cosmos/version.rb +5 -5
- data/lib/cosmos/win32/win32.rb +4 -10
- data/run_gui_tests.bat +2 -1
- data/spec/config/config_parser_spec.rb +4 -4
- data/spec/core_ext/array_spec.rb +1 -1
- data/spec/core_ext/exception_spec.rb +12 -12
- data/spec/core_ext/file_spec.rb +6 -6
- data/spec/core_ext/hash_spec.rb +1 -1
- data/spec/core_ext/socket_spec.rb +2 -2
- data/spec/core_ext/string_spec.rb +13 -13
- data/spec/core_ext/time_spec.rb +0 -2
- data/spec/gui/utilities/script_module_gui_spec.rb +3 -3
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +6 -6
- data/spec/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +4 -0
- data/spec/interfaces/cmd_tlm_server_interface_spec.rb +6 -2
- data/spec/interfaces/interface_spec.rb +0 -1
- data/spec/interfaces/linc_interface_spec.rb +0 -5
- data/spec/interfaces/protocols/crc_protocol_spec.rb +201 -85
- data/spec/interfaces/protocols/fixed_protocol_spec.rb +33 -9
- data/spec/interfaces/protocols/length_protocol_spec.rb +1 -1
- data/spec/interfaces/protocols/override_protocol_spec.rb +6 -2
- data/spec/interfaces/protocols/preidentified_protocol_spec.rb +1 -5
- data/spec/interfaces/protocols/template_protocol_spec.rb +0 -1
- data/spec/interfaces/simulated_target_interface_spec.rb +5 -5
- data/spec/interfaces/udp_interface_spec.rb +2 -4
- data/spec/io/buffered_file_spec.rb +8 -12
- data/spec/io/json_drb_spec.rb +9 -9
- data/spec/io/json_rpc_spec.rb +4 -4
- data/spec/io/raw_logger_spec.rb +4 -3
- data/spec/packet_logs/packet_log_reader_spec.rb +3 -6
- data/spec/packet_logs/packet_log_writer_spec.rb +4 -4
- data/spec/packets/binary_accessor_spec.rb +5 -8
- data/spec/packets/commands_spec.rb +2 -2
- data/spec/packets/limits_spec.rb +2 -2
- data/spec/packets/packet_config_spec.rb +12 -0
- data/spec/packets/packet_item_limits_spec.rb +1 -1
- data/spec/packets/packet_item_spec.rb +9 -9
- data/spec/packets/packet_spec.rb +15 -5
- data/spec/packets/parsers/packet_item_parser_spec.rb +27 -0
- data/spec/packets/parsers/xtce_parser_spec.rb +27 -30
- data/spec/packets/structure_spec.rb +2 -1
- data/spec/packets/telemetry_spec.rb +3 -5
- data/spec/processors/statistics_processor_spec.rb +35 -0
- data/spec/script/cmd_tlm_server_spec.rb +4 -21
- data/spec/script/commands_disconnect_spec.rb +46 -58
- data/spec/script/commands_spec.rb +40 -61
- data/spec/script/limits_spec.rb +1 -21
- data/spec/script/script_spec.rb +32 -41
- data/spec/script/scripting_spec.rb +166 -185
- data/spec/script/telemetry_spec.rb +10 -5
- data/spec/script/tools_spec.rb +2 -24
- data/spec/spec_helper.rb +11 -5
- data/spec/system/system_spec.rb +17 -12
- data/spec/tools/cmd_tlm_server/api_spec.rb +21 -10
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -16
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +0 -1
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +16 -27
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +2 -6
- data/spec/tools/cmd_tlm_server/connections_spec.rb +0 -4
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +13 -13
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +5 -9
- data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +11 -3
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +0 -4
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +5 -5
- data/spec/tools/cmd_tlm_server/routers_spec.rb +5 -9
- data/spec/tools/table_manager/table_config_spec.rb +0 -1
- data/spec/tools/table_manager/tablemanager_core_spec.rb +23 -23
- data/spec/tools/tlm_viewer/tlm_viewer_config_spec.rb +6 -4
- data/spec/top_level/top_level_spec.rb +9 -9
- data/spec/utilities/csv_spec.rb +2 -12
- data/spec/utilities/logger_spec.rb +6 -6
- data/spec/utilities/message_log_spec.rb +3 -11
- data/tasks/gemfile_stats.rake +2 -2
- metadata +167 -60
|
@@ -10,13 +10,17 @@
|
|
|
10
10
|
|
|
11
11
|
require 'spec_helper'
|
|
12
12
|
require 'cosmos'
|
|
13
|
-
require 'cosmos/script
|
|
13
|
+
require 'cosmos/script'
|
|
14
14
|
require 'tempfile'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
17
|
describe Script do
|
|
18
18
|
before(:all) do
|
|
19
|
+
# Save cmd_tlm_server.txt
|
|
19
20
|
@cts = File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server','cmd_tlm_server.txt')
|
|
21
|
+
FileUtils.mv @cts, Cosmos::USERPATH
|
|
22
|
+
|
|
23
|
+
# Recreate cmd_tlm_server.txt with a PROTOCOL
|
|
20
24
|
FileUtils.mkdir_p(File.dirname(@cts))
|
|
21
25
|
File.open(@cts,'w') do |file|
|
|
22
26
|
file.puts 'INTERFACE INST_INT interface.rb'
|
|
@@ -28,8 +32,10 @@ module Cosmos
|
|
|
28
32
|
end
|
|
29
33
|
|
|
30
34
|
after(:all) do
|
|
31
|
-
|
|
32
|
-
FileUtils.
|
|
35
|
+
# Restore cmd_tlm_server.txt
|
|
36
|
+
FileUtils.mv File.join(Cosmos::USERPATH, 'cmd_tlm_server.txt'),
|
|
37
|
+
File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server')
|
|
38
|
+
System.class_eval('@@instance = nil')
|
|
33
39
|
end
|
|
34
40
|
|
|
35
41
|
before(:each) do
|
|
@@ -163,11 +169,10 @@ module Cosmos
|
|
|
163
169
|
|
|
164
170
|
it "subscribes and gets packets" do
|
|
165
171
|
id = subscribe_packet_data([["SYSTEM","META"]])
|
|
166
|
-
inject_tlm("SYSTEM", "META")
|
|
167
172
|
packet = get_packet(id)
|
|
173
|
+
inject_tlm("SYSTEM", "META")
|
|
168
174
|
expect(packet.target_name).to eql "SYSTEM"
|
|
169
175
|
expect(packet.packet_name).to eql "META"
|
|
170
|
-
expect(packet.received_time).to be_within(1).of Time.now
|
|
171
176
|
expect(packet.received_count).to eql 0
|
|
172
177
|
packet = get_packet(id)
|
|
173
178
|
expect(packet.target_name).to eql "SYSTEM"
|
data/spec/script/tools_spec.rb
CHANGED
|
@@ -10,30 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
require 'spec_helper'
|
|
12
12
|
require 'cosmos'
|
|
13
|
-
require 'cosmos/script
|
|
13
|
+
require 'cosmos/script'
|
|
14
14
|
require 'tempfile'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
|
-
|
|
18
17
|
describe Script do
|
|
19
|
-
|
|
20
|
-
before(:all) do
|
|
21
|
-
cts = File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server','cmd_tlm_server.txt')
|
|
22
|
-
FileUtils.mkdir_p(File.dirname(cts))
|
|
23
|
-
File.open(cts,'w') do |file|
|
|
24
|
-
file.puts 'INTERFACE INST_INT interface.rb'
|
|
25
|
-
file.puts 'TARGET INST'
|
|
26
|
-
end
|
|
27
|
-
System.class_eval('@@instance = nil')
|
|
28
|
-
|
|
29
|
-
require 'cosmos/script'
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
after(:all) do
|
|
33
|
-
clean_config()
|
|
34
|
-
FileUtils.rm_rf File.join(Cosmos::USERPATH,'config','tools')
|
|
35
|
-
end
|
|
36
|
-
|
|
37
18
|
before(:each) do
|
|
38
19
|
allow_any_instance_of(Interface).to receive(:connected?).and_return(true)
|
|
39
20
|
allow_any_instance_of(Interface).to receive(:disconnect)
|
|
@@ -118,9 +99,7 @@ module Cosmos
|
|
|
118
99
|
get_line_delay
|
|
119
100
|
get_scriptrunner_message_log_filename
|
|
120
101
|
start_new_scriptrunner_message_log
|
|
121
|
-
disable_instrumentation
|
|
122
|
-
value = 1
|
|
123
|
-
end
|
|
102
|
+
disable_instrumentation { }
|
|
124
103
|
set_stdout_max_lines(1000)
|
|
125
104
|
insert_return
|
|
126
105
|
step_mode
|
|
@@ -131,4 +110,3 @@ module Cosmos
|
|
|
131
110
|
|
|
132
111
|
end
|
|
133
112
|
end
|
|
134
|
-
|
data/spec/spec_helper.rb
CHANGED
|
@@ -38,10 +38,13 @@ if !ENV['COSMOS_NO_SIMPLECOV']
|
|
|
38
38
|
add_group 'GUI', 'gui'
|
|
39
39
|
add_group 'Tools', 'tools'
|
|
40
40
|
root = File.dirname(__FILE__)
|
|
41
|
+
root.to_s
|
|
41
42
|
end
|
|
42
43
|
SimpleCov.at_exit do
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
Cosmos.disable_warnings do
|
|
45
|
+
Encoding.default_external = Encoding::UTF_8
|
|
46
|
+
Encoding.default_internal = nil
|
|
47
|
+
end
|
|
45
48
|
SimpleCov.result.format!
|
|
46
49
|
end
|
|
47
50
|
end
|
|
@@ -73,8 +76,11 @@ RSpec.configure do |config|
|
|
|
73
76
|
end
|
|
74
77
|
|
|
75
78
|
config.after(:all) {
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
clean_config()
|
|
80
|
+
Cosmos.disable_warnings do
|
|
81
|
+
def Object.exit(*args)
|
|
82
|
+
old_exit(*args)
|
|
83
|
+
end
|
|
78
84
|
end
|
|
79
85
|
}
|
|
80
86
|
|
|
@@ -101,7 +107,7 @@ end
|
|
|
101
107
|
|
|
102
108
|
# Clean up the spec configuration directory
|
|
103
109
|
def clean_config
|
|
104
|
-
%w(outputs/logs outputs/saved_config outputs/tmp outputs/tables outputs/handbooks).each do |dir|
|
|
110
|
+
%w(outputs/logs outputs/saved_config outputs/tmp outputs/tables outputs/handbooks procedures).each do |dir|
|
|
105
111
|
FileUtils.rm_rf(Dir.glob(File.join(Cosmos::USERPATH, dir, '*')))
|
|
106
112
|
end
|
|
107
113
|
end
|
data/spec/system/system_spec.rb
CHANGED
|
@@ -34,6 +34,7 @@ module Cosmos
|
|
|
34
34
|
# Restore system.txt
|
|
35
35
|
FileUtils.mv File.join(Cosmos::USERPATH, 'system.txt'),
|
|
36
36
|
File.join(Cosmos::USERPATH,'config','system')
|
|
37
|
+
System.class_eval('@@instance = nil')
|
|
37
38
|
end
|
|
38
39
|
|
|
39
40
|
after(:each) do
|
|
@@ -44,12 +45,12 @@ module Cosmos
|
|
|
44
45
|
describe "instance" do
|
|
45
46
|
it "creates default ports" do
|
|
46
47
|
# Don't check the actual port numbers but just that they exist
|
|
47
|
-
expect(System.ports.keys).to eql %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER REPLAY_API REPLAY_PREIDENTIFIED REPLAY_CMD_ROUTER)
|
|
48
|
+
expect(System.ports.keys).to eql %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER REPLAY_API REPLAY_PREIDENTIFIED REPLAY_CMD_ROUTER DART_DECOM DART_STREAM)
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
it "creates default paths" do
|
|
51
52
|
# Don't check the actual paths but just that they exist
|
|
52
|
-
expect(System.paths.keys).to eql %w(LOGS TMP SAVED_CONFIG TABLES HANDBOOKS PROCEDURES SEQUENCES)
|
|
53
|
+
expect(System.paths.keys).to eql %w(LOGS TMP SAVED_CONFIG TABLES HANDBOOKS PROCEDURES SEQUENCES DART_DATA DART_LOGS)
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
context "initializing SYSTEM META" do
|
|
@@ -67,12 +68,14 @@ module Cosmos
|
|
|
67
68
|
expect(tlm.read("COSMOS_VERSION")).to_not be_nil
|
|
68
69
|
expect(tlm.read("RUBY_VERSION")).to_not be_nil
|
|
69
70
|
expect(tlm.read("USER_VERSION")).to_not be_nil
|
|
71
|
+
expect(tlm.received_time.to_f).to be_within(1).of(Time.now.to_f)
|
|
70
72
|
cmd = System.commands.packet("SYSTEM", "META")
|
|
71
73
|
expect(cmd.read("PKTID")).to eql tlm.read("PKTID")
|
|
72
74
|
expect(cmd.read("CONFIG")).to eql tlm.read("CONFIG")
|
|
73
75
|
expect(cmd.read("COSMOS_VERSION")).to eql tlm.read("COSMOS_VERSION")
|
|
74
76
|
expect(cmd.read("RUBY_VERSION")).to eql tlm.read("RUBY_VERSION")
|
|
75
77
|
expect(cmd.read("USER_VERSION")).to eql tlm.read("USER_VERSION")
|
|
78
|
+
expect(cmd.received_time.to_f).to be_within(1).of(Time.now.to_f)
|
|
76
79
|
end
|
|
77
80
|
|
|
78
81
|
it "defaults badly defined TELEMETRY SYSTEM META" do
|
|
@@ -94,6 +97,9 @@ module Cosmos
|
|
|
94
97
|
System.class_variable_set(:@@instance, nil)
|
|
95
98
|
System.new(tf.path)
|
|
96
99
|
tlm = System.telemetry.packet("SYSTEM", "META")
|
|
100
|
+
expect(tlm.read("RECEIVED_TIMESECONDS")).to_not be_nil
|
|
101
|
+
expect(tlm.read("RECEIVED_TIMEFORMATTED")).to_not be_nil
|
|
102
|
+
expect(tlm.read("RECEIVED_COUNT")).to_not be_nil
|
|
97
103
|
expect(tlm.read("PKTID")).to_not be_nil
|
|
98
104
|
expect(tlm.read("CONFIG")).to_not be_nil
|
|
99
105
|
expect(tlm.read("COSMOS_VERSION")).to_not be_nil
|
|
@@ -203,7 +209,7 @@ module Cosmos
|
|
|
203
209
|
capture_io do |stdout|
|
|
204
210
|
allow(Zip::File).to receive(:open) { raise "Error" }
|
|
205
211
|
System.commands
|
|
206
|
-
expect(stdout.string).to match
|
|
212
|
+
expect(stdout.string).to match("Problem saving configuration")
|
|
207
213
|
end
|
|
208
214
|
File.open(@config_file, 'w') { |file| file.puts "# Comment" }
|
|
209
215
|
end
|
|
@@ -263,7 +269,7 @@ module Cosmos
|
|
|
263
269
|
expect(System.telemetry.target_names).to eql ['INST', 'SYSTEM']
|
|
264
270
|
expect(System.commands.target_names).to eql ['INST', 'SYSTEM']
|
|
265
271
|
|
|
266
|
-
expect(stdout.string).to match
|
|
272
|
+
expect(stdout.string).to match("Marshal file does not exist")
|
|
267
273
|
|
|
268
274
|
# Reset stdout for another go at the processing
|
|
269
275
|
stdout.rewind
|
|
@@ -273,7 +279,7 @@ module Cosmos
|
|
|
273
279
|
expect(System.telemetry.target_names).to eql ['INST', 'SYSTEM']
|
|
274
280
|
expect(System.commands.target_names).to eql ['INST', 'SYSTEM']
|
|
275
281
|
|
|
276
|
-
expect(stdout.string).to match
|
|
282
|
+
expect(stdout.string).to match("Marshal load success")
|
|
277
283
|
end
|
|
278
284
|
end
|
|
279
285
|
|
|
@@ -283,7 +289,7 @@ module Cosmos
|
|
|
283
289
|
# This line actually does the work of reading the configuration
|
|
284
290
|
expect { System.telemetry.target_names }.to raise_error("ProcessError")
|
|
285
291
|
|
|
286
|
-
expect(stdout.string).to match
|
|
292
|
+
expect(stdout.string).to match("Problem processing")
|
|
287
293
|
end
|
|
288
294
|
end
|
|
289
295
|
end
|
|
@@ -312,7 +318,7 @@ module Cosmos
|
|
|
312
318
|
original_config_name, err = System.load_configuration
|
|
313
319
|
expect(err).to eql nil
|
|
314
320
|
expect(System.telemetry.target_names).to eql %w(OVERRIDE SYSTEM)
|
|
315
|
-
|
|
321
|
+
System.telemetry.packets('SYSTEM').keys
|
|
316
322
|
|
|
317
323
|
# Create a new configuration by writing another telemetry file
|
|
318
324
|
File.open(File.join(@config_targets,'SYSTEM','cmd_tlm','test1_tlm.txt'),'w') do |file|
|
|
@@ -336,10 +342,9 @@ module Cosmos
|
|
|
336
342
|
file.puts " APPEND_ITEM DATA 240 STRING"
|
|
337
343
|
end
|
|
338
344
|
System.instance.process_file(@config_file)
|
|
339
|
-
names = []
|
|
340
345
|
# Verify the new telemetry packet is there as well as the second one
|
|
341
346
|
expect(System.telemetry.packets('SYSTEM').keys).to include("TEST1", "TEST2")
|
|
342
|
-
third_config_name = System.configuration_name
|
|
347
|
+
#third_config_name = System.configuration_name
|
|
343
348
|
|
|
344
349
|
# Try loading something that doesn't exist
|
|
345
350
|
# It should fail and reload the original configuration
|
|
@@ -529,7 +534,7 @@ module Cosmos
|
|
|
529
534
|
tf.close
|
|
530
535
|
capture_io do |stdout|
|
|
531
536
|
System.instance.process_file(tf.path)
|
|
532
|
-
expect(stdout.string).to match
|
|
537
|
+
expect(stdout.string).to match(/WARN: Unknown port name given: MYPORT/)
|
|
533
538
|
end
|
|
534
539
|
tf.unlink
|
|
535
540
|
end
|
|
@@ -566,7 +571,7 @@ module Cosmos
|
|
|
566
571
|
tf.close
|
|
567
572
|
capture_io do |stdout|
|
|
568
573
|
System.instance.process_file(tf.path)
|
|
569
|
-
expect(stdout.string).to match
|
|
574
|
+
expect(stdout.string).to match(/WARN: Unknown path name given: MYPATH/)
|
|
570
575
|
end
|
|
571
576
|
tf.unlink
|
|
572
577
|
end
|
|
@@ -576,7 +581,7 @@ module Cosmos
|
|
|
576
581
|
tf = Tempfile.new('unittest')
|
|
577
582
|
tf.puts("PATH LOGS C:/mylogs")
|
|
578
583
|
tf.close
|
|
579
|
-
expect(System.paths['LOGS']).to match
|
|
584
|
+
expect(System.paths['LOGS']).to match('outputs/logs')
|
|
580
585
|
System.instance.process_file(tf.path)
|
|
581
586
|
expect(System.paths['LOGS']).to eql 'C:/mylogs'
|
|
582
587
|
tf.unlink
|
|
@@ -18,9 +18,12 @@ module Cosmos
|
|
|
18
18
|
describe Api do
|
|
19
19
|
|
|
20
20
|
before(:all) do
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
# Save cmd_tlm_server.txt
|
|
22
|
+
@cts = File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server','cmd_tlm_server.txt')
|
|
23
|
+
FileUtils.mv @cts, Cosmos::USERPATH
|
|
24
|
+
|
|
25
|
+
FileUtils.mkdir_p(File.dirname(@cts))
|
|
26
|
+
File.open(@cts,'w') do |file|
|
|
24
27
|
file.puts 'INTERFACE INST_INT interface.rb'
|
|
25
28
|
file.puts ' TARGET INST'
|
|
26
29
|
file.puts ' PROTOCOL READ_WRITE OverrideProtocol'
|
|
@@ -38,9 +41,13 @@ module Cosmos
|
|
|
38
41
|
super()
|
|
39
42
|
@name = 'Example Background Task1'
|
|
40
43
|
@status = "This is example one"
|
|
44
|
+
@sleeper = Sleeper.new
|
|
41
45
|
end
|
|
42
46
|
def call
|
|
43
|
-
sleep
|
|
47
|
+
return if @sleeper.sleep(0.3)
|
|
48
|
+
end
|
|
49
|
+
def stop
|
|
50
|
+
@sleeper.cancel
|
|
44
51
|
end
|
|
45
52
|
end
|
|
46
53
|
end
|
|
@@ -56,12 +63,16 @@ module Cosmos
|
|
|
56
63
|
super()
|
|
57
64
|
@name = 'Example Background Task2'
|
|
58
65
|
@status = "This is example two"
|
|
66
|
+
@sleeper = Sleeper.new
|
|
59
67
|
end
|
|
60
68
|
def call
|
|
61
69
|
loop do
|
|
62
|
-
sleep
|
|
70
|
+
return if @sleeper.sleep(1)
|
|
63
71
|
end
|
|
64
72
|
end
|
|
73
|
+
def stop
|
|
74
|
+
@sleeper.cancel
|
|
75
|
+
end
|
|
65
76
|
end
|
|
66
77
|
end
|
|
67
78
|
DOC
|
|
@@ -69,10 +80,11 @@ DOC
|
|
|
69
80
|
end
|
|
70
81
|
|
|
71
82
|
after(:all) do
|
|
72
|
-
clean_config()
|
|
73
|
-
FileUtils.rm_rf File.join(Cosmos::USERPATH,'config','tools')
|
|
74
83
|
FileUtils.rm_rf @background1
|
|
75
84
|
FileUtils.rm_rf @background2
|
|
85
|
+
# Restore cmd_tlm_server.txt
|
|
86
|
+
FileUtils.mv File.join(Cosmos::USERPATH, 'cmd_tlm_server.txt'),
|
|
87
|
+
File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server')
|
|
76
88
|
end
|
|
77
89
|
|
|
78
90
|
before(:each) do
|
|
@@ -523,7 +535,6 @@ DOC
|
|
|
523
535
|
end
|
|
524
536
|
|
|
525
537
|
it "returns special values for time if time isn't set" do
|
|
526
|
-
time = Time.now
|
|
527
538
|
packet = System.commands.packet("INST", "COLLECT")
|
|
528
539
|
packet.received_time = nil
|
|
529
540
|
packet.restore_defaults
|
|
@@ -752,7 +763,7 @@ DOC
|
|
|
752
763
|
@api.inject_tlm("INST","HEALTH_STATUS",{TEMP1: 50, TEMP2: 50, TEMP3: 50, TEMP4: 50}, :CONVERTED)
|
|
753
764
|
allow_any_instance_of(Interface).to receive(:write_allowed?).and_raise("PROBLEM!")
|
|
754
765
|
expect(Logger).to receive(:error) do |msg|
|
|
755
|
-
expect(msg).to match
|
|
766
|
+
expect(msg).to match(/Problem writing to router/)
|
|
756
767
|
end
|
|
757
768
|
@api.inject_tlm("INST","HEALTH_STATUS")
|
|
758
769
|
end
|
|
@@ -773,7 +784,7 @@ DOC
|
|
|
773
784
|
|
|
774
785
|
allow_any_instance_of(Interface).to receive(:write_allowed?).and_raise("PROBLEM!")
|
|
775
786
|
expect(Logger).to receive(:error) do |msg|
|
|
776
|
-
expect(msg).to match
|
|
787
|
+
expect(msg).to match(/Problem writing to router/)
|
|
777
788
|
end
|
|
778
789
|
|
|
779
790
|
@api.inject_tlm("SYSTEM","LIMITS_CHANGE")
|
|
@@ -34,7 +34,6 @@ module Cosmos
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
after(:all) do
|
|
37
|
-
clean_config()
|
|
38
37
|
4.times.each { |i| File.delete(File.join(Cosmos::USERPATH,'lib',"my_bg_task#{i}.rb")) }
|
|
39
38
|
end
|
|
40
39
|
|
|
@@ -56,22 +55,22 @@ module Cosmos
|
|
|
56
55
|
sleep 0.2
|
|
57
56
|
expect(running_threads.length).to eql(3)
|
|
58
57
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 2
|
|
59
|
-
expect(stdout.string).to match
|
|
60
|
-
expect(stdout.string).to match
|
|
58
|
+
expect(stdout.string).to match("BG0 START")
|
|
59
|
+
expect(stdout.string).to match("BG2 START")
|
|
61
60
|
|
|
62
61
|
bt.start(1)
|
|
63
62
|
sleep 0.1
|
|
64
63
|
expect(running_threads.length).to eql(4)
|
|
65
64
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 3
|
|
66
|
-
expect(stdout.string).to match
|
|
65
|
+
expect(stdout.string).to match("BG1 START")
|
|
67
66
|
|
|
68
67
|
bt.stop_all
|
|
69
68
|
sleep 0.2
|
|
70
69
|
expect(running_threads.length).to eql(1)
|
|
71
70
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 0
|
|
72
|
-
expect(stdout.string).to match
|
|
73
|
-
expect(stdout.string).to match
|
|
74
|
-
expect(stdout.string).to match
|
|
71
|
+
expect(stdout.string).to match("BG0 STOP")
|
|
72
|
+
expect(stdout.string).to match("BG1 STOP")
|
|
73
|
+
expect(stdout.string).to match("BG2 STOP")
|
|
75
74
|
end
|
|
76
75
|
tf.unlink
|
|
77
76
|
end
|
|
@@ -97,54 +96,54 @@ module Cosmos
|
|
|
97
96
|
expect(running_threads.length).to eql(2)
|
|
98
97
|
expect(bt.instance_variable_get("@threads")[2].alive?).to eq true
|
|
99
98
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 1
|
|
100
|
-
expect(stdout.string).to match
|
|
99
|
+
expect(stdout.string).to match("BG2 START")
|
|
101
100
|
|
|
102
101
|
bt.start(1)
|
|
103
102
|
sleep 0.1
|
|
104
103
|
expect(running_threads.length).to eql(3)
|
|
105
104
|
expect(bt.instance_variable_get("@threads")[1].alive?).to eq true
|
|
106
105
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 2
|
|
107
|
-
expect(stdout.string).to match
|
|
106
|
+
expect(stdout.string).to match("BG1 START")
|
|
108
107
|
|
|
109
108
|
bt.start(0)
|
|
110
109
|
sleep 0.1
|
|
111
110
|
expect(running_threads.length).to eql(4)
|
|
112
111
|
expect(bt.instance_variable_get("@threads")[0].alive?).to eq true
|
|
113
112
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 3
|
|
114
|
-
expect(stdout.string).to match
|
|
113
|
+
expect(stdout.string).to match("BG0 START")
|
|
115
114
|
|
|
116
115
|
bt.start(2) # Should do nothing since the task is already started
|
|
117
116
|
sleep 0.1
|
|
118
117
|
expect(running_threads.length).to eql(4)
|
|
119
118
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 3
|
|
120
|
-
expect(stdout.string).to match
|
|
119
|
+
expect(stdout.string).to match("BG0 START") # No change
|
|
121
120
|
|
|
122
121
|
bt.stop(1)
|
|
123
122
|
sleep 0.2
|
|
124
123
|
expect(running_threads.length).to eql(3)
|
|
125
124
|
expect(bt.instance_variable_get("@threads")[1]).to be_nil
|
|
126
125
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 2
|
|
127
|
-
expect(stdout.string).to match
|
|
126
|
+
expect(stdout.string).to match("BG1 STOP")
|
|
128
127
|
|
|
129
128
|
bt.stop(0)
|
|
130
129
|
sleep 0.2
|
|
131
130
|
expect(running_threads.length).to eql(2)
|
|
132
131
|
expect(bt.instance_variable_get("@threads")[0]).to be_nil
|
|
133
132
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 1
|
|
134
|
-
expect(stdout.string).to match
|
|
133
|
+
expect(stdout.string).to match("BG0 STOP")
|
|
135
134
|
|
|
136
135
|
bt.stop(2)
|
|
137
136
|
sleep 0.2
|
|
138
137
|
expect(running_threads.length).to eql(1)
|
|
139
138
|
expect(bt.instance_variable_get("@threads")[2]).to be_nil
|
|
140
139
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 0
|
|
141
|
-
expect(stdout.string).to match
|
|
140
|
+
expect(stdout.string).to match("BG2 STOP")
|
|
142
141
|
|
|
143
142
|
bt.stop(0) # Should be safe to stop something already stopped
|
|
144
143
|
sleep 0.2
|
|
145
144
|
expect(running_threads.length).to eql(1)
|
|
146
145
|
expect(bt.instance_variable_get("@threads").compact.length).to eq 0
|
|
147
|
-
expect(stdout.string).to match
|
|
146
|
+
expect(stdout.string).to match("BG2 STOP") # No change
|
|
148
147
|
|
|
149
148
|
expect { bt.stop(3) }.to raise_error(/No task at index 3/)
|
|
150
149
|
end
|
|
@@ -174,7 +173,7 @@ module Cosmos
|
|
|
174
173
|
expect(running_threads.length).to eql(1)
|
|
175
174
|
expect(bt.instance_variable_get("@threads").length).to eq 0
|
|
176
175
|
|
|
177
|
-
expect(stdout.string).to match
|
|
176
|
+
expect(stdout.string).to match("unexpectedly died")
|
|
178
177
|
end
|
|
179
178
|
tf.unlink
|
|
180
179
|
end
|