Skip to content

Commit

Permalink
flake/tests: pass testProfile as a shared arg
Browse files Browse the repository at this point in the history
  • Loading branch information
NotAShelf committed May 6, 2024
1 parent c3c76af commit aa62e90
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 40 deletions.
39 changes: 3 additions & 36 deletions flake/tests/checks/homeManagerModule.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
inputs,
nixosTest,
homeManagerModules,
testProfile,
...
}:
nixosTest {
Expand All @@ -10,8 +11,8 @@ nixosTest {

nodes.machine = {
imports = [
testProfile
inputs.home-manager.nixosModules.home-manager
../profiles/minimal.nix
];

config = {
Expand All @@ -28,39 +29,5 @@ nixosTest {
};
};

testScript = ''
import subprocess
machine.wait_for_unit("default.target")
def check_errs(process):
# Check for errors
print("Connecting to Neovim process")
# Capture stdout and stderr
stdout, stderr = process.communicate()
# Print captured stdout and stderr
if stdout:
print("Captured stdout:")
print(stdout.decode('utf-8'))
if stderr:
print("Captured stderr:")
print(stderr.decode('utf-8'))
def run_neovim_headless():
print("Running Neovim in headless mode.")
# Run Neovim in headless mode
nvim_process = subprocess.Popen(['nvim', '--headless'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
check_errs(nvim_process)
# Load configuration file
nvim_process.stdin.write(b':NonExistentCommand\n')
nvim_process.stdin.flush()
# run Neovim in headless mode
# and expect it to return sucessfully
machine.succeed(run_neovim_headless())
'';
testScript = "";
}
39 changes: 37 additions & 2 deletions flake/tests/checks/nixosModule.nix
Original file line number Diff line number Diff line change
@@ -1,21 +1,56 @@
{
nixosTest,
nixosModules,
testProfile,
...
}:
nixosTest {
name = "nixos-test";

nodes.machine = {
imports = [
testProfile
nixosModules.nvf
../profiles/minimal.nix
];

config = {
programs.nvf.enable = true;
};
};

testScript = "";
testScript = ''
import subprocess
machine.wait_for_unit("default.target")
def check_errs(process):
# Check for errors
print("Connecting to Neovim process")
# Capture stdout and stderr
stdout, stderr = process.communicate()
# Print captured stdout and stderr
if stdout:
print("Captured stdout:")
print(stdout.decode('utf-8'))
if stderr:
print("Captured stderr:")
print(stderr.decode('utf-8'))
def run_neovim_headless():
print("Running Neovim in headless mode.")
# Run Neovim in headless mode
nvim_process = subprocess.Popen(['nvim', '--headless'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
check_errs(nvim_process)
# Load configuration file
nvim_process.stdin.write(b':NonExistentCommand\n')
nvim_process.stdin.flush()
# run Neovim in headless mode
# and expect it to return sucessfully
machine.succeed(run_neovim_headless())
'';
}
4 changes: 2 additions & 2 deletions flake/tests/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,20 @@
defaultInherits = {
inherit (config.flake) homeManagerModules nixosModules;
inherit inputs;
testProfile = ./profiles/minimal.nix;
};

callPackage = callPackageWith (recursiveUpdate pkgs defaultInherits);
in {
checks = packagesFromDirectoryRecursive {
inherit callPackage;
testProfile = ../profiles/minimal.nix;
directory = ./checks;
};

# expose checks as packages to be built
packages = {
test-home-manager-module = self'.checks.homeManagerModule.driverInteractive;
test-nixos-module = self'.checks.nixosModule.driverInteractive;
# test-nixos-module = self'.checks.nixosModule.driverInteractive;
};
};
}

0 comments on commit aa62e90

Please sign in to comment.