summaryrefslogtreecommitdiffstats
path: root/nixos/tests/gopro-tool.nix
blob: e52a6106ee41e329d6faa5926849e62f6d049bf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{ lib, pkgs, ... }:

let
  testScript = ''
    start_all()

    machine.wait_for_unit("multi-user.target")

    # Check that gopro-tool is installed
    machine.succeed("which gopro-tool")

    # Check that the v4l2loopback module is available
    machine.succeed("lsmod | grep v4l2loopback || echo 'Module not found'")

    # Check that VLC is installed
    machine.succeed("which vlc")
  '';
in
{
  name = "gopro-tool";
  meta.maintainers = with lib.maintainers; [ ZMon3y ];
  nodes.machine =
    { config, pkgs, ... }:
    {
      # Ensure dependencies are installed
      environment.systemPackages = with pkgs; [
        gopro-tool
        vlc
      ];

      # Load kernel module for testing
      boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];

      # Enable module loading
      boot.kernelModules = [ "v4l2loopback" ];
    };

  testScript = testScript;
}