From b7a4f78fcb00c44e5e5b1bf480f8ef59baac2724 Mon Sep 17 00:00:00 2001 From: Piotr Kwiecinski <2151333+piotrkwiecinski@users.noreply.github.com> Date: Wed, 2 Apr 2025 17:19:19 +0200 Subject: [PATCH] nixosTests.docker-tools-cross: migrate to runTestOn Part of #386873 --- nixos/tests/all-tests.nix | 2 +- nixos/tests/docker-tools-cross.nix | 134 ++++++++++++++--------------- 2 files changed, 67 insertions(+), 69 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index ea46753b748c..3b0138e43a7e 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -374,7 +374,7 @@ in docker-registry = runTest ./docker-registry.nix; docker-tools = handleTestOn [ "x86_64-linux" ] ./docker-tools.nix { }; docker-tools-nix-shell = runTest ./docker-tools-nix-shell.nix; - docker-tools-cross = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./docker-tools-cross.nix { }; + docker-tools-cross = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./docker-tools-cross.nix; docker-tools-overlay = runTestOn [ "x86_64-linux" ] ./docker-tools-overlay.nix; docling-serve = runTest ./docling-serve.nix; documize = handleTest ./documize.nix { }; diff --git a/nixos/tests/docker-tools-cross.nix b/nixos/tests/docker-tools-cross.nix index e2508be134f0..afd78223e857 100644 --- a/nixos/tests/docker-tools-cross.nix +++ b/nixos/tests/docker-tools-cross.nix @@ -2,83 +2,81 @@ # tests that _include_ running the result are separate. That way, most people # can run the majority of the test suite without the extra setup. -import ./make-test-python.nix ( - { pkgs, ... }: - let +{ pkgs, ... }: +let - remoteSystem = - if pkgs.stdenv.hostPlatform.system == "aarch64-linux" then "x86_64-linux" else "aarch64-linux"; + remoteSystem = + if pkgs.stdenv.hostPlatform.system == "aarch64-linux" then "x86_64-linux" else "aarch64-linux"; - remoteCrossPkgs = - import ../.. # nixpkgs - { - # NOTE: This is the machine that runs the build - local from the - # 'perspective' of the build script. - localSystem = remoteSystem; + remoteCrossPkgs = + import ../.. # nixpkgs + { + # NOTE: This is the machine that runs the build - local from the + # 'perspective' of the build script. + localSystem = remoteSystem; - # NOTE: Since this file can't control where the test will be _run_ we don't - # cross-compile _to_ a different system but _from_ a different system - crossSystem = pkgs.stdenv.hostPlatform.system; - }; - - hello1 = remoteCrossPkgs.dockerTools.buildImage { - name = "hello1"; - tag = "latest"; - copyToRoot = remoteCrossPkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ remoteCrossPkgs.hello ]; + # NOTE: Since this file can't control where the test will be _run_ we don't + # cross-compile _to_ a different system but _from_ a different system + crossSystem = pkgs.stdenv.hostPlatform.system; }; - }; - hello2 = remoteCrossPkgs.dockerTools.buildLayeredImage { - name = "hello2"; - tag = "latest"; - contents = remoteCrossPkgs.hello; + hello1 = remoteCrossPkgs.dockerTools.buildImage { + name = "hello1"; + tag = "latest"; + copyToRoot = remoteCrossPkgs.buildEnv { + name = "image-root"; + pathsToLink = [ "/bin" ]; + paths = [ remoteCrossPkgs.hello ]; }; + }; - in - { - name = "docker-tools"; - meta = with pkgs.lib.maintainers; { - maintainers = [ roberth ]; - }; + hello2 = remoteCrossPkgs.dockerTools.buildLayeredImage { + name = "hello2"; + tag = "latest"; + contents = remoteCrossPkgs.hello; + }; - nodes = { - docker = - { ... }: - { - virtualisation = { - diskSize = 2048; - docker.enable = true; - }; +in +{ + name = "docker-tools"; + meta = with pkgs.lib.maintainers; { + maintainers = [ roberth ]; + }; + + nodes = { + docker = + { ... }: + { + virtualisation = { + diskSize = 2048; + docker.enable = true; }; - }; + }; + }; - testScript = '' - docker.wait_for_unit("sockets.target") + testScript = '' + docker.wait_for_unit("sockets.target") - with subtest("Ensure cross compiled buildImage image can run."): - docker.succeed( - "docker load --input='${hello1}'" - ) - assert "Hello, world!" in docker.succeed( - "docker run --rm ${hello1.imageName} hello", - ) - docker.succeed( - "docker rmi ${hello1.imageName}", - ) + with subtest("Ensure cross compiled buildImage image can run."): + docker.succeed( + "docker load --input='${hello1}'" + ) + assert "Hello, world!" in docker.succeed( + "docker run --rm ${hello1.imageName} hello", + ) + docker.succeed( + "docker rmi ${hello1.imageName}", + ) - with subtest("Ensure cross compiled buildLayeredImage image can run."): - docker.succeed( - "docker load --input='${hello2}'" - ) - assert "Hello, world!" in docker.succeed( - "docker run --rm ${hello2.imageName} hello", - ) - docker.succeed( - "docker rmi ${hello2.imageName}", - ) - ''; - } -) + with subtest("Ensure cross compiled buildLayeredImage image can run."): + docker.succeed( + "docker load --input='${hello2}'" + ) + assert "Hello, world!" in docker.succeed( + "docker run --rm ${hello2.imageName} hello", + ) + docker.succeed( + "docker rmi ${hello2.imageName}", + ) + ''; +}