bats: use writeText instead of passAsFile (#498267)
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
symlinkJoin,
|
||||
makeWrapper,
|
||||
runCommand,
|
||||
writeText,
|
||||
doInstallCheck ? true,
|
||||
# packages that use bats (for update testing)
|
||||
bash-preexec,
|
||||
@@ -151,59 +152,58 @@ resholve.mkDerivation rec {
|
||||
wrapProgram "$out/bin/bats" \
|
||||
--suffix BATS_LIB_PATH : "$out/share/bats"
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
passthru.tests = {
|
||||
libraries =
|
||||
runCommand "${bats.name}-with-libraries-test"
|
||||
{
|
||||
testScript = ''
|
||||
setup() {
|
||||
bats_load_library bats-support
|
||||
bats_load_library bats-assert
|
||||
bats_load_library bats-file
|
||||
bats_load_library bats-detik/detik.bash
|
||||
let
|
||||
testScript = writeText "bats-libraries-test-script" ''
|
||||
setup() {
|
||||
bats_load_library bats-support
|
||||
bats_load_library bats-assert
|
||||
bats_load_library bats-file
|
||||
bats_load_library bats-detik/detik.bash
|
||||
|
||||
bats_require_minimum_version 1.5.0
|
||||
bats_require_minimum_version 1.5.0
|
||||
|
||||
TEST_TEMP_DIR="$(temp_make --prefix 'nixpkgs-bats-test')"
|
||||
}
|
||||
TEST_TEMP_DIR="$(temp_make --prefix 'nixpkgs-bats-test')"
|
||||
}
|
||||
|
||||
teardown() {
|
||||
temp_del "$TEST_TEMP_DIR"
|
||||
}
|
||||
teardown() {
|
||||
temp_del "$TEST_TEMP_DIR"
|
||||
}
|
||||
|
||||
@test echo_hi {
|
||||
run -0 echo hi
|
||||
assert_output "hi"
|
||||
}
|
||||
@test echo_hi {
|
||||
run -0 echo hi
|
||||
assert_output "hi"
|
||||
}
|
||||
|
||||
@test cp_failure {
|
||||
run ! cp
|
||||
assert_line --index 0 "cp: missing file operand"
|
||||
assert_line --index 1 "Try 'cp --help' for more information."
|
||||
}
|
||||
@test cp_failure {
|
||||
run ! cp
|
||||
assert_line --index 0 "cp: missing file operand"
|
||||
assert_line --index 1 "Try 'cp --help' for more information."
|
||||
}
|
||||
|
||||
@test file_exists {
|
||||
echo "hi" > "$TEST_TEMP_DIR/hello.txt"
|
||||
assert_file_exist "$TEST_TEMP_DIR/hello.txt"
|
||||
run cat "$TEST_TEMP_DIR/hello.txt"
|
||||
assert_output "hi"
|
||||
}
|
||||
'';
|
||||
passAsFile = [ "testScript" ];
|
||||
}
|
||||
''
|
||||
${
|
||||
bats.withLibraries (p: [
|
||||
p.bats-support
|
||||
p.bats-assert
|
||||
p.bats-file
|
||||
p.bats-detik
|
||||
])
|
||||
}/bin/bats "$testScriptPath"
|
||||
touch "$out"
|
||||
@test file_exists {
|
||||
echo "hi" > "$TEST_TEMP_DIR/hello.txt"
|
||||
assert_file_exist "$TEST_TEMP_DIR/hello.txt"
|
||||
run cat "$TEST_TEMP_DIR/hello.txt"
|
||||
assert_output "hi"
|
||||
}
|
||||
'';
|
||||
batsWithLibraries = bats.withLibraries (p: [
|
||||
p.bats-support
|
||||
p.bats-assert
|
||||
p.bats-file
|
||||
p.bats-detik
|
||||
]);
|
||||
in
|
||||
runCommand "${bats.name}-with-libraries-test" { } ''
|
||||
${lib.getExe batsWithLibraries} "${testScript}"
|
||||
touch "$out"
|
||||
'';
|
||||
|
||||
upstream = bats.unresholved.overrideAttrs (old: {
|
||||
name = "${bats.name}-tests";
|
||||
|
||||
Reference in New Issue
Block a user