mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 16:33:15 +00:00
nixos/tests/mediamtx: make more robust, reformat
We're sleeping now until the timeout of the receive service is reached to check for its state since it might fail until the stream is available.
This commit is contained in:
parent
a8a3cf536e
commit
8e7ebfe4f5
@ -1,57 +1,60 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ...} :
|
||||
import ./make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
name = "mediamtx";
|
||||
meta.maintainers = with lib.maintainers; [ fpletz ];
|
||||
{
|
||||
name = "mediamtx";
|
||||
meta.maintainers = with lib.maintainers; [ fpletz ];
|
||||
|
||||
nodes = {
|
||||
machine = { config, ... }: {
|
||||
services.mediamtx = {
|
||||
enable = true;
|
||||
settings = {
|
||||
metrics = true;
|
||||
paths.all.source = "publisher";
|
||||
nodes = {
|
||||
machine = {
|
||||
services.mediamtx = {
|
||||
enable = true;
|
||||
settings = {
|
||||
metrics = true;
|
||||
paths.all.source = "publisher";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.rtmp-publish = {
|
||||
description = "Publish an RTMP stream to mediamtx";
|
||||
after = [ "mediamtx.service" ];
|
||||
bindsTo = [ "mediamtx.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
TimeoutStartSec = "10s";
|
||||
ExecStart = "${lib.getBin pkgs.ffmpeg-headless}/bin/ffmpeg -re -f lavfi -i smptebars=size=800x600:rate=10 -c libx264 -f flv rtmp://localhost:1935/test";
|
||||
systemd.services.rtmp-publish = {
|
||||
description = "Publish an RTMP stream to mediamtx";
|
||||
after = [ "mediamtx.service" ];
|
||||
bindsTo = [ "mediamtx.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
TimeoutStartSec = "10s";
|
||||
ExecStart = "${lib.getBin pkgs.ffmpeg-headless}/bin/ffmpeg -re -f lavfi -i smptebars=size=800x600:rate=10 -c libx264 -f flv rtmp://localhost:1935/test";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.rtmp-receive = {
|
||||
description = "Receive an RTMP stream from mediamtx";
|
||||
after = [ "rtmp-publish.service" ];
|
||||
bindsTo = [ "rtmp-publish.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
TimeoutStartSec = "10s";
|
||||
ExecStart = "${lib.getBin pkgs.ffmpeg-headless}/bin/ffmpeg -y -re -i rtmp://localhost:1935/test -f flv /dev/null";
|
||||
systemd.services.rtmp-receive = {
|
||||
description = "Receive an RTMP stream from mediamtx";
|
||||
after = [ "rtmp-publish.service" ];
|
||||
bindsTo = [ "rtmp-publish.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
TimeoutStartSec = "10s";
|
||||
ExecStart = "${lib.getBin pkgs.ffmpeg-headless}/bin/ffmpeg -y -re -i rtmp://localhost:1935/test -f flv /dev/null";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("mediamtx.service")
|
||||
machine.wait_for_unit("rtmp-publish.service")
|
||||
machine.wait_for_unit("rtmp-receive.service")
|
||||
machine.wait_for_open_port(9998)
|
||||
machine.succeed("curl http://localhost:9998/metrics | grep '^rtmp_conns.*state=\"publish\".*1$'")
|
||||
machine.succeed("curl http://localhost:9998/metrics | grep '^rtmp_conns.*state=\"read\".*1$'")
|
||||
'';
|
||||
})
|
||||
machine.wait_for_unit("mediamtx.service")
|
||||
machine.wait_for_unit("rtmp-publish.service")
|
||||
machine.sleep(10)
|
||||
machine.wait_for_unit("rtmp-receive.service")
|
||||
machine.wait_for_open_port(9998)
|
||||
machine.succeed("curl http://localhost:9998/metrics | grep '^rtmp_conns.*state=\"publish\".*1$'")
|
||||
machine.succeed("curl http://localhost:9998/metrics | grep '^rtmp_conns.*state=\"read\".*1$'")
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user