3
0
Fork 0
forked from mirrors/nixpkgs

tests.writers: give all test derivations unique names

This makes it easier to debug test failures since the derivation name
will give an indication which writer it belongs to.
This commit is contained in:
sternenseemann 2021-06-08 11:36:09 +02:00 committed by sterni
parent 843248d39f
commit f46a1e353a

View file

@ -13,11 +13,11 @@ with writers;
let
bin = {
bash = writeBashBin "test_writers" ''
bash = writeBashBin "test_writers_bash_bin" ''
if [[ "test" == "test" ]]; then echo "success"; fi
'';
c = writeCBin "test_writers" { libraries = [ ]; } ''
c = writeCBin "test_writers_c" { libraries = [ ]; } ''
#include <stdio.h>
int main() {
printf("success\n");
@ -25,17 +25,17 @@ let
}
'';
dash = writeDashBin "test_writers" ''
dash = writeDashBin "test_writers_dash_bin" ''
test '~' = '~' && echo 'success'
'';
rust = writeRustBin "test_writers" {} ''
rust = writeRustBin "test_writers_rust_bin" {} ''
fn main(){
println!("success")
}
'';
haskell = writeHaskellBin "test_writers" { libraries = [ haskellPackages.acme-default ]; } ''
haskell = writeHaskellBin "test_writers_haskell_bin" { libraries = [ haskellPackages.acme-default ]; } ''
import Data.Default
int :: Int
@ -47,7 +47,7 @@ let
_ -> print "fail"
'';
js = writeJSBin "test_writers" { libraries = [ nodePackages.semver ]; } ''
js = writeJSBin "test_writers_js_bin" { libraries = [ nodePackages.semver ]; } ''
var semver = require('semver');
if (semver.valid('1.2.3')) {
@ -57,12 +57,12 @@ let
}
'';
perl = writePerlBin "test_writers" { libraries = [ perlPackages.boolean ]; } ''
perl = writePerlBin "test_writers_perl_bin" { libraries = [ perlPackages.boolean ]; } ''
use boolean;
print "success\n" if true;
'';
python2 = writePython2Bin "test_writers" { libraries = [ python2Packages.enum ]; } ''
python2 = writePython2Bin "test_writers_python2_bin" { libraries = [ python2Packages.enum ]; } ''
from enum import Enum
@ -73,7 +73,7 @@ let
print Test.a
'';
python3 = writePython3Bin "test_writers" { libraries = [ python3Packages.pyyaml ]; } ''
python3 = writePython3Bin "test_writers_python3_bin" { libraries = [ python3Packages.pyyaml ]; } ''
import yaml
y = yaml.load("""
@ -84,11 +84,11 @@ let
};
simple = {
bash = writeBash "test_bash" ''
bash = writeBash "test_writers_bash" ''
if [[ "test" == "test" ]]; then echo "success"; fi
'';
c = writeC "test_c" { libraries = [ glib.dev ]; } ''
c = writeC "test_writers_c" { libraries = [ glib.dev ]; } ''
#include <gio/gio.h>
#include <stdio.h>
int main() {
@ -106,11 +106,11 @@ let
}
'';
dash = writeDash "test_dash" ''
dash = writeDash "test_writers_dash" ''
test '~' = '~' && echo 'success'
'';
haskell = writeHaskell "test_haskell" { libraries = [ haskellPackages.acme-default ]; } ''
haskell = writeHaskell "test_writers_haskell" { libraries = [ haskellPackages.acme-default ]; } ''
import Data.Default
int :: Int
@ -122,7 +122,7 @@ let
_ -> print "fail"
'';
js = writeJS "test_js" { libraries = [ nodePackages.semver ]; } ''
js = writeJS "test_writers_js" { libraries = [ nodePackages.semver ]; } ''
var semver = require('semver');
if (semver.valid('1.2.3')) {
@ -132,12 +132,12 @@ let
}
'';
perl = writePerl "test_perl" { libraries = [ perlPackages.boolean ]; } ''
perl = writePerl "test_writers_perl" { libraries = [ perlPackages.boolean ]; } ''
use boolean;
print "success\n" if true;
'';
python2 = writePython2 "test_python2" { libraries = [ python2Packages.enum ]; } ''
python2 = writePython2 "test_writers_python2" { libraries = [ python2Packages.enum ]; } ''
from enum import Enum
@ -148,7 +148,7 @@ let
print Test.a
'';
python3 = writePython3 "test_python3" { libraries = [ python3Packages.pyyaml ]; } ''
python3 = writePython3 "test_writers_python3" { libraries = [ python3Packages.pyyaml ]; } ''
import yaml
y = yaml.load("""
@ -157,21 +157,21 @@ let
print(y[0]['test'])
'';
python2NoLibs = writePython2 "test_python2_no_libs" {} ''
python2NoLibs = writePython2 "test_writers_python2_no_libs" {} ''
print("success")
'';
python3NoLibs = writePython3 "test_python3_no_libs" {} ''
python3NoLibs = writePython3 "test_writers_python3_no_libs" {} ''
print("success")
'';
};
path = {
bash = writeBash "test_bash" (writeText "test" ''
bash = writeBash "test_writers_bash_path" (writeText "test" ''
if [[ "test" == "test" ]]; then echo "success"; fi
'');
haskell = writeHaskell "test_haskell" { libraries = [ haskellPackages.acme-default ]; } (writeText "test" ''
haskell = writeHaskell "test_writers_haskell_path" { libraries = [ haskellPackages.acme-default ]; } (writeText "test" ''
import Data.Default
int :: Int
@ -184,8 +184,8 @@ let
'');
};
writeTest = expectedValue: test:
writeDash "test-writers" ''
writeTest = expectedValue: name: test:
writeDash "run-${name}" ''
if test "$(${test})" != "${expectedValue}"; then
echo 'test ${test} failed'
exit 1
@ -196,9 +196,9 @@ in runCommand "test-writers" {
passthru = { inherit writeTest bin simple; };
meta.platforms = lib.platforms.all;
} ''
${lib.concatMapStringsSep "\n" (test: writeTest "success" "${test}/bin/test_writers") (lib.attrValues bin)}
${lib.concatMapStringsSep "\n" (test: writeTest "success" test) (lib.attrValues simple)}
${lib.concatMapStringsSep "\n" (test: writeTest "success" test) (lib.attrValues path)}
${lib.concatMapStringsSep "\n" (test: writeTest "success" test.name "${test}/bin/${test.name}") (lib.attrValues bin)}
${lib.concatMapStringsSep "\n" (test: writeTest "success" test.name test) (lib.attrValues simple)}
${lib.concatMapStringsSep "\n" (test: writeTest "success" test.name test) (lib.attrValues path)}
echo 'nix-writers successfully tested' >&2
touch $out