Skip to content

e2e-tests: Record an actual video of the test VM#1306

Merged
adombeck merged 11 commits intomainfrom
e2e-test-vnc-recording
Mar 11, 2026
Merged

e2e-tests: Record an actual video of the test VM#1306
adombeck merged 11 commits intomainfrom
e2e-test-vnc-recording

Conversation

@adombeck
Copy link
Copy Markdown
Contributor

@adombeck adombeck commented Mar 5, 2026

YARF combines the screenshots it takes for image matching into a video. That misses everything that happens in between those screenshots. Let's record an actual video of the VNC output instead.

Also log videos in the error message of the failing test case instead of the separate "Execution Errors" section.

UDENG-9379

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.44%. Comparing base (5576f3f) to head (7c4dbc2).
⚠️ Report is 41 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1306      +/-   ##
==========================================
+ Coverage   80.08%   86.44%   +6.36%     
==========================================
  Files          20       99      +79     
  Lines         984     6685    +5701     
  Branches        0      111     +111     
==========================================
+ Hits          788     5779    +4991     
- Misses        196      850     +654     
- Partials        0       56      +56     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@adombeck adombeck force-pushed the e2e-test-vnc-recording branch 10 times, most recently from 41163c7 to 15987cf Compare March 10, 2026 00:42
adombeck added 11 commits March 10, 2026 09:43
YARF combines the screenshots it takes for image matching into a video.
That misses everything that happens in between those screenshots. Let's
record an actual video of the VNC output instead.
By default, VNC viewers can ask the VNC server for an exclusive
connection. That would break YARF and the recording of the VNC output.
Setting the share policy of the VNC server to "force-shared" disallows
exclusive connections.
When using logger.error, the videos of all failing test cases are
printed in the separate "Execution Errors" section of the HTML log file,
without any context of which test case the video is from and the
relevant error messages which caused the test case to fail.

By using set_test_message, the video is printed as part of the error
message of the test case.
We use the filename as the titles of the videos. They look better in
uppercase.
Now that we use set_test_message instead of logger.error to log the
video, we can't use the 'console=False' argument anymore which we added
to Robot Framework. Work around that by filtering out the video from the
output of run-tests.sh.
We log a video ourselves in a better way.
Sometimes the commit status is not created. Let's see if retrying helps.
The name was a bit confusing because steps starting with "Post" are
usually from GitHub Actions using the 'runs.post' keyword to execute
steps at the end of the job.
Should help us debug the cases where the commit status is not created.
Avoid creating an error annotation:

   Process completed with exit code <exit code>

and instead create an error annotation with a link to the HTML logs.
Use a name that's consistent with the URL we use to publish the HTML
log.
@adombeck adombeck force-pushed the e2e-test-vnc-recording branch from 15987cf to 7c4dbc2 Compare March 11, 2026 11:03
@adombeck adombeck marked this pull request as ready for review March 11, 2026 11:05
@adombeck adombeck merged commit 7c4dbc2 into main Mar 11, 2026
19 of 26 checks passed
@adombeck adombeck deleted the e2e-test-vnc-recording branch March 11, 2026 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant