ustreamer: add test for ustreamer's python package

This commit is contained in:
Philippe Laflamme
2026-08-01 12:06:08 -04:00
parent 69264c54f0
commit f799111709
+29 -1
View File
@@ -1,4 +1,7 @@
{ pkgs, ... }:
let
test-output-filename = "snapshot.jpeg";
in
{
name = "ustreamer-vmtest";
nodes = {
@@ -43,13 +46,35 @@
formats/2/height = 480
formats/2/fps = 20/1, 15/2
'';
test-stream-name = "test_stream.jpeg";
test-ustreamer-python =
pkgs.writers.writePython3Bin "test-ustreamer-python"
{
libraries = [ pkgs.python3Packages.ustreamer ];
}
''
import ustreamer
with ustreamer.Memsink("${test-stream-name}") as sink:
frame = sink.wait_frame()
with open("${test-output-filename}", "wb") as file:
file.write(frame["data"])
'';
in
{
services.ustreamer = {
enable = true;
device = "/dev/video9";
extraArgs = [ "--device-timeout=8" ];
extraArgs = [
"--device-timeout=8"
"--sink=${test-stream-name}"
];
};
environment.systemPackages = [
test-ustreamer-python
];
networking.firewall.allowedTCPPorts = [ 8080 ];
boot.extraModulePackages = [ config.boot.kernelPackages.akvcam ];
@@ -68,5 +93,8 @@
client.wait_for_unit("multi-user.target")
client.succeed("curl http://camera:8080")
camera.succeed("test-ustreamer-python")
camera.wait_for_file('${test-output-filename}')
'';
}