Closed doudou closed 7 years ago
@gustavoneves12 this will affect you. I'm sorry, I had converted both dive and flat_fish but lost them when I had to delete the FF code from my laptop :(
I would suggest that you at least check if the harness breaks your current tests -- and if it does, let's try to fix the issues together. The "old" tests should still work, only with a lot of deprecation warnings.
@doudou, I am going to check it tomorrow. I will inform you if I had some problem.
Don't forget to get the syskit and metaruby PRs as well.
Ping @gustavoneves12 ?
@doudou sorry for the delay. I had other stuff to do. Today, after the lunch I am going to test it.
@doudou,
After your changes I run the command syskit test -rgazebo
and I get the error below:
= cannot load such file -- models/compositions/warp_robot (LoadError)
= Backtrace
|
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:15:in `require'
| /home/gustavoneves/rock/dev/flat_fish/bundles/cucumber/models/actions/cucumber.rb:1:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:15:in `require'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/actions/gazebo/cucumber.rb:1:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:11:in `block in require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:8:in `each'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:8:in `require'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/test/actions/gazebo/test_cucumber.rb:1:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:15:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app/scripts/test.rb:116:in `block (2 levels) in <top (required)>'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app/scripts/test.rb:114:in `each'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app/scripts/test.rb:114:in `block in <top (required)>'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/exceptions.rb:506:in `display_exception'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app/scripts/test.rb:82:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/bin/syskit:22:in `<main>'
In the manifest, cucumber is a test_depend.
In the manifest, cucumber is a test_depend.
The manifest.xml, as in all Rock packages, is irrelevant to the package's function. manifest.xml
is only used by autoproj, and this is by design so as to avoid tying package functionality to the build system.
You need to add cucumber
to the list of dependent bundles in config/bundles.yml
. This is not done in master so that bundles/cucumber
is not required on the vehicle.
Interestingly, this will be solved once this PR is merged - after this PR, dependencies can be added in the robot config files.
The manifest.xml, as in all Rock packages, is irrelevant to the package's function. manifest.xml is only used by autoproj, and this is by design so as to avoid tying package functionality to the build system.
Ok! Thanks for the explanation!
@doudou,
When I run the command syskit run -rgazebo -c
, I am getting the error below:
Roby[FATAL]: Application error in syskit:update_task_states
Roby[FATAL]: undefined method `read_with_result' for orocosrb_10875.efuse_nav.state.140:Orocos::OutputReader
Roby[FATAL]: Did you mean? read_helper (NoMethodError)
Roby[FATAL]: = Backtrace
Roby[FATAL]: =
Roby[FATAL]:
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/task_context.rb:493:in `update_orogen_state'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/runtime/update_task_states.rb:58:in `block in update_task_states'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/plan.rb:1726:in `block in query_each'
Roby[FATAL]: /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/set.rb:306:in `each_key'
Roby[FATAL]: /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/set.rb:306:in `each'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/plan.rb:1725:in `query_each'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/queries/query.rb:182:in `each'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/runtime/update_task_states.rb:8:in `update_task_states'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:234:in `call'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:747:in `block (2 levels) in call_poll_blocks'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/droby/event_logging.rb:22:in `log_timepoint_group'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:746:in `block in call_poll_blocks'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:741:in `delete_if'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:741:in `call_poll_blocks'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:773:in `gather_external_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1671:in `block (2 levels) in process_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:811:in `gather_errors'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1662:in `block in process_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:563:in `block in gather_propagation'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:669:in `propagation_context'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:562:in `gather_propagation'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1661:in `process_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2263:in `block (2 levels) in event_loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/droby/event_logging.rb:22:in `log_timepoint_group'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2262:in `block in event_loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2219:in `loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2219:in `event_loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2139:in `run'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1756:in `block in run'
Roby[FATAL]: =
Roby[FATAL]: Execution thread quitting because of unhandled exception
Roby[FATAL]: in syskit:update_task_states: undefined method `read_with_result' for orocosrb_10875.efuse_nav.state.140:Orocos::OutputReader
Roby[FATAL]: Did you mean? read_helper
Roby[FATAL]: Did you mean? read_helper (NoMethodError)
Roby[FATAL]: = Backtrace
Roby[FATAL]: =
Roby[FATAL]:
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/task_context.rb:493:in `update_orogen_state'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/runtime/update_task_states.rb:58:in `block in update_task_states'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/plan.rb:1726:in `block in query_each'
Roby[FATAL]: /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/set.rb:306:in `each_key'
Roby[FATAL]: /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/set.rb:306:in `each'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/plan.rb:1725:in `query_each'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/queries/query.rb:182:in `each'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/runtime/update_task_states.rb:8:in `update_task_states'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:234:in `call'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:747:in `block (2 levels) in call_poll_blocks'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/droby/event_logging.rb:22:in `log_timepoint_group'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:746:in `block in call_poll_blocks'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:741:in `delete_if'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:741:in `call_poll_blocks'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:773:in `gather_external_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1671:in `block (2 levels) in process_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:811:in `gather_errors'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1662:in `block in process_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:563:in `block in gather_propagation'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:669:in `propagation_context'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:562:in `gather_propagation'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1661:in `process_events'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2263:in `block (2 levels) in event_loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/droby/event_logging.rb:22:in `log_timepoint_group'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2262:in `block in event_loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2219:in `loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2219:in `event_loop'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:2139:in `run'
Roby[FATAL]: /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1756:in `block in run'
Roby[FATAL]: =
Also, syskit gets freeze, because it is not possible to quit the syskit using ctrl+c. I needed to kill the process to finish syskit.
When I execute the command syskit test -rgazebo
the test get into a infinite loop showing the warning below:
Roby[WARN]: more than 726 iterations while trying to shut down #<Roby::ExecutablePlan:0x00000002dd2fa0> after FlatFish::Compositions::UI::Gazebo::StatusMonitor#test_0001_starts, quarantine=0 tasks, tasks=2 tasks
Roby[WARN]: more than 727 iterations while trying to shut down #<Roby::ExecutablePlan:0x00000002dd2fa0> after FlatFish::Compositions::UI::Gazebo::StatusMonitor#test_0001_starts, quarantine=0 tasks, tasks=2 tasks
Roby[WARN]: more than 728 iterations while trying to shut down #<Roby::ExecutablePlan:0x00000002dd2fa0> after FlatFish::Compositions::UI::Gazebo::StatusMonitor#test_0001_starts, quarantine=0 tasks, tasks=2 tasks
After 7 minutes running I interrupt the test. Below you have the output message.
Interrupted. Exiting...
Finished in 629.868841s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
I forgot a PR on orocos.rb as well: https://github.com/rock-core/tools-orocosrb/pull/115
Hey @doudou,
I set the branches and I executed the tests.
Running the command syskit test -rgazebo
, the tested was executed, When the tests finished I get the following output.
628 runs, 3440 assertions, 10 failures, 45 errors, 1 skips
You have skipped tests. Run with --verbose for details.
Running the simulation by the command syskit run -rgazebo -c
the syskit output keep sending the warning below:
Roby[WARN]: Deprecation Warning: accessing arguments using anything else than a symbol is deprecated at /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/task_arguments.rb:196:in `[]'
/home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/tasks/safety.rb:46:in `block in handle_missing_children'
When I run the commands syskit run -rlive --single --sim
and syskit test -rlive
, the syskit get the error below:
= wrong number of arguments (given 1, expected 0) (ArgumentError)
= Backtrace
|
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/instance_requirements.rb:658:in `with_arguments'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/robot/master_device_instance.rb:332:in `with_arguments'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live/base.rb:267:in `block (2 levels) in <module:Live>'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/actions/profile.rb:443:in `instance_eval'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/actions/profile.rb:443:in `robot'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live/base.rb:61:in `block in <module:Live>'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/actions/profile.rb:591:in `instance_eval'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/actions/profile.rb:591:in `profile'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live/base.rb:52:in `<module:Live>'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live/base.rb:51:in `<module:Profiles>'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live/base.rb:50:in `<module:FlatFish>'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live/base.rb:49:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:11:in `block in require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:8:in `each'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:8:in `require'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/models/profiles/live.rb:1:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:11:in `block in require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:8:in `each'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/lib/syskit/custom_require.rb:8:in `require'
| /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/config/robots/live.rb:32:in `block in <top (required)>'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1267:in `block (2 levels) in require_models'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1236:in `isolate_load_errors'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1266:in `block in require_models'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1265:in `each'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1265:in `require_models'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app.rb:1644:in `setup'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app/scripts/run.rb:87:in `block in <top (required)>'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/exceptions.rb:506:in `display_exception'
| /home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/app/scripts/run.rb:86:in `<top (required)>'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
| /home/gustavoneves/rock/dev/flat_fish/tools/syskit/bin/syskit:22:in `<main>'
=
The line models/profiles/live/base.rb:267
has the following code:
device(FlatFish::Devices::EcommBoardGPS, as: 'ecomm_board_gps').
period(1).
with_arguments('driver_dev' => ecomm_board_dev)
I had a look at the code, and the EcommBoardGPS does not have the argument driver_dev.
Roby[WARN]: Deprecation Warning:
Well, This is a deprecation warning. Change the code to not use the deprecated feature.
I had a look at the code, and the EcommBoardGPS does not have the argument driver_dev.
It does, the _dev
arguments are there because of the driver_for
declaration. Check the IDE. You will note that nowhere in the error message there is a "driver_dev is not an argument".
The change that causes this is due is the removal of using strings as argument names, e.g. in this case
with_arguments('driver_dev' => ecomm_board_dev)
should now be written
with_arguments(driver_dev: ecomm_board_dev)
I've re-added the support (with a deprecation warning) in the Syskit PR (https://github.com/rock-core/tools-syskit/pull/118/commits/2a20b5aadb4e9cc6c83ab045d8787cb589e2adc0)
I performed the tests again:
The tests were executed, but I got the message during the execution of the command syskit test -rlive
.
Syskit[FATAL]: nil
Syskit[FATAL]: Engine#resolve failed
Syskit[FATAL]: the generated plan has been saved
Syskit[FATAL]: use dot -Tsvg /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/logs/20170830-1042/syskit-plan-0003.dataflow.dot > /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/logs/20170830-1042/syskit-plan-0003.dataflow.dot.svg to convert the dataflow to SVG
Syskit[FATAL]: use dot -Tsvg /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/logs/20170830-1042/syskit-plan-0003.hierarchy.dot > /home/gustavoneves/rock/dev/flat_fish/bundles/flat_fish/logs/20170830-1042/syskit-plan-0003.hierarchy.dot.svg to convert to SVG
The tests kept running. In the end I got the following output:
53) Error:
Rock::Compositions::ConstantGenerator::the task termination#test_0002_aborts if the write thread raises an exception:
cannot recursively call #expect_execution (Roby::Test::ExpectExecution::InvalidContext)
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/expect_execution.rb:94:in `expect_execution'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/assertions.rb:246:in `assert_event_emission'
/home/gustavoneves/rock/dev/flat_fish/bundles/rock/test/compositions/test_constant_generator.rb:64:in `block (4 levels) in <module:Compositions>'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/assertions.rb:338:in `block in assert_fatal_exception'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/execution_expectations.rb:525:in `block (3 levels) in verify'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/execution_expectations.rb:524:in `delete_if'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/execution_expectations.rb:524:in `block (2 levels) in verify'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1664:in `block (2 levels) in process_events'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:811:in `gather_errors'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1662:in `block in process_events'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:563:in `block in gather_propagation'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:669:in `propagation_context'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:562:in `gather_propagation'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/execution_engine.rb:1661:in `process_events'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/execution_expectations.rb:523:in `block in verify'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/execution_expectations.rb:495:in `with_execution_engine_setup'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/execution_expectations.rb:522:in `verify'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/expect_execution.rb:74:in `to'
/home/gustavoneves/rock/dev/flat_fish/tools/roby/lib/roby/test/assertions.rb:338:in `assert_fatal_exception'
/home/gustavoneves/rock/dev/flat_fish/bundles/rock/test/compositions/test_constant_generator.rb:62:in `block (3 levels) in <module:Compositions>'
614 runs, 3425 assertions, 7 failures, 36 errors, 1 skips
You have skipped tests. Run with --verbose for details.
The gazebo test output was:
628 runs, 3462 assertions, 10 failures, 40 errors, 1 skips
You have skipped tests. Run with --verbose for details.
After changing the driver_dev argument to symbol, I performed the command syskit run -rlive -c --single --sim
and it just showed warnings.
The error you got from the expect_execution block, I unfortunately cannot work around. You would need to convert to the new test syntax. You've only sent one error out of 53, though ... Same for gazebo. Could you send the whole test output ?
Ok, I am going to send by email or slack.
Depends on:
This aims at fixing the many issues about the way the test harness was currently implemented. The current way was to try and do things "synchronously" (generate one event, get one exception, ...). This was going counter to the core of the Roby execution and was failing in all but the simple cases.
This PR creates a test harness that embraces the "do everything at the same time" nature to Roby's event processing. The scheme is:
In the simplest example,
assert_event_emission
becomesWhere things get interesting is that the harness will inhibit "expected" exceptions. I.e. if the test checks for an event and that the event is the source of an exception, the exception will not fail the test (this can be avoided with a flag).
All previously existing assertions should still work as-is, but will display a deprecation warning.
See https://github.com/rock-core/bundles-common_models/commit/ec77a9f7116bbafd44ed4cd8a70e966d5a0b6ad7 for an example of a conversion between the old-style tests and the new-style tests.