From dda934965dfa1beaede1f3b46ea730d1bab52c02 Mon Sep 17 00:00:00 2001 From: eldritch horrors Date: Thu, 26 Feb 2026 20:30:45 +0100 Subject: [PATCH] testing: migrate build-jobless.sh Change-Id: Ica9a0c5b8bea50d302ad633d3801431adcdba5e7 --- tests/functional/build-jobless.sh | 22 ------------ tests/functional/meson.build | 1 - tests/functional2/build/test_build_jobless.py | 34 +++++++++++++++++++ 3 files changed, 34 insertions(+), 23 deletions(-) delete mode 100644 tests/functional/build-jobless.sh create mode 100644 tests/functional2/build/test_build_jobless.py diff --git a/tests/functional/build-jobless.sh b/tests/functional/build-jobless.sh deleted file mode 100644 index 9bf850009..000000000 --- a/tests/functional/build-jobless.sh +++ /dev/null @@ -1,22 +0,0 @@ -source common.sh - -drv=' -builtins.derivation { - name = "foo"; - builder = /bin/sh; - system = builtins.currentSystem; - requiredSystemFeatures = [ "glitter" ]; -} -' - -# -j0 without remote machines diagnoses build start failure -! out="$(nix-build 2>&1 -j0 --expr "$drv" \ - --builders '' \ - --system-features 'glitter')" -<<<"$out" grepQuiet 'error: unable to start any build; either set '\''--max-jobs'\'' to a non-zero value or enable remote builds.' - -# -j0 with remote machines and missing features also diagnoses -! out="$(nix-build 2>&1 -j0 --expr "$drv" \ - --builders "ssh://localhost?remote-store=$TEST_ROOT/machine1" \ - --system-features 'glitter')" -<<<"$out" grepQuiet 'error: unable to start any build; remote machines may not have all required system features.' diff --git a/tests/functional/meson.build b/tests/functional/meson.build index dbec7690b..c63b72e50 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -75,7 +75,6 @@ functional_tests_scripts = [ 'dependencies.sh', 'check-reqs.sh', 'build-remote-content-addressed-fixed.sh', - 'build-jobless.sh', 'nar-access.sh', 'repl.sh', 'binary-cache-build-remote.sh', diff --git a/tests/functional2/build/test_build_jobless.py b/tests/functional2/build/test_build_jobless.py new file mode 100644 index 000000000..e972fde75 --- /dev/null +++ b/tests/functional2/build/test_build_jobless.py @@ -0,0 +1,34 @@ +import pytest +from testlib.fixtures.nix import Nix + + +drv = """ + builtins.derivation { + name = "foo"; + builder = /bin/sh; + system = builtins.currentSystem; + requiredSystemFeatures = [ "glitter" ]; + } +""" + + +@pytest.fixture(autouse=True) +def set_features(nix: Nix): + nix.settings.system_features = "glitter" + + +def test_j0_without_remotes_fails(nix: Nix): + result = nix.nix_build(["-j0", "--expr", drv, "--builders", ""]).run().expect(1) + assert ( + "error: unable to start any build; either set '--max-jobs' to a non-zero value or enable remote builds." + in result.stderr_s + ) + + +def test_j0_with_mismatched_remotes_fails(nix: Nix): + remote = f"ssh://localhost?remote-store={nix.env.dirs.home}/machine1" + result = nix.nix_build(["-j0", "--expr", drv, "--builders", remote]).run().expect(1) + assert ( + "error: unable to start any build; remote machines may not have all required system features." + in result.stderr_s + )