I've always seen this fail very occasionally, but it got much worse with the latest Chromium version for some reason. I'm seeing regular fails like this:
PASS : qml-api-test::WebView_executeEditingCommand::initTestCase()
127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
PASS : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_copy()
127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL! : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_cut() Compared values are not the same
Actual (): lorem ipsum
Expected ():
Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
127.0.0.1 - - [27/Jun/2016 21:14:54] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL! : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_erase() Compared values are not the same
Actual (): lorem ipsum
Expected ():
Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL! : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_paste() Compared values are not the same
Actual (): lorem ipsum
Expected (): foo bar baz
Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
PASS : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_selectAll()
127.0.0.1 - - [27/Jun/2016 21:14:55] "GET /tst_WebView_executeEditingCommand.html HTTP/1.1" 200 -
FAIL! : qml-api-test::WebView_executeEditingCommand::test_WebView_executeEditingCommand_undo_redo() Compared values are not the same
Actual ():
Expected (): lorem ipsum
Loc: [/home/chr1s/src/oxide/master/src/oxide/qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml(17)]
PASS : qml-api-test::WebView_executeEditingCommand::cleanupTestCase()
Totals: 4 passed, 4 failed, 0 skipped, 0 blacklisted
This is actually a race condition in the test. Basically, the failing tests do this:
- execute an editing command.
- read back the text area contents.
Both steps result in an IPC message being sent. However, the IPC message sent as a result of the first step goes through the input pipeline - this means that it gets bounced to the compositor thread and then back to the render thread so that it is delivered in order with input events.
This can result in the 2 IPC messages being delivered to the render thread out of order, and the test failing.