All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 33s
				
			Test / Sandbox (push) Successful in 40s
				
			Test / Sandbox (race detector) (push) Successful in 39s
				
			Test / Hpkg (push) Successful in 41s
				
			Test / Hakurei (push) Successful in 2m29s
				
			Test / Hakurei (race detector) (push) Successful in 3m7s
				
			Test / Flake checks (push) Successful in 1m24s
				
			The hst package only deals with data serialisation, however since many parts of hakurei make use of C libraries in some way it can be easy to inadvertently depend on cgo. Signed-off-by: Ophestra <cat@gensokyo.uk>
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   nixosTest,
 | |
|   buildFHSEnv,
 | |
|   writeShellScriptBin,
 | |
| 
 | |
|   system,
 | |
|   self,
 | |
|   withRace ? false,
 | |
| }:
 | |
| 
 | |
| nixosTest {
 | |
|   name = "hakurei" + (if withRace then "-race" else "");
 | |
|   nodes.machine =
 | |
|     { options, pkgs, ... }:
 | |
|     let
 | |
|       fhs =
 | |
|         let
 | |
|           hakurei = options.environment.hakurei.package.default;
 | |
|         in
 | |
|         buildFHSEnv {
 | |
|           pname = "hakurei-fhs";
 | |
|           inherit (hakurei) version;
 | |
|           targetPkgs = _: hakurei.targetPkgs;
 | |
|           extraOutputsToInstall = [ "dev" ];
 | |
|           profile = ''
 | |
|             export PKG_CONFIG_PATH="/usr/share/pkgconfig:$PKG_CONFIG_PATH"
 | |
|           '';
 | |
|         };
 | |
|     in
 | |
|     {
 | |
|       environment.systemPackages = [
 | |
|         # For go tests:
 | |
|         (writeShellScriptBin "hakurei-test" ''
 | |
|           # Assert hst CGO_ENABLED=0: ${
 | |
|             with pkgs;
 | |
|             runCommand "hakurei-hst-cgo" { nativeBuildInputs = [ go ]; } ''
 | |
|               cp -r ${options.environment.hakurei.package.default.src} "$out"
 | |
|               chmod -R +w "$out"
 | |
|               cp ${writeText "hst_cgo_test.go" ''package hakurei_test;import("testing";"hakurei.app/hst");func TestTemplate(t *testing.T){hst.Template()}''} "$out/hst_cgo_test.go"
 | |
|               (cd "$out" && HOME="$(mktemp -d)" CGO_ENABLED=0 go test .)
 | |
|             ''
 | |
|           }
 | |
| 
 | |
|           cd ${self.packages.${system}.hakurei.src}
 | |
|           ${fhs}/bin/hakurei-fhs -c \
 | |
|             'go test ${if withRace then "-race" else "-count 16"} ./...' \
 | |
|             &> /tmp/hakurei-test.log && \
 | |
|             touch /tmp/hakurei-test-ok
 | |
|           touch /tmp/hakurei-test-done
 | |
|         '')
 | |
|       ];
 | |
| 
 | |
|       # Run with Go race detector:
 | |
|       environment.hakurei = lib.mkIf withRace rec {
 | |
|         # race detector does not support static linking
 | |
|         package = (pkgs.callPackage ../package.nix { }).overrideAttrs (previousAttrs: {
 | |
|           GOFLAGS = previousAttrs.GOFLAGS ++ [ "-race" ];
 | |
|         });
 | |
|         hsuPackage = options.environment.hakurei.hsuPackage.default.override { hakurei = package; };
 | |
|       };
 | |
| 
 | |
|       imports = [
 | |
|         ./configuration.nix
 | |
| 
 | |
|         self.nixosModules.hakurei
 | |
|         self.inputs.home-manager.nixosModules.home-manager
 | |
|       ];
 | |
|     };
 | |
| 
 | |
|   # adapted from nixos sway integration tests
 | |
| 
 | |
|   # testScriptWithTypes:49: error: Cannot call function of unknown type
 | |
|   #           (machine.succeed if succeed else machine.execute)(
 | |
|   #           ^
 | |
|   # Found 1 error in 1 file (checked 1 source file)
 | |
|   skipTypeCheck = true;
 | |
|   testScript = builtins.readFile ./test.py;
 | |
| }
 |