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.
master
sternenseemann 2021-06-08 11:36:09 +02:00 committed by sterni
parent 843248d39f
commit f46a1e353a
1 changed files with 26 additions and 26 deletions

View File

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