Skip to content

ci: add testing on latest #467

ci: add testing on latest

ci: add testing on latest #467

GitHub Actions / Test results failed Aug 14, 2024 in 0s

221 passed, 9 failed and 10 skipped

Tests failed

Report Passed Failed Skipped Time
test-results-confined_shell-beta )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-confined_shell-.xml 17✅ 2⚪ 129s
test-results-confined_shell-edge )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-confined_shell-.xml 17✅ 2⚪ 130s
test-results-gnome_shell/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-gnome_shell-.xml 7✅ 1❌ 47s
test-results-mir_demo_server-mir-team_dev )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml 20✅ 1⚪ 136s
test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml 17✅ 3❌ 1⚪ 124s
test-results-mir_kiosk-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_kiosk-.xml 15✅ 108s
test-results-mir_test_tools-24_edge )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml 19✅ 1⚪ 193s
test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml 16✅ 3❌ 1⚪ 240s
test-results-self/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-self-.xml 61✅ 27s
test-results-ubuntu_frame-24_edge )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml 17✅ 1⚪ 121s
test-results-ubuntu_frame-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml 15✅ 2❌ 1⚪ 120s

✅ test-results-confined_shell-beta )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-confined_shell-.xml

19 tests were completed in 129s with 17 passed, 0 failed and 2 skipped.

Test suite Passed Failed Skipped Time
pytest 17✅ 2⚪ 129s

✅ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[confined_shell-wpe-webkit-mir-kiosk]
  ✅ test_app_can_run[confined_shell-mir-kiosk-neverputt]
  ✅ test_app_can_run[confined_shell-mir-kiosk-scummvm]
  ✅ test_app_can_run[confined_shell-mir-kiosk-kodi]
  ✅ test_app_can_run[confined_shell-pluma]
  ✅ test_app_can_run[confined_shell-qterminal]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[confined_shell]
tests.test_osk.TestOSK
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-confined_shell-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-confined_shell-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-confined_shell]
  ✅ test_active_app[mir-kiosk-neverputt-confined_shell]
  ✅ test_compositor_alone[confined_shell]
  ✅ test_inactive_app[qterminal-confined_shell]
  ✅ test_inactive_app[pluma-confined_shell]
  ✅ test_inactive_app[mir-kiosk-kodi-confined_shell]
  ✅ test_app_dragged_around[confined_shell]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[confined_shell]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[confined_shell]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-confined_shell]

✅ test-results-confined_shell-edge )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-confined_shell-.xml

19 tests were completed in 130s with 17 passed, 0 failed and 2 skipped.

Test suite Passed Failed Skipped Time
pytest 17✅ 2⚪ 130s

✅ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[confined_shell-wpe-webkit-mir-kiosk]
  ✅ test_app_can_run[confined_shell-mir-kiosk-neverputt]
  ✅ test_app_can_run[confined_shell-mir-kiosk-scummvm]
  ✅ test_app_can_run[confined_shell-mir-kiosk-kodi]
  ✅ test_app_can_run[confined_shell-pluma]
  ✅ test_app_can_run[confined_shell-qterminal]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[confined_shell]
tests.test_osk.TestOSK
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-confined_shell-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-confined_shell-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-confined_shell]
  ✅ test_active_app[mir-kiosk-neverputt-confined_shell]
  ✅ test_compositor_alone[confined_shell]
  ✅ test_inactive_app[qterminal-confined_shell]
  ✅ test_inactive_app[pluma-confined_shell]
  ✅ test_inactive_app[mir-kiosk-kodi-confined_shell]
  ✅ test_app_dragged_around[confined_shell]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[confined_shell]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[confined_shell]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-confined_shell]

❌ test-results-gnome_shell/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-gnome_shell-.xml

8 tests were completed in 47s with 7 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 7✅ 1❌ 47s

❌ pytest

tests.test_apps_can_run.TestAppsCanRun
  ❌ test_app_can_run[gnome_shell-wpe-webkit-mir-kiosk]
	self = <test_apps_can_run.TestAppsCanRun object at 0x7f4daed59c10>
  ✅ test_app_can_run[gnome_shell-mir-kiosk-neverputt]
  ✅ test_app_can_run[gnome_shell-mir-kiosk-scummvm]
  ✅ test_app_can_run[gnome_shell-mir-kiosk-kodi]
  ✅ test_app_can_run[gnome_shell-pluma]
  ✅ test_app_can_run[gnome_shell-qterminal]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[gnome_shell]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[gnome_shell]

✅ test-results-mir_demo_server-mir-team_dev )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml

21 tests were completed in 136s with 20 passed, 0 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 20✅ 1⚪ 136s

✅ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[mir_demo_server-wpe-webkit-mir-kiosk]
  ✅ test_app_can_run[mir_demo_server-mir-kiosk-neverputt]
  ✅ test_app_can_run[mir_demo_server-mir-kiosk-scummvm]
  ✅ test_app_can_run[mir_demo_server-mir-kiosk-kodi]
  ✅ test_app_can_run[mir_demo_server-pluma]
  ✅ test_app_can_run[mir_demo_server-qterminal]
tests.test_display_configuration.TestDisplayConfiguration
  ✅ test_can_update_scale[mir_demo_server]
  ✅ test_can_update_position[mir_demo_server]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[mir_demo_server]
tests.test_osk.TestOSK
  ✅ test_osk_typing[pluma-ubuntu-frame-osk-mir_demo_server-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-mir_demo_server-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-mir_demo_server]
  ✅ test_active_app[mir-kiosk-neverputt-mir_demo_server]
  ✅ test_compositor_alone[mir_demo_server]
  ✅ test_inactive_app[qterminal-mir_demo_server]
  ✅ test_inactive_app[pluma-mir_demo_server]
  ✅ test_inactive_app[mir-kiosk-kodi-mir_demo_server]
  ✅ test_app_dragged_around[mir_demo_server]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[mir_demo_server]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[mir_demo_server]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-mir_demo_server]

❌ test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml

21 tests were completed in 124s with 17 passed, 3 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 17✅ 3❌ 1⚪ 124s

❌ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[mir_demo_server-wpe-webkit-mir-kiosk]
  ❌ test_app_can_run[mir_demo_server-mir-kiosk-neverputt]
	self = <mir_ci.lib.cgroups.Cgroup object at 0x7f7e3e3fef90>
  ✅ test_app_can_run[mir_demo_server-mir-kiosk-scummvm]
  ✅ test_app_can_run[mir_demo_server-mir-kiosk-kodi]
  ✅ test_app_can_run[mir_demo_server-pluma]
  ✅ test_app_can_run[mir_demo_server-qterminal]
tests.test_display_configuration.TestDisplayConfiguration
  ✅ test_can_update_scale[mir_demo_server]
  ✅ test_can_update_position[mir_demo_server]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[mir_demo_server]
tests.test_osk.TestOSK
  ✅ test_osk_typing[pluma-ubuntu-frame-osk-mir_demo_server-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-mir_demo_server-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-mir_demo_server]
  ❌ test_active_app[mir-kiosk-neverputt-mir_demo_server]
	self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f7e3e3577d0>
  ✅ test_compositor_alone[mir_demo_server]
  ✅ test_inactive_app[qterminal-mir_demo_server]
  ✅ test_inactive_app[pluma-mir_demo_server]
  ❌ test_inactive_app[mir-kiosk-kodi-mir_demo_server]
	self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f7e3e371c90>
  ✅ test_app_dragged_around[mir_demo_server]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[mir_demo_server]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[mir_demo_server]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-mir_demo_server]

✅ test-results-mir_kiosk-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_kiosk-.xml

15 tests were completed in 108s with 15 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 15✅ 108s

✅ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[mir_kiosk-wpe-webkit-mir-kiosk]
  ✅ test_app_can_run[mir_kiosk-mir-kiosk-neverputt]
  ✅ test_app_can_run[mir_kiosk-mir-kiosk-scummvm]
  ✅ test_app_can_run[mir_kiosk-mir-kiosk-kodi]
  ✅ test_app_can_run[mir_kiosk-pluma]
  ✅ test_app_can_run[mir_kiosk-qterminal]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-mir_kiosk]
  ✅ test_active_app[mir-kiosk-neverputt-mir_kiosk]
  ✅ test_compositor_alone[mir_kiosk]
  ✅ test_inactive_app[qterminal-mir_kiosk]
  ✅ test_inactive_app[pluma-mir_kiosk]
  ✅ test_inactive_app[mir-kiosk-kodi-mir_kiosk]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[mir_kiosk]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[mir_kiosk]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-mir_kiosk]

✅ test-results-mir_test_tools-24_edge )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml

20 tests were completed in 193s with 19 passed, 0 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 19✅ 1⚪ 193s

✅ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[mir_test_tools-wpe-webkit-mir-kiosk]
  ✅ test_app_can_run[mir_test_tools-mir-kiosk-neverputt]
  ✅ test_app_can_run[mir_test_tools-mir-kiosk-scummvm]
  ✅ test_app_can_run[mir_test_tools-mir-kiosk-kodi]
  ✅ test_app_can_run[mir_test_tools-pluma]
  ✅ test_app_can_run[mir_test_tools-qterminal]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[mir_test_tools]
tests.test_mir_flutter_app.TestMirFlutterApp
  ✅ test_mir_flutter_app[mir-test-tools-mir_test_tools]
tests.test_osk.TestOSK
  ✅ test_osk_typing[pluma-ubuntu-frame-osk-mir_test_tools-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-mir_test_tools-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-mir_test_tools]
  ✅ test_active_app[mir-kiosk-neverputt-mir_test_tools]
  ✅ test_compositor_alone[mir_test_tools]
  ✅ test_inactive_app[qterminal-mir_test_tools]
  ✅ test_inactive_app[pluma-mir_test_tools]
  ✅ test_inactive_app[mir-kiosk-kodi-mir_test_tools]
  ✅ test_app_dragged_around[mir_test_tools]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[mir_test_tools]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[mir_test_tools]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-mir_test_tools]

❌ test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml

20 tests were completed in 240s with 16 passed, 3 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 16✅ 3❌ 1⚪ 240s

❌ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[mir_test_tools-wpe-webkit-mir-kiosk]
  ❌ test_app_can_run[mir_test_tools-mir-kiosk-neverputt]
	self = <mir_ci.lib.cgroups.Cgroup object at 0x7fe461b07ed0>
  ✅ test_app_can_run[mir_test_tools-mir-kiosk-scummvm]
  ✅ test_app_can_run[mir_test_tools-mir-kiosk-kodi]
  ✅ test_app_can_run[mir_test_tools-pluma]
  ✅ test_app_can_run[mir_test_tools-qterminal]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[mir_test_tools]
tests.test_mir_flutter_app.TestMirFlutterApp
  ❌ test_mir_flutter_app[mir-test-tools-mir_test_tools]
	self = <test_mir_flutter_app.TestMirFlutterApp object at 0x7fe461efe110>
tests.test_osk.TestOSK
  ✅ test_osk_typing[pluma-ubuntu-frame-osk-mir_test_tools-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-mir_test_tools-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-mir_test_tools]
  ❌ test_active_app[mir-kiosk-neverputt-mir_test_tools]
	self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7fe461f1f750>
  ✅ test_compositor_alone[mir_test_tools]
  ✅ test_inactive_app[qterminal-mir_test_tools]
  ✅ test_inactive_app[pluma-mir_test_tools]
  ✅ test_inactive_app[mir-kiosk-kodi-mir_test_tools]
  ✅ test_app_dragged_around[mir_test_tools]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[mir_test_tools]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[mir_test_tools]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-mir_test_tools]

✅ test-results-self/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-self-.xml

61 tests were completed in 27s with 61 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 61✅ 27s

✅ pytest

tests.test_tests.TestProgram
  ✅ test_program_gives_output
  ✅ test_program_can_be_waited_for
  ✅ test_program_can_be_terminated
  ✅ test_program_is_killed_when_terminate_fails
  ✅ test_program_runs_with_systemd_when_flag_is_set
  ✅ test_program_can_get_cgroup
  ✅ test_passes_when_cgroup_not_got
  ✅ test_get_cgroup_asserts_without_cgroupv2
tests.test_tests.TestBenchmarker
  ✅ test_benchmarker_can_generate_report
  ✅ test_benchmarker_cant_enter_twice
  ✅ test_benchmarker_unwinds_programs
  ✅ test_benchmarker_unwinds_programs_on_enter_failure
  ✅ test_benchmarker_unwinds_programs_on_exit_failure
  ✅ test_benchmarker_unwinds_programs_on_task_failure
  ✅ test_benchmarker_with_program
tests.test_tests.TestCGroupsBackend
  ✅ test_eats_runtime_error_on_poll
  ✅ test_converts_max_to_peak
  ✅ test_raises_runtime_error_on_empty
tests.test_tests.TestCgroup
  ✅ test_cgroup_can_get_cpu_time_microseconds
  ✅ test_cgroup_get_cpu_time_microseconds_raises_when_not_integer
  ✅ test_cgroup_get_cpu_time_microseconds_raises_when_usage_usec_not_found
  ✅ test_cgroup_can_get_current_memory
  ✅ test_cgroup_get_current_memory_raises_when_not_integer
  ✅ test_cgroup_can_get_peak_memory
  ✅ test_cgroup_get_peak_memory_raises_when_not_integer
  ✅ test_cgroup_path_raises_assertion_error_when_contents_are_incorrect
  ✅ test_cgroup_path_raises_runtime_error_when_contents_are_none
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[miriway]
  ✅ test_can_get_cgroup[mir_demo_server]
  ✅ test_can_get_cgroup[ubuntu_frame]
  ✅ test_can_get_cgroup[gnome_shell]
  ✅ test_can_get_cgroup[mir_test_tools]
  ✅ test_can_get_cgroup[mir_kiosk]
  ✅ test_can_get_cgroup[confined_shell]
  ✅ test_display_server_records_mode
tests.test_tests.TestOutputWatcher
  ✅ test_can_register
tests.test_tests.TestServers
  ✅ test_can_parse_mir_ci_server[AppType.snap]
  ✅ test_can_parse_mir_ci_server[AppType.deb]
  ✅ test_can_parse_mir_ci_server[AppType.pip]
  ✅ test_mir_ci_server_string_missing_capabilities[AppType.snap]
  ✅ test_mir_ci_server_string_missing_capabilities[AppType.deb]
  ✅ test_mir_ci_server_string_missing_capabilities[AppType.pip]
  ✅ test_mir_ci_server_string_app_type_is_invalid
  ✅ test_mir_ci_server_string_capability_is_invalid[AppType.snap]
  ✅ test_mir_ci_server_string_capability_is_invalid[AppType.deb]
  ✅ test_mir_ci_server_string_capability_is_invalid[AppType.pip]
  ✅ test_mir_ci_server_is_present_in_server_list[AppType.snap]
  ✅ test_mir_ci_server_is_present_in_server_list[AppType.deb]
  ✅ test_mir_ci_server_is_present_in_server_list[AppType.pip]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities0-AppType.snap]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities0-AppType.deb]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities0-AppType.pip]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities1-AppType.snap]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities1-AppType.deb]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities1-AppType.pip]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities2-AppType.snap]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities2-AppType.deb]
  ✅ test_mir_ci_server_can_be_found_by_capability[capabilities2-AppType.pip]
  ✅ test_mir_ci_server_cannot_be_found_if_it_lacks_capability[AppType.snap]
  ✅ test_mir_ci_server_cannot_be_found_if_it_lacks_capability[AppType.deb]
  ✅ test_mir_ci_server_cannot_be_found_if_it_lacks_capability[AppType.pip]

✅ test-results-ubuntu_frame-24_edge )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml

18 tests were completed in 121s with 17 passed, 0 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 17✅ 1⚪ 121s

✅ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[ubuntu_frame-wpe-webkit-mir-kiosk]
  ✅ test_app_can_run[ubuntu_frame-mir-kiosk-neverputt]
  ✅ test_app_can_run[ubuntu_frame-mir-kiosk-scummvm]
  ✅ test_app_can_run[ubuntu_frame-mir-kiosk-kodi]
  ✅ test_app_can_run[ubuntu_frame-pluma]
  ✅ test_app_can_run[ubuntu_frame-qterminal]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[ubuntu_frame]
tests.test_osk.TestOSK
  ✅ test_osk_typing[pluma-ubuntu-frame-osk-ubuntu_frame-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-ubuntu_frame-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-ubuntu_frame]
  ✅ test_active_app[mir-kiosk-neverputt-ubuntu_frame]
  ✅ test_compositor_alone[ubuntu_frame]
  ✅ test_inactive_app[qterminal-ubuntu_frame]
  ✅ test_inactive_app[pluma-ubuntu_frame]
  ✅ test_inactive_app[mir-kiosk-kodi-ubuntu_frame]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[ubuntu_frame]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[ubuntu_frame]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-ubuntu_frame]

❌ test-results-ubuntu_frame-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml

18 tests were completed in 120s with 15 passed, 2 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 15✅ 2❌ 1⚪ 120s

❌ pytest

tests.test_apps_can_run.TestAppsCanRun
  ✅ test_app_can_run[ubuntu_frame-wpe-webkit-mir-kiosk]
  ❌ test_app_can_run[ubuntu_frame-mir-kiosk-neverputt]
	self = <mir_ci.lib.cgroups.Cgroup object at 0x7f20ea6d3350>
  ✅ test_app_can_run[ubuntu_frame-mir-kiosk-scummvm]
  ✅ test_app_can_run[ubuntu_frame-mir-kiosk-kodi]
  ✅ test_app_can_run[ubuntu_frame-pluma]
  ✅ test_app_can_run[ubuntu_frame-qterminal]
tests.test_drag_and_drop.TestDragAndDrop
  ✅ test_drag_and_drop[ubuntu_frame]
tests.test_osk.TestOSK
  ✅ test_osk_typing[pluma-ubuntu-frame-osk-ubuntu_frame-wayland]
  ⚪ test_osk_typing[pluma-ubuntu-frame-osk-ubuntu_frame-zapper]
tests.test_screencopy_bandwidth.TestScreencopyBandwidth
  ✅ test_active_app[asciinema-ubuntu_frame]
  ❌ test_active_app[mir-kiosk-neverputt-ubuntu_frame]
	self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f20ea830790>
  ✅ test_compositor_alone[ubuntu_frame]
  ✅ test_inactive_app[qterminal-ubuntu_frame]
  ✅ test_inactive_app[pluma-ubuntu_frame]
  ✅ test_inactive_app[mir-kiosk-kodi-ubuntu_frame]
tests.test_server.TestServerCanRun
  ✅ test_server_can_run[ubuntu_frame]
tests.test_tests.TestDisplayServer
  ✅ test_can_get_cgroup[ubuntu_frame]
tests.test_vnc.TestVnc
  ✅ test_vnc[qterminal-ubuntu_frame]

Annotations

Check failure on line 0 in test-results-gnome_shell/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-gnome_shell-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_apps_can_run.TestAppsCanRun ► test_app_can_run[gnome_shell-wpe-webkit-mir-kiosk]

Failed test found in:
  test-results-gnome_shell/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-gnome_shell-.xml
Error:
  self = <test_apps_can_run.TestAppsCanRun object at 0x7f4daed59c10>
Raw output
self = <test_apps_can_run.TestAppsCanRun object at 0x7f4daed59c10>
any_server = <mir_ci.program.app.App object at 0x7f4daeb9fb90>
app = <mir_ci.program.app.App object at 0x7f4daed3ccd0>
record_property = <function record_property.<locals>.append_property at 0x7f4daeb5aca0>

    @pytest.mark.smoke
    @pytest.mark.parametrize(
        "app",
        [
            apps.wpe(),
            apps.snap("mir-kiosk-neverputt"),
            apps.snap("mir-kiosk-scummvm"),
            apps.snap("mir-kiosk-kodi"),
            apps.pluma(),
            apps.qterminal(),
        ],
    )
    async def test_app_can_run(self, any_server, app, record_property) -> None:
        server_instance = DisplayServer(any_server)
        program = server_instance.program(app)
        benchmarker = Benchmarker(OrderedDict(compositor=server_instance, client=program), poll_time_seconds=0.1)
>       async with benchmarker:

tests/test_apps_can_run.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
lib/benchmarker.py:40: in __aenter__
    raise e
lib/benchmarker.py:34: in __aenter__
    await program.__aenter__()
program/display_server.py:81: in __aenter__
    raise e
program/display_server.py:78: in __aenter__
    wait_for_wayland_display(runtime_dir, self.display_name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

runtime_dir = '/run/user/1001', name = 'wayland-0017663'

    def wait_for_wayland_display(runtime_dir: str, name: str) -> None:
        i = inotify.adapters.Inotify()
        i.add_watch(runtime_dir, mask=inotify.constants.IN_CREATE)
        # Check if display has already appeared Since we've already created the watch it might be seen
        # by both this check and inotify, but there's no way it's seen by neither.
        if os.path.exists(os.path.join(runtime_dir, name)):
            return
        # Wait for display to appear
        for event in i.event_gen(timeout_s=display_appear_timeout, yield_nones=False):
            (_, type_names, path, filename) = event
            if filename == name:
                return
>       raise RuntimeError("Wayland display " + name + " did not appear")
E       RuntimeError: Wayland display wayland-0017663 did not appear

program/display_server.py:41: RuntimeError

Check failure on line 0 in test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_apps_can_run.TestAppsCanRun ► test_app_can_run[mir_demo_server-mir-kiosk-neverputt]

Failed test found in:
  test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml
Error:
  self = <mir_ci.lib.cgroups.Cgroup object at 0x7f7e3e3fef90>
Raw output
self = <mir_ci.lib.cgroups.Cgroup object at 0x7f7e3e3fef90>

    def get_cpu_time_microseconds(self) -> int:
        try:
>           for line in self._read_file("cpu.stat"):

lib/cgroups.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.cgroups.Cgroup object at 0x7f7e3e3fef90>
file_name = 'cpu.stat'

    def _read_file(self, file_name: str) -> Iterator[str]:
        file_path = f"{self.path}/{file_name}"
>       with open(file_path, "r") as file:
E       FileNotFoundError: [Errno 2] No such file or directory: '/sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-aed7fbbb-14fc-49bf-8293-a311f494920e.scope/cpu.stat'

lib/cgroups.py:46: FileNotFoundError

The above exception was the direct cause of the following exception:

self = <mir_ci.lib.benchmarker.CgroupsBackend object at 0x7f7e3e3ff110>

    async def poll(self) -> None:
        for name, info in self.data_records.items():
            try:
                cgroup = await info.program.get_cgroup()
>               cpu_ms = cgroup.get_cpu_time_microseconds()

lib/benchmarker.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.cgroups.Cgroup object at 0x7f7e3e3fef90>

    def get_cpu_time_microseconds(self) -> int:
        try:
            for line in self._read_file("cpu.stat"):
                split_line = line.split(" ")
                if split_line[0] == "usage_usec":
                    return int(split_line[1])
    
            raise RuntimeError("usage_usec line not found")
        except Exception as ex:
>           raise RuntimeError(f"Unable to get the cpu time for cgroup: {self.path}") from ex
E           RuntimeError: Unable to get the cpu time for cgroup: /sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-aed7fbbb-14fc-49bf-8293-a311f494920e.scope

lib/cgroups.py:58: RuntimeError

During handling of the above exception, another exception occurred:

self = <mir_ci.lib.benchmarker.Benchmarker object at 0x7f7e3e3fe110>
args = (None, None, None)
exs = [AssertionError('mir-kiosk-neverputt died without being waited for or killed')]
program = <mir_ci.program.display_server.DisplayServer object at 0x7f7e3e3fe1d0>

    async def __aexit__(self, *args):
        if self.running is False:
            return
    
        self.running = False
        try:
            if self.task:
                self.task.cancel()
                with suppress(asyncio.CancelledError):
                    await self.task
        except Exception as e:
>           raise e

lib/benchmarker.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
lib/benchmarker.py:54: in __aexit__
    await self.task
lib/benchmarker.py:24: in _run
    await self.backend.poll()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.benchmarker.CgroupsBackend object at 0x7f7e3e3ff110>

    async def poll(self) -> None:
        for name, info in self.data_records.items():
            try:
                cgroup = await info.program.get_cgroup()
                cpu_ms = cgroup.get_cpu_time_microseconds()
                mem_current = cgroup.get_current_memory()
                try:
                    mem_max = cgroup.get_peak_memory()
                except RuntimeError:
                    mem_max = max(self.data_records[name].mem_bytes_max, mem_current)
            except RuntimeError as ex:
>               warnings.warn(f"Ignoring cgroup read failure: {ex}")
E               UserWarning: Ignoring cgroup read failure: Unable to get the cpu time for cgroup: /sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-aed7fbbb-14fc-49bf-8293-a311f494920e.scope

lib/benchmarker.py:101: UserWarning

During handling of the above exception, another exception occurred:

self = <test_apps_can_run.TestAppsCanRun object at 0x7f7e3e55ed50>
any_server = <mir_ci.program.app.App object at 0x7f7e3e3ff210>
app = <mir_ci.program.app.App object at 0x7f7e3e54f590>
record_property = <function record_property.<locals>.append_property at 0x7f7e3df02a20>

    @pytest.mark.smoke
    @pytest.mark.parametrize(
        "app",
        [
            apps.wpe(),
            apps.snap("mir-kiosk-neverputt"),
            apps.snap("mir-kiosk-scummvm"),
            apps.snap("mir-kiosk-kodi"),
            apps.pluma(),
            apps.qterminal(),
        ],
    )
    async def test_app_can_run(self, any_server, app, record_property) -> None:
        server_instance = DisplayServer(any_server)
        program = server_instance.program(app)
        benchmarker = Benchmarker(OrderedDict(compositor=server_instance, client=program), poll_time_seconds=0.1)
>       async with benchmarker:

tests/test_apps_can_run.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.benchmarker.Benchmarker object at 0x7f7e3e3fe110>
args = (None, None, None)
exs = [AssertionError('mir-kiosk-neverputt died without being waited for or killed')]
program = <mir_ci.program.display_server.DisplayServer object at 0x7f7e3e3fe1d0>

    async def __aexit__(self, *args):
        if self.running is False:
            return
    
        self.running = False
        try:
            if self.task:
                self.task.cancel()
                with suppress(asyncio.CancelledError):
                    await self.task
        except Exception as e:
            raise e
        finally:
            exs = []
            for program in self.running_programs:
                try:
                    await program.__aexit__()
                except Exception as e:
                    exs.append(e)
            if exs:
>               raise Exception("; ".join(str(ex) for ex in (exs)))
E               Exception: mir-kiosk-neverputt died without being waited for or killed

lib/benchmarker.py:65: Exception

Check failure on line 0 in test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_screencopy_bandwidth.TestScreencopyBandwidth ► test_active_app[mir-kiosk-neverputt-mir_demo_server]

Failed test found in:
  test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml
Error:
  self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f7e3e3577d0>
Raw output
self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f7e3e3577d0>
record_property = <function record_property.<locals>.append_property at 0x7f7e3dfdf100>
server = <mir_ci.program.display_server.DisplayServer object at 0x7f7e3dfb3010>
app = <mir_ci.program.app.App object at 0x7f7e3e352c50>

    @pytest.mark.parametrize("server", servers.servers(servers.ServerCap.SCREENCOPY))
    @pytest.mark.parametrize(
        "app",
        [
            apps.qterminal(
                "--execute",
                f"python3 -m asciinema play {ASCIINEMA_CAST}",
                pip_pkgs=("asciinema",),
                id="asciinema",
                extra=20 + SLOWDOWN,
            ),
            apps.snap("mir-kiosk-neverputt", extra=False),
        ],
    )
    async def test_active_app(self, record_property, server, app) -> None:
        server = DisplayServer(server, add_extensions=ScreencopyTracker.required_extensions)
        tracker = ScreencopyTracker(server.display_name)
>       async with server as s, tracker, s.program(App(app.command[0], app.app_type)) as p:

tests/test_screencopy_bandwidth.py:45: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.program.program.Program object at 0x7f7e3dfe53d0>
args = (None, None, None)

    async def __aexit__(self, *args) -> None:
        if self.cgroups_task:
            self.cgroups_task.cancel()
    
        if self.process_end is not None:
            if not self.is_running():
                await self.process_end
>               raise AssertionError(f"{self.name} died without being waited for or killed")
E               AssertionError: mir-kiosk-neverputt died without being waited for or killed

program/program.py:153: AssertionError

Check failure on line 0 in test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_screencopy_bandwidth.TestScreencopyBandwidth ► test_inactive_app[mir-kiosk-kodi-mir_demo_server]

Failed test found in:
  test-results-mir_demo_server/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_demo_server-.xml
Error:
  self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f7e3e371c90>
Raw output
self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f7e3e371c90>
record_property = <function record_property.<locals>.append_property at 0x7f7e3dfddd00>
server = <mir_ci.program.display_server.DisplayServer object at 0x7f7e3cd52bd0>
app = <mir_ci.program.app.App object at 0x7f7e3e353e90>

    @pytest.mark.parametrize("server", servers.servers(servers.ServerCap.SCREENCOPY))
    @pytest.mark.parametrize(
        "app",
        [
            apps.qterminal(),
            apps.pluma(),
            apps.snap("mir-kiosk-kodi"),
        ],
    )
    async def test_inactive_app(self, record_property, server, app) -> None:
        server = DisplayServer(server, add_extensions=ScreencopyTracker.required_extensions)
        tracker = ScreencopyTracker(server.display_name)
>       async with server as s, tracker, s.program(app):

tests/test_screencopy_bandwidth.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.program.program.Program object at 0x7f7e3cd08390>
args = (None, None, None)

    async def __aexit__(self, *args) -> None:
        if self.cgroups_task:
            self.cgroups_task.cancel()
    
        if self.process_end is not None:
            if not self.is_running():
                await self.process_end
>               raise AssertionError(f"{self.name} died without being waited for or killed")
E               AssertionError: mir-kiosk-kodi died without being waited for or killed

program/program.py:153: AssertionError

Check failure on line 0 in test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_apps_can_run.TestAppsCanRun ► test_app_can_run[mir_test_tools-mir-kiosk-neverputt]

Failed test found in:
  test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml
Error:
  self = <mir_ci.lib.cgroups.Cgroup object at 0x7fe461b07ed0>
Raw output
self = <mir_ci.lib.cgroups.Cgroup object at 0x7fe461b07ed0>

    def get_cpu_time_microseconds(self) -> int:
        try:
>           for line in self._read_file("cpu.stat"):

lib/cgroups.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.cgroups.Cgroup object at 0x7fe461b07ed0>
file_name = 'cpu.stat'

    def _read_file(self, file_name: str) -> Iterator[str]:
        file_path = f"{self.path}/{file_name}"
>       with open(file_path, "r") as file:
E       FileNotFoundError: [Errno 2] No such file or directory: '/sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-93333414-92db-45ce-9eb9-c9ee2021fc06.scope/cpu.stat'

lib/cgroups.py:46: FileNotFoundError

The above exception was the direct cause of the following exception:

self = <mir_ci.lib.benchmarker.CgroupsBackend object at 0x7fe461b07110>

    async def poll(self) -> None:
        for name, info in self.data_records.items():
            try:
                cgroup = await info.program.get_cgroup()
>               cpu_ms = cgroup.get_cpu_time_microseconds()

lib/benchmarker.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.cgroups.Cgroup object at 0x7fe461b07ed0>

    def get_cpu_time_microseconds(self) -> int:
        try:
            for line in self._read_file("cpu.stat"):
                split_line = line.split(" ")
                if split_line[0] == "usage_usec":
                    return int(split_line[1])
    
            raise RuntimeError("usage_usec line not found")
        except Exception as ex:
>           raise RuntimeError(f"Unable to get the cpu time for cgroup: {self.path}") from ex
E           RuntimeError: Unable to get the cpu time for cgroup: /sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-93333414-92db-45ce-9eb9-c9ee2021fc06.scope

lib/cgroups.py:58: RuntimeError

During handling of the above exception, another exception occurred:

self = <mir_ci.lib.benchmarker.Benchmarker object at 0x7fe461b070d0>
args = (None, None, None)
exs = [AssertionError('mir-kiosk-neverputt died without being waited for or killed')]
program = <mir_ci.program.display_server.DisplayServer object at 0x7fe461b06f90>

    async def __aexit__(self, *args):
        if self.running is False:
            return
    
        self.running = False
        try:
            if self.task:
                self.task.cancel()
                with suppress(asyncio.CancelledError):
                    await self.task
        except Exception as e:
>           raise e

lib/benchmarker.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
lib/benchmarker.py:54: in __aexit__
    await self.task
lib/benchmarker.py:24: in _run
    await self.backend.poll()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.benchmarker.CgroupsBackend object at 0x7fe461b07110>

    async def poll(self) -> None:
        for name, info in self.data_records.items():
            try:
                cgroup = await info.program.get_cgroup()
                cpu_ms = cgroup.get_cpu_time_microseconds()
                mem_current = cgroup.get_current_memory()
                try:
                    mem_max = cgroup.get_peak_memory()
                except RuntimeError:
                    mem_max = max(self.data_records[name].mem_bytes_max, mem_current)
            except RuntimeError as ex:
>               warnings.warn(f"Ignoring cgroup read failure: {ex}")
E               UserWarning: Ignoring cgroup read failure: Unable to get the cpu time for cgroup: /sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-93333414-92db-45ce-9eb9-c9ee2021fc06.scope

lib/benchmarker.py:101: UserWarning

During handling of the above exception, another exception occurred:

self = <test_apps_can_run.TestAppsCanRun object at 0x7fe462163b10>
any_server = <mir_ci.program.app.App object at 0x7fe461b06dd0>
app = <mir_ci.program.app.App object at 0x7fe462147610>
record_property = <function record_property.<locals>.append_property at 0x7fe461b0ab60>

    @pytest.mark.smoke
    @pytest.mark.parametrize(
        "app",
        [
            apps.wpe(),
            apps.snap("mir-kiosk-neverputt"),
            apps.snap("mir-kiosk-scummvm"),
            apps.snap("mir-kiosk-kodi"),
            apps.pluma(),
            apps.qterminal(),
        ],
    )
    async def test_app_can_run(self, any_server, app, record_property) -> None:
        server_instance = DisplayServer(any_server)
        program = server_instance.program(app)
        benchmarker = Benchmarker(OrderedDict(compositor=server_instance, client=program), poll_time_seconds=0.1)
>       async with benchmarker:

tests/test_apps_can_run.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.benchmarker.Benchmarker object at 0x7fe461b070d0>
args = (None, None, None)
exs = [AssertionError('mir-kiosk-neverputt died without being waited for or killed')]
program = <mir_ci.program.display_server.DisplayServer object at 0x7fe461b06f90>

    async def __aexit__(self, *args):
        if self.running is False:
            return
    
        self.running = False
        try:
            if self.task:
                self.task.cancel()
                with suppress(asyncio.CancelledError):
                    await self.task
        except Exception as e:
            raise e
        finally:
            exs = []
            for program in self.running_programs:
                try:
                    await program.__aexit__()
                except Exception as e:
                    exs.append(e)
            if exs:
>               raise Exception("; ".join(str(ex) for ex in (exs)))
E               Exception: mir-kiosk-neverputt died without being waited for or killed

lib/benchmarker.py:65: Exception

Check failure on line 0 in test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_mir_flutter_app.TestMirFlutterApp ► test_mir_flutter_app[mir-test-tools-mir_test_tools]

Failed test found in:
  test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml
Error:
  self = <test_mir_flutter_app.TestMirFlutterApp object at 0x7fe461efe110>
Raw output
self = <test_mir_flutter_app.TestMirFlutterApp object at 0x7fe461efe110>
robot_log = PosixPath('log.html')
server = <mir_ci.program.app.App object at 0x7fe461efc550>
app = <mir_ci.program.program.Program object at 0x7fe46212c5d0>
tmp_path = PosixPath('/tmp/pytest-of-runner/pytest-1/test_mir_flutter_app_mir_test_0')

    async def test_mir_flutter_app(self, robot_log, server, app, tmp_path) -> None:
        extensions = VirtualPointer.required_extensions + ScreencopyTracker.required_extensions
        server_instance = DisplayServer(server, add_extensions=extensions)
        assets = collect_assets("wayland", ["kvm"], "mir_flutter_app")
    
        async with server_instance, server_instance.program(App(app.command[0], app.app_type)) as app:
            tuple((tmp_path / k).symlink_to(v) for k, v in assets.items())
            robot = server_instance.program(App(("robot", "-d", tmp_path, "--log", robot_log, tmp_path)))
            async with robot:
>               await robot.wait(120)

tests/test_mir_flutter_app.py:55: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.program.program.Program object at 0x7fe461b6b610>, timeout = 120
term_timeout = 10

    async def wait(self, timeout=default_wait_timeout, term_timeout=default_term_timeout) -> None:
        if self.is_running():
            self.send_signals_task = asyncio.create_task(self.send_kill_signals(timeout, term_timeout))
        if self.process_end is not None:
            await self.process_end
            self.process_end = None
            print("\n" + format_output(self.name, self.output))
            assert self.process
            if self.process.returncode != 0:
                message = self.name
                if self.sigkill_sent:
                    message += " refused to terminate"
                else:
                    message += " closed with exit code " + str(self.process.returncode)
>               raise ProgramError(message)
E               mir_ci.program.program.ProgramError: robot closed with exit code 16

program/program.py:97: ProgramError

Check failure on line 0 in test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_screencopy_bandwidth.TestScreencopyBandwidth ► test_active_app[mir-kiosk-neverputt-mir_test_tools]

Failed test found in:
  test-results-mir_test_tools-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-mir_test_tools-.xml
Error:
  self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7fe461f1f750>
Raw output
self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7fe461f1f750>
record_property = <function record_property.<locals>.append_property at 0x7fe461b2b4c0>
server = <mir_ci.program.display_server.DisplayServer object at 0x7fe461b6d250>
app = <mir_ci.program.app.App object at 0x7fe461f1a990>

    @pytest.mark.parametrize("server", servers.servers(servers.ServerCap.SCREENCOPY))
    @pytest.mark.parametrize(
        "app",
        [
            apps.qterminal(
                "--execute",
                f"python3 -m asciinema play {ASCIINEMA_CAST}",
                pip_pkgs=("asciinema",),
                id="asciinema",
                extra=20 + SLOWDOWN,
            ),
            apps.snap("mir-kiosk-neverputt", extra=False),
        ],
    )
    async def test_active_app(self, record_property, server, app) -> None:
        server = DisplayServer(server, add_extensions=ScreencopyTracker.required_extensions)
        tracker = ScreencopyTracker(server.display_name)
>       async with server as s, tracker, s.program(App(app.command[0], app.app_type)) as p:

tests/test_screencopy_bandwidth.py:45: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.program.program.Program object at 0x7fe461b71810>
args = (None, None, None)

    async def __aexit__(self, *args) -> None:
        if self.cgroups_task:
            self.cgroups_task.cancel()
    
        if self.process_end is not None:
            if not self.is_running():
                await self.process_end
>               raise AssertionError(f"{self.name} died without being waited for or killed")
E               AssertionError: mir-kiosk-neverputt died without being waited for or killed

program/program.py:153: AssertionError

Check failure on line 0 in test-results-ubuntu_frame-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_apps_can_run.TestAppsCanRun ► test_app_can_run[ubuntu_frame-mir-kiosk-neverputt]

Failed test found in:
  test-results-ubuntu_frame-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml
Error:
  self = <mir_ci.lib.cgroups.Cgroup object at 0x7f20ea6d3350>
Raw output
self = <mir_ci.lib.cgroups.Cgroup object at 0x7f20ea6d3350>

    def get_cpu_time_microseconds(self) -> int:
        try:
>           for line in self._read_file("cpu.stat"):

lib/cgroups.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.cgroups.Cgroup object at 0x7f20ea6d3350>
file_name = 'cpu.stat'

    def _read_file(self, file_name: str) -> Iterator[str]:
        file_path = f"{self.path}/{file_name}"
>       with open(file_path, "r") as file:
E       FileNotFoundError: [Errno 2] No such file or directory: '/sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-9622d2e0-c9e3-4797-bc27-6363e8e7ae04.scope/cpu.stat'

lib/cgroups.py:46: FileNotFoundError

The above exception was the direct cause of the following exception:

self = <mir_ci.lib.benchmarker.CgroupsBackend object at 0x7f20ea6d31d0>

    async def poll(self) -> None:
        for name, info in self.data_records.items():
            try:
                cgroup = await info.program.get_cgroup()
>               cpu_ms = cgroup.get_cpu_time_microseconds()

lib/benchmarker.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.cgroups.Cgroup object at 0x7f20ea6d3350>

    def get_cpu_time_microseconds(self) -> int:
        try:
            for line in self._read_file("cpu.stat"):
                split_line = line.split(" ")
                if split_line[0] == "usage_usec":
                    return int(split_line[1])
    
            raise RuntimeError("usage_usec line not found")
        except Exception as ex:
>           raise RuntimeError(f"Unable to get the cpu time for cgroup: {self.path}") from ex
E           RuntimeError: Unable to get the cpu time for cgroup: /sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-9622d2e0-c9e3-4797-bc27-6363e8e7ae04.scope

lib/cgroups.py:58: RuntimeError

During handling of the above exception, another exception occurred:

self = <mir_ci.lib.benchmarker.Benchmarker object at 0x7f20ea6d3190>
args = (None, None, None)
exs = [AssertionError('mir-kiosk-neverputt died without being waited for or killed')]
program = <mir_ci.program.display_server.DisplayServer object at 0x7f20ea6d3050>

    async def __aexit__(self, *args):
        if self.running is False:
            return
    
        self.running = False
        try:
            if self.task:
                self.task.cancel()
                with suppress(asyncio.CancelledError):
                    await self.task
        except Exception as e:
>           raise e

lib/benchmarker.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
lib/benchmarker.py:54: in __aexit__
    await self.task
lib/benchmarker.py:24: in _run
    await self.backend.poll()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.benchmarker.CgroupsBackend object at 0x7f20ea6d31d0>

    async def poll(self) -> None:
        for name, info in self.data_records.items():
            try:
                cgroup = await info.program.get_cgroup()
                cpu_ms = cgroup.get_cpu_time_microseconds()
                mem_current = cgroup.get_current_memory()
                try:
                    mem_max = cgroup.get_peak_memory()
                except RuntimeError:
                    mem_max = max(self.data_records[name].mem_bytes_max, mem_current)
            except RuntimeError as ex:
>               warnings.warn(f"Ignoring cgroup read failure: {ex}")
E               UserWarning: Ignoring cgroup read failure: Unable to get the cpu time for cgroup: /sys/fs/cgroup/user.slice/user-1001.slice/[email protected]/app.slice/snap.mir-kiosk-neverputt.mir-kiosk-neverputt-9622d2e0-c9e3-4797-bc27-6363e8e7ae04.scope

lib/benchmarker.py:101: UserWarning

During handling of the above exception, another exception occurred:

self = <test_apps_can_run.TestAppsCanRun object at 0x7f20eaa7dd10>
any_server = <mir_ci.program.app.App object at 0x7f20ea6d2e90>
app = <mir_ci.program.app.App object at 0x7f20eb490950>
record_property = <function record_property.<locals>.append_property at 0x7f20ea6d6b60>

    @pytest.mark.smoke
    @pytest.mark.parametrize(
        "app",
        [
            apps.wpe(),
            apps.snap("mir-kiosk-neverputt"),
            apps.snap("mir-kiosk-scummvm"),
            apps.snap("mir-kiosk-kodi"),
            apps.pluma(),
            apps.qterminal(),
        ],
    )
    async def test_app_can_run(self, any_server, app, record_property) -> None:
        server_instance = DisplayServer(any_server)
        program = server_instance.program(app)
        benchmarker = Benchmarker(OrderedDict(compositor=server_instance, client=program), poll_time_seconds=0.1)
>       async with benchmarker:

tests/test_apps_can_run.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.lib.benchmarker.Benchmarker object at 0x7f20ea6d3190>
args = (None, None, None)
exs = [AssertionError('mir-kiosk-neverputt died without being waited for or killed')]
program = <mir_ci.program.display_server.DisplayServer object at 0x7f20ea6d3050>

    async def __aexit__(self, *args):
        if self.running is False:
            return
    
        self.running = False
        try:
            if self.task:
                self.task.cancel()
                with suppress(asyncio.CancelledError):
                    await self.task
        except Exception as e:
            raise e
        finally:
            exs = []
            for program in self.running_programs:
                try:
                    await program.__aexit__()
                except Exception as e:
                    exs.append(e)
            if exs:
>               raise Exception("; ".join(str(ex) for ex in (exs)))
E               Exception: mir-kiosk-neverputt died without being waited for or killed

lib/benchmarker.py:65: Exception

Check failure on line 0 in test-results-ubuntu_frame-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml

See this annotation in the file changed.

@github-actions github-actions / Test results

pytest ► tests.test_screencopy_bandwidth.TestScreencopyBandwidth ► test_active_app[mir-kiosk-neverputt-ubuntu_frame]

Failed test found in:
  test-results-ubuntu_frame-stable )/home/runner/work/mir-ci/mir-ci/mir-ci/mir_ci/junit-ubuntu_frame-.xml
Error:
  self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f20ea830790>
Raw output
self = <test_screencopy_bandwidth.TestScreencopyBandwidth object at 0x7f20ea830790>
record_property = <function record_property.<locals>.append_property at 0x7f20ea6fd580>
server = <mir_ci.program.display_server.DisplayServer object at 0x7f20ea6e6490>
app = <mir_ci.program.app.App object at 0x7f20ea822cd0>

    @pytest.mark.parametrize("server", servers.servers(servers.ServerCap.SCREENCOPY))
    @pytest.mark.parametrize(
        "app",
        [
            apps.qterminal(
                "--execute",
                f"python3 -m asciinema play {ASCIINEMA_CAST}",
                pip_pkgs=("asciinema",),
                id="asciinema",
                extra=20 + SLOWDOWN,
            ),
            apps.snap("mir-kiosk-neverputt", extra=False),
        ],
    )
    async def test_active_app(self, record_property, server, app) -> None:
        server = DisplayServer(server, add_extensions=ScreencopyTracker.required_extensions)
        tracker = ScreencopyTracker(server.display_name)
>       async with server as s, tracker, s.program(App(app.command[0], app.app_type)) as p:

tests/test_screencopy_bandwidth.py:45: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <mir_ci.program.program.Program object at 0x7f20ea6e7a90>
args = (None, None, None)

    async def __aexit__(self, *args) -> None:
        if self.cgroups_task:
            self.cgroups_task.cancel()
    
        if self.process_end is not None:
            if not self.is_running():
                await self.process_end
>               raise AssertionError(f"{self.name} died without being waited for or killed")
E               AssertionError: mir-kiosk-neverputt died without being waited for or killed

program/program.py:153: AssertionError