From 20c596c275668461b56f272efbdf7503111e5a4f Mon Sep 17 00:00:00 2001 From: Artturin Date: Fri, 16 Dec 2022 18:23:07 +0200 Subject: [PATCH] tests.splicing: add --- pkgs/test/default.nix | 2 ++ pkgs/test/splicing/default.nix | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 pkgs/test/splicing/default.nix diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index e72afbb39980114..114922bf7da3b96 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -46,6 +46,8 @@ with pkgs; cross = callPackage ./cross {}; + splicing = callPackage ./splicing {}; + php = recurseIntoAttrs (callPackages ./php {}); rustCustomSysroot = callPackage ./rust-sysroot {}; diff --git a/pkgs/test/splicing/default.nix b/pkgs/test/splicing/default.nix new file mode 100644 index 000000000000000..4ac88114b9c8c9d --- /dev/null +++ b/pkgs/test/splicing/default.nix @@ -0,0 +1,40 @@ +{ pkgs, stdenvNoCC, lib, }: +let + pkgsCross = pkgs.pkgsCross.aarch64-multiplatform.__splicedPackages; + tests = + let + pythonInNativeBuildInputs = lib.elemAt pkgsCross.python3Packages.xpybutil.nativeBuildInputs 0; + overridenAttr = pkgsCross.hello.overrideAttrs (_: { something = "hello"; }); + in + [ + ({ + name = "pythonInNativeBuildInputsShouldBeNative"; + expr = pythonInNativeBuildInputs.stdenv.hostPlatform.system == "x86_64-linux"; + expected = true; + }) + ({ + name = "overridenAttrShouldHaveSplicedAndSomething"; + expr = if overridenAttr ? __spliced then overridenAttr.something == overridenAttr.__spliced.buildHost.something else false; + expected = true; + }) + ({ + name = "splicedShouldBeOverriden"; + expr = pkgsCross.nix.aws-sdk-cpp.cmakeFlags == pkgsCross.nix.aws-sdk-cpp.__spliced.hostTarget.cmakeFlags; + expected = true; + }) + ({ + name = "notCrossOverriden"; + expr = (pkgs.hello.overrideAttrs (_: _: { passthru = { o = "works"; }; })) ? o; + expected = true; + }) + ]; +in +{ + test-splicing = stdenvNoCC.mkDerivation { + name = "test-splicing"; + passthru = { inherit tests; }; + buildCommand = '' + touch $out + '' + lib.concatMapStringsSep "\n" (t: "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${t.name} success') || (echo '${t.name} fail' && exit 1)") tests; + }; +}