-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Now that I've figured out how to dynamically import modules and use those modules as outputs, the next step is to ensure that these modules work as intended when being used by end users. NixOS offers a built-in testing solution that enables us to conveniently spin up virtual machines with a given configuration, then verify their correctness through python scripting. The lib.nix file in particular is based on Jörg Thalheim's very useful blog post that explains how to use the built-in testing functionality with Nix flakes, which isn't covered in official documentation. See: https://blog.thalheim.io/2023/01/08/how-to-use-nixos-testing-framework-with-flakes/
- Loading branch information
1 parent
1d165d3
commit 95b10ec
Showing
4 changed files
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# TODO: Write test to ensure that Hyprland starts with basic config | ||
(import ./lib.nix) { | ||
name = "hyprland"; | ||
|
||
nodes.machine = { self, pkgs, ... }: { | ||
imports = with self.nixosModules; [ | ||
hyprland | ||
]; | ||
}; | ||
|
||
testScript = /* python */ '' | ||
output = machine.succeed("echo 'Hello world'") | ||
assert "Hello world" in output | ||
''; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
test: { pkgs, self }: | ||
let | ||
inherit (pkgs) lib; | ||
nixos-lib = import (pkgs.path + "/nixos/lib") { }; | ||
in | ||
(nixos-lib.runTest { | ||
hostPkgs = pkgs; | ||
defaults.documentation.enable = lib.mkDefault false; | ||
node.specialArgs = { | ||
inherit self; | ||
}; | ||
imports = [ test ]; | ||
}).config.result |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# TODO: Ensure that neovim config works without errors on startup | ||
(import ./lib.nix) { | ||
name = "neovim"; | ||
|
||
nodes.machine = { self, pkgs, ... }: { | ||
imports = with self.nixosModules; [ | ||
neovim | ||
]; | ||
}; | ||
|
||
testScript = /* python */ '' | ||
output = machine.succeed("echo 'Hello world'") | ||
assert "Hello world" in output | ||
''; | ||
} |