47 lines
1.2 KiB
Nix
47 lines
1.2 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
# Create pkgs with list-usb-drives overlay
|
|
testPkgs = import inputs.nixpkgs {
|
|
system = pkgs.system;
|
|
overlays = [ (import ../overlays.nix) ];
|
|
};
|
|
in
|
|
testPkgs.testers.runNixOSTest {
|
|
name = "list-usb-drives test";
|
|
|
|
nodes.machine =
|
|
{ pkgs, ... }:
|
|
{
|
|
environment.systemPackages = [
|
|
testPkgs.list-usb-drives
|
|
];
|
|
};
|
|
|
|
testScript = ''
|
|
start_all()
|
|
machine.wait_for_unit("multi-user.target")
|
|
|
|
# Create mock USB device symlinks
|
|
machine.succeed("mkdir -p /tmp/mock-by-id")
|
|
machine.succeed("touch /tmp/mock-by-id/usb-drive1-0:0")
|
|
machine.succeed("touch /tmp/mock-by-id/usb-drive2-0:1")
|
|
machine.succeed("touch /tmp/mock-by-id/usb-drive1-0:0-part1") # Should be filtered out
|
|
|
|
# Test with mock data
|
|
mock_data = "drive1:Model1 Serial1|drive2:Model2 Serial2"
|
|
output = machine.succeed(f"LIST_USB_DRIVES_DISK_DIR=/tmp/mock-by-id LIST_USB_DRIVES_TEST_MODE=1 LIST_USB_DRIVES_MOCK_DATA='{mock_data}' list-usb-drives")
|
|
|
|
# Expected exact output
|
|
expected = 'DRIVE BAY\nModel1_Serial1 0"\nModel2_Serial2 1"\n'
|
|
|
|
assert output == expected
|
|
print("✓ Mock USB device test passed")
|
|
'';
|
|
}
|