Loading pkgs/development/compilers/dotnet/common.nix +46 −10 Original line number Diff line number Diff line # TODO: switch to stdenvNoCC { stdenv , stdenvNoCC , lib , writeText , testers , runCommand , runCommandWith , expect , curl , installShellFiles , callPackage , zlib , swiftPackages , darwin , icu }: type: args: stdenv.mkDerivation (finalAttrs: args // { doInstallCheck = true; Loading Loading @@ -43,9 +50,11 @@ mkDotnetTest = { name, stdenv ? stdenvNoCC, template, usePackageSource ? false, build, buildInputs ? [], # TODO: use correct runtimes instead of sdk runtime ? finalAttrs.finalPackage, runInputs ? [], Loading @@ -54,19 +63,20 @@ }: let sdk = finalAttrs.finalPackage; built = runCommand "dotnet-test-${name}" { buildInputs = [ sdk ]; built = runCommandWith { name = "dotnet-test-${name}"; inherit stdenv; derivationArgs = { buildInputs = [ sdk ] ++ buildInputs; # make sure ICU works in a sandbox propagatedSandboxProfile = toString sdk.__propagatedSandboxProfile + '' (allow network-inbound (local ip)) (allow mach-lookup (global-name "com.apple.FSEvents")) ''; propagatedSandboxProfile = toString sdk.__propagatedSandboxProfile; }; } ('' HOME=$PWD/.home dotnet new nugetconfig dotnet nuget disable source nuget '' + lib.optionalString usePackageSource '' dotnet nuget add source ${finalAttrs.finalPackage.packages} dotnet nuget add source ${sdk.packages} '' + '' dotnet new ${template} -n test -o . '' + build); Loading Loading @@ -96,6 +106,8 @@ [[ "$output" =~ Hello,?\ World! ]] && touch "$out" ''; patchNupkgs = callPackage ./patch-nupkgs.nix {}; in { version = testers.testVersion ({ package = finalAttrs.finalPackage; Loading @@ -103,7 +115,7 @@ command = "dotnet --info"; }); } // lib.optionalAttrs (type == "sdk") { // lib.optionalAttrs (type == "sdk") ({ console = mkDotnetTest { name = "console"; template = "console"; Loading Loading @@ -165,6 +177,30 @@ ''; runAllowNetworking = true; }; } // args.passthru.tests or {}; } // lib.optionalAttrs finalAttrs.finalPackage.hasILCompiler { aot = mkDotnetTest { name = "aot"; stdenv = if stdenv.isDarwin then swiftPackages.stdenv else stdenv; template = "console"; usePackageSource = true; buildInputs = [ patchNupkgs zlib ] ++ lib.optional stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [ swiftPackages.swift Foundation CryptoKit GSS ICU ]); build = '' dotnet restore -p:PublishAot=true patch-nupkgs .home/.nuget/packages dotnet publish -p:PublishAot=true -o $out/bin ''; runtime = null; run = checkConsoleOutput "$src/bin/test"; }; }) // args.passthru.tests or {}; } // args.passthru or {}; }) Loading
pkgs/development/compilers/dotnet/common.nix +46 −10 Original line number Diff line number Diff line # TODO: switch to stdenvNoCC { stdenv , stdenvNoCC , lib , writeText , testers , runCommand , runCommandWith , expect , curl , installShellFiles , callPackage , zlib , swiftPackages , darwin , icu }: type: args: stdenv.mkDerivation (finalAttrs: args // { doInstallCheck = true; Loading Loading @@ -43,9 +50,11 @@ mkDotnetTest = { name, stdenv ? stdenvNoCC, template, usePackageSource ? false, build, buildInputs ? [], # TODO: use correct runtimes instead of sdk runtime ? finalAttrs.finalPackage, runInputs ? [], Loading @@ -54,19 +63,20 @@ }: let sdk = finalAttrs.finalPackage; built = runCommand "dotnet-test-${name}" { buildInputs = [ sdk ]; built = runCommandWith { name = "dotnet-test-${name}"; inherit stdenv; derivationArgs = { buildInputs = [ sdk ] ++ buildInputs; # make sure ICU works in a sandbox propagatedSandboxProfile = toString sdk.__propagatedSandboxProfile + '' (allow network-inbound (local ip)) (allow mach-lookup (global-name "com.apple.FSEvents")) ''; propagatedSandboxProfile = toString sdk.__propagatedSandboxProfile; }; } ('' HOME=$PWD/.home dotnet new nugetconfig dotnet nuget disable source nuget '' + lib.optionalString usePackageSource '' dotnet nuget add source ${finalAttrs.finalPackage.packages} dotnet nuget add source ${sdk.packages} '' + '' dotnet new ${template} -n test -o . '' + build); Loading Loading @@ -96,6 +106,8 @@ [[ "$output" =~ Hello,?\ World! ]] && touch "$out" ''; patchNupkgs = callPackage ./patch-nupkgs.nix {}; in { version = testers.testVersion ({ package = finalAttrs.finalPackage; Loading @@ -103,7 +115,7 @@ command = "dotnet --info"; }); } // lib.optionalAttrs (type == "sdk") { // lib.optionalAttrs (type == "sdk") ({ console = mkDotnetTest { name = "console"; template = "console"; Loading Loading @@ -165,6 +177,30 @@ ''; runAllowNetworking = true; }; } // args.passthru.tests or {}; } // lib.optionalAttrs finalAttrs.finalPackage.hasILCompiler { aot = mkDotnetTest { name = "aot"; stdenv = if stdenv.isDarwin then swiftPackages.stdenv else stdenv; template = "console"; usePackageSource = true; buildInputs = [ patchNupkgs zlib ] ++ lib.optional stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [ swiftPackages.swift Foundation CryptoKit GSS ICU ]); build = '' dotnet restore -p:PublishAot=true patch-nupkgs .home/.nuget/packages dotnet publish -p:PublishAot=true -o $out/bin ''; runtime = null; run = checkConsoleOutput "$src/bin/test"; }; }) // args.passthru.tests or {}; } // args.passthru or {}; })