I've seen very variable times for BufferQueueTest.* (as run by ctest) but I've not been able to reproduce this specific problem.
E.g.
$ bin/mir_unit_tests --gtest_filter=BufferQueueTest.compositor_never_owns_client_buffers --gtest_repeat=1000 | grep OK | sort --reverse --key=5.2 -b -n | tee tmp.txt | head
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (126 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (124 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (115 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (110 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (110 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (108 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (108 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (107 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (107 ms)
[ OK ] BufferQueueTest.compositor_never_owns_client_buffers (105 ms)
OTOH I've seen
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::logic_error> >'
what(): unexpected release: buffer was not given to compositor
I've seen very variable times for BufferQueueTest.* (as run by ctest) but I've not been able to reproduce this specific problem.
E.g.
$ bin/mir_unit_tests --gtest_ filter= BufferQueueTest .compositor_ never_owns_ client_ buffers --gtest_repeat=1000 | grep OK | sort --reverse --key=5.2 -b -n | tee tmp.txt | head .compositor_ never_owns_ client_ buffers (126 ms) .compositor_ never_owns_ client_ buffers (124 ms) .compositor_ never_owns_ client_ buffers (115 ms) .compositor_ never_owns_ client_ buffers (110 ms) .compositor_ never_owns_ client_ buffers (110 ms) .compositor_ never_owns_ client_ buffers (108 ms) .compositor_ never_owns_ client_ buffers (108 ms) .compositor_ never_owns_ client_ buffers (107 ms) .compositor_ never_owns_ client_ buffers (107 ms) .compositor_ never_owns_ client_ buffers (105 ms)
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
[ OK ] BufferQueueTest
OTOH I've seen
terminate called after throwing an instance of 'boost: :exception_ detail: :clone_ impl<boost: :exception_ detail: :error_ info_injector< std::logic_ error> >'
what(): unexpected release: buffer was not given to compositor