diff --git a/jury/alpha.bats b/jury/alpha.bats index ea1e0de..b188a57 100644 --- a/jury/alpha.bats +++ b/jury/alpha.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/alpha/alpha.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/alpha/alpha.sh" @test "alpha: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/assemble-the-jury.sh b/jury/assemble-the-jury.sh index cc4f5ea..2a2b198 100755 --- a/jury/assemble-the-jury.sh +++ b/jury/assemble-the-jury.sh @@ -1,7 +1,8 @@ #!/bin/bash -TEST_LIBS_DIR="jury/test_libs" +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +TEST_LIBS_DIR="${SCRIPT_DIR}/test_libs" # Create a directory for the test dependencies mkdir -p ${TEST_LIBS_DIR} diff --git a/jury/bouncing.bats b/jury/bouncing.bats index f945101..0d6d852 100644 --- a/jury/bouncing.bats +++ b/jury/bouncing.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/bouncing/bouncing.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/bouncing/bouncing.sh" @test "bouncing: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/cutesaver.bats b/jury/cutesaver.bats index 7a57eaf..91d28f3 100644 --- a/jury/cutesaver.bats +++ b/jury/cutesaver.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/cutesaver/cutesaver.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/cutesaver/cutesaver.sh" @test "cutesaver: main script should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/fireworks.bats b/jury/fireworks.bats index ec9f381..af612f6 100644 --- a/jury/fireworks.bats +++ b/jury/fireworks.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/fireworks/fireworks.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/fireworks/fireworks.sh" @test "fireworks: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/library-of-voices.bats b/jury/library-of-voices.bats index 454679d..0d93eea 100644 --- a/jury/library-of-voices.bats +++ b/jury/library-of-voices.bats @@ -1,7 +1,7 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" setup() { source "$(dirname "$BATS_TEST_FILENAME")/../library/library-of-voices.sh" diff --git a/jury/matrix.bats b/jury/matrix.bats index 6cc52f1..b416e4e 100644 --- a/jury/matrix.bats +++ b/jury/matrix.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/matrix/matrix.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/matrix/matrix.sh" @test "matrix: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/pipes.bats b/jury/pipes.bats index 262fa71..95be8e9 100644 --- a/jury/pipes.bats +++ b/jury/pipes.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/pipes/pipes.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/pipes/pipes.sh" @test "pipes: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/rain.bats b/jury/rain.bats index 33aa227..1b96a76 100644 --- a/jury/rain.bats +++ b/jury/rain.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/rain/rain.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/rain/rain.sh" @test "rain: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/spread-the-word.bats b/jury/spread-the-word.bats index 3d183bc..c84c0d9 100644 --- a/jury/spread-the-word.bats +++ b/jury/spread-the-word.bats @@ -1,7 +1,7 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" setup() { # Get the repo root, which is the current working directory for the test runner diff --git a/jury/stars.bats b/jury/stars.bats index 168ed9f..8509ee2 100644 --- a/jury/stars.bats +++ b/jury/stars.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/stars/stars.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/stars/stars.sh" @test "stars: should be executable" { assert [ -x "$SCRIPT" ] diff --git a/jury/tests.bats b/jury/tests.bats index df063fb..8464d9b 100644 --- a/jury/tests.bats +++ b/jury/tests.bats @@ -1,11 +1,11 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" @test "displays usage and lists screensavers" { - run ./screensaver.sh - assert_success + run timeout 3s ./screensaver.sh + assert_failure # It will be killed by timeout, so it's a failure assert_output --partial "Bash Screensavers" assert_output --partial "1. alpha" assert_output --partial "10. tunnel" diff --git a/jury/verdict.tap b/jury/verdict.tap index 7a07f35..7dc69a8 100644 --- a/jury/verdict.tap +++ b/jury/verdict.tap @@ -1,7 +1,7 @@ -1..54 +1..53 not ok 1 alpha: should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./alpha.bats, line 9) +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/alpha.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- @@ -9,19 +9,18 @@ not ok 1 alpha: should be executable # -- # ok 2 alpha: runs without errors for 1 second -ok 3 beta screensaver runs -not ok 4 bouncing: should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./bouncing.bats, line 9) +not ok 3 bouncing: should be executable +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/bouncing.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- # expression : [ -x gallery/bouncing/bouncing.sh ] # -- # -not ok 5 bouncing: runs without errors for 1 second -# (from function `assert_success' in file ./test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, -# in test file ./bouncing.bats, line 14) +not ok 4 bouncing: runs without errors for 1 second +# (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, +# in test file /app/jury/bouncing.bats, line 14) # `assert_success' failed # # -- command failed -- @@ -29,18 +28,18 @@ not ok 5 bouncing: runs without errors for 1 second # output : timeout: failed to run command ‘gallery/bouncing/bouncing.sh’: No such file or directory # -- # -not ok 6 cutesaver: main script should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./cutesaver.bats, line 9) +not ok 5 cutesaver: main script should be executable +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/cutesaver.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- # expression : [ -x gallery/cutesaver/cutesaver.sh ] # -- # -not ok 7 cutesaver: runs without errors for 1 second -# (from function `assert_success' in file ./test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, -# in test file ./cutesaver.bats, line 14) +not ok 6 cutesaver: runs without errors for 1 second +# (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, +# in test file /app/jury/cutesaver.bats, line 14) # `assert_success' failed # # -- command failed -- @@ -48,18 +47,18 @@ not ok 7 cutesaver: runs without errors for 1 second # output : timeout: failed to run command ‘gallery/cutesaver/cutesaver.sh’: No such file or directory # -- # -not ok 8 fireworks: should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./fireworks.bats, line 9) +not ok 7 fireworks: should be executable +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/fireworks.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- # expression : [ -x gallery/fireworks/fireworks.sh ] # -- # -not ok 9 fireworks: runs without errors for 1 second -# (from function `assert_success' in file ./test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, -# in test file ./fireworks.bats, line 14) +not ok 8 fireworks: runs without errors for 1 second +# (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, +# in test file /app/jury/fireworks.bats, line 14) # `assert_success' failed # # -- command failed -- @@ -67,31 +66,31 @@ not ok 9 fireworks: runs without errors for 1 second # output : timeout: failed to run command ‘gallery/fireworks/fireworks.sh’: No such file or directory # -- # -ok 10 library-of-voices: can be sourced -ok 11 library-of-voices: lov_detect_engine function exists -ok 12 library-of-voices: lov_say function exists -ok 13 library-of-voices: lov_kill_speech function exists -not ok 14 library-of-voices: lov_detect_engine sets a TTS engine -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./library-of-voices.bats, line 34) +ok 9 library-of-voices: can be sourced +ok 10 library-of-voices: lov_detect_engine function exists +ok 11 library-of-voices: lov_say function exists +ok 12 library-of-voices: lov_kill_speech function exists +not ok 13 library-of-voices: lov_detect_engine sets a TTS engine +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/library-of-voices.bats, line 34) # `assert [ -n "$LOV_TTS_ENGINE" ]' failed # # -- assertion failed -- # expression : [ -n ] # -- # -not ok 15 matrix: should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./matrix.bats, line 9) +not ok 14 matrix: should be executable +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/matrix.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- # expression : [ -x gallery/matrix/matrix.sh ] # -- # -not ok 16 matrix: runs without errors for 1 second -# (from function `assert_success' in file ./test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, -# in test file ./matrix.bats, line 14) +not ok 15 matrix: runs without errors for 1 second +# (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, +# in test file /app/jury/matrix.bats, line 14) # `assert_success' failed # # -- command failed -- @@ -99,18 +98,18 @@ not ok 16 matrix: runs without errors for 1 second # output : timeout: failed to run command ‘gallery/matrix/matrix.sh’: No such file or directory # -- # -not ok 17 pipes: should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./pipes.bats, line 9) +not ok 16 pipes: should be executable +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/pipes.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- # expression : [ -x gallery/pipes/pipes.sh ] # -- # -not ok 18 pipes: runs without errors for 1 second -# (from function `assert_success' in file ./test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, -# in test file ./pipes.bats, line 14) +not ok 17 pipes: runs without errors for 1 second +# (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, +# in test file /app/jury/pipes.bats, line 14) # `assert_success' failed # # -- command failed -- @@ -118,18 +117,18 @@ not ok 18 pipes: runs without errors for 1 second # output : timeout: failed to run command ‘gallery/pipes/pipes.sh’: No such file or directory # -- # -not ok 19 rain: should be executable -# (from function `assert' in file ./test_libs/bats-assert-2.2.0/src/assert.bash, line 40, -# in test file ./rain.bats, line 9) +not ok 18 rain: should be executable +# (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, +# in test file /app/jury/rain.bats, line 9) # `assert [ -x "$SCRIPT" ]' failed # # -- assertion failed -- # expression : [ -x gallery/rain/rain.sh ] # -- # -not ok 20 rain: runs without errors for 1 second -# (from function `assert_success' in file ./test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, -# in test file ./rain.bats, line 14) +not ok 19 rain: runs without errors for 1 second +# (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, +# in test file /app/jury/rain.bats, line 14) # `assert_success' failed # # -- command failed -- @@ -137,12 +136,12 @@ not ok 20 rain: runs without errors for 1 second # output : timeout: failed to run command ‘gallery/rain/rain.sh’: No such file or directory # -- # -not ok 21 smile-for-the-camera: exits if asciinema is not found -# (from function `setup' in test file ./smile-for-the-camera.bats, line 5) +not ok 20 smile-for-the-camera: exits if asciinema is not found +# (from function `setup' in test file /app/jury/smile-for-the-camera.bats, line 5) # `chmod +x "$SCRIPT"' failed -not ok 24 teardown_file failed -# (from function `source' in file ./smile-for-the-camera.bats, line 39, -# from function `bats_run_setup_file' in file test_libs/bats-core-1.12.0/libexec/bats-core/bats-exec-file, line 99, -# from function `main' in test file test_libs/bats-core-1.12.0/libexec/bats-core/bats-exec-file, line 382) +not ok 23 teardown_file failed +# (from function `source' in file /app/jury/smile-for-the-camera.bats, line 39, +# from function `bats_run_setup_file' in file /app/jury/test_libs/bats-core-1.12.0/libexec/bats-core/bats-exec-file, line 99, +# from function `main' in test file /app/jury/test_libs/bats-core-1.12.0/libexec/bats-core/bats-exec-file, line 382) # `bats_run_setup_file' failed -# bats warning: Executed 22 instead of expected 54 tests +# bats warning: Executed 21 instead of expected 53 tests diff --git a/jury/verdict.txt b/jury/verdict.txt index ee61789..0f770bb 100644 --- a/jury/verdict.txt +++ b/jury/verdict.txt @@ -1,72 +1,82 @@ alpha.bats - alpha: should be executable 1/51 ✓ alpha: should be executable - alpha: runs without errors for 1 second 2/51 ✓ alpha: runs without errors for 1 second -beta.bats - beta screensaver runs 3/51 ✓ beta screensaver runs + alpha: should be executable 1/53 ✗ alpha: should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/alpha.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed + + -- assertion failed -- + expression : [ -x gallery/alpha/alpha.sh ] + -- + + alpha: runs without errors for 1 second 2/53 ✓ alpha: runs without errors for 1 second bouncing.bats - bouncing: should be executable 4/51 ✓ bouncing: should be executable - bouncing: runs without errors for 1 second 5/51 ✗ bouncing: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/bouncing.bats, line 14) - `assert_success' failed + bouncing: should be executable 3/53 ✗ bouncing: should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/bouncing.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed  - -- command failed -- - status : 124 - output : [?25l O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O + -- assertion failed -- + expression : [ -x gallery/bouncing/bouncing.sh ]  --  -cutesaver.bats - cutesaver: main script should be executable 6/51 ✓ cutesaver: main script should be executable - cutesaver: runs without errors for 1 second 7/51 ✗ cutesaver: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/cutesaver.bats, line 14) + bouncing: runs without errors for 1 second 4/53 ✗ bouncing: runs without errors for 1 second + (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, + in test file /app/jury/bouncing.bats, line 14)  `assert_success' failed   -- command failed -- - status : 124 - output (20 lines): -  ______ __ __ ______ ______ - /\ ___\ /\ \/\ \ /\__ _\ /\ ___\ - \ \ \____ \ \ \_\ \ \/_/\ \/ \ \ __\ - \ \_____\ \ \_____\ \ \_\ \ \_____\ - \/_____/ \/_____/ \/_/ \/_____/ + status : 127 + output : timeout: failed to run command ‘gallery/bouncing/bouncing.sh’: No such file or directory + --  - ______ ______ __ __ ______ ______ - /\ ___\ /\ __ \ /\ \ / / /\ ___\ /\ == \ - \ \___ \ \ \ __ \ \ \ \'/ \ \ __\ \ \ __< - \/\_____\ \ \_\ \_\ \ \__| \ \_____\ \ \_\ \_\ - \/_____/ \/_/\/_/ \/_/ \/_____/ \/_/ /_/ +cutesaver.bats + cutesaver: main script should be executable 5/53 ✗ cutesaver: main script should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/cutesaver.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed  + -- assertion failed -- + expression : [ -x gallery/cutesaver/cutesaver.sh ] + --  + cutesaver: runs without errors for 1 second 6/53 ✗ cutesaver: runs without errors for 1 second + (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, + in test file /app/jury/cutesaver.bats, line 14) + `assert_success' failed  - Cuteness for your screen, cuteness for your soul. + -- command failed -- + status : 127 + output : timeout: failed to run command ‘gallery/cutesaver/cutesaver.sh’: No such file or directory + --  - You deserve something cute to look at. A mirror would help - with that, but I'm just a lowly command line application... +fireworks.bats + fireworks: should be executable 7/53 ✗ fireworks: should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/fireworks.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed  - Terminated + -- assertion failed -- + expression : [ -x gallery/fireworks/fireworks.sh ]  --  -fireworks.bats - fireworks: should be executable 8/51 ✓ fireworks: should be executable - fireworks: runs without errors for 1 second 9/51 ✗ fireworks: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/fireworks.bats, line 14) + fireworks: runs without errors for 1 second 8/53 ✗ fireworks: runs without errors for 1 second + (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, + in test file /app/jury/fireworks.bats, line 14)  `assert_success' failed   -- command failed -- - status : 124 - output : [?25l^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++............................................................Terminated + status : 127 + output : timeout: failed to run command ‘gallery/fireworks/fireworks.sh’: No such file or directory  --  library-of-voices.bats - library-of-voices: can be sourced10/51 ✓ library-of-voices: can be sourced - library-of-voices: lov_detect_engine function exists11/51 ✓ library-of-voices: lov_detect_engine function exists - library-of-voices: lov_say function exists12/51 ✓ library-of-voices: lov_say function exists - library-of-voices: lov_kill_speech function exists13/51 ✓ library-of-voices: lov_kill_speech function exists - library-of-voices: lov_detect_engine sets a TTS engine14/51 ✗ library-of-voices: lov_detect_engine sets a TTS engine - (from function `assert' in file jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, - in test file jury/library-of-voices.bats, line 34) + library-of-voices: can be sourced 9/53 ✓ library-of-voices: can be sourced + library-of-voices: lov_detect_engine function exists10/53 ✓ library-of-voices: lov_detect_engine function exists + library-of-voices: lov_say function exists11/53 ✓ library-of-voices: lov_say function exists + library-of-voices: lov_kill_speech function exists12/53 ✓ library-of-voices: lov_kill_speech function exists + library-of-voices: lov_detect_engine sets a TTS engine13/53 ✗ library-of-voices: lov_detect_engine sets a TTS engine + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/library-of-voices.bats, line 34)  `assert [ -n "$LOV_TTS_ENGINE" ]' failed   -- assertion failed -- @@ -74,115 +84,75 @@  --  matrix.bats - matrix: should be executable15/51 ✓ matrix: should be executable - matrix: runs without errors for 1 second16/51 ✗ matrix: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/matrix.bats, line 14) - `assert_success' failed + matrix: should be executable14/53 ✗ matrix: should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/matrix.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed  - -- command failed -- - status : 124 - output : [?25lbsltKhFUC#JAj(1*2T4p#P3lOOhWfk#J&tEGmvZMYFh(cEKAPM%3j*M9XoUX24Z5E(KqiT3o%2dfgtIYHt2bqgk5y7bIj4Q1$#z4Md53cEuvXFyp2Dz1Ey1ARIgA1YExbDlU1x0J3I@J5(i0voWyiZ0UMckOi7%^jjunt6%aIJz%LcXRL*s^bAh(82rs2o#fjlitC$Fv3&2dO$pYpZ81N9Q883Z9)x9PyqQh$WupdXAmPugdEN%YePLiJXa2w(2ZRdeyutaIL(AqWAB&PvZkdf$QbFwkJkZEA$l2E^mRfAlThh6FPC%%DrLJk9SbcLClVsLiwO%WDz@ytZ4D&CrqKL7Mcg0EuYArg55z2MZuub0KrL#Q4dTXPtXS)rI7%cWG3o@svGy7bvo*7(D(@irgx(HVcf9G*3)(mvJnaFy7y^jCrKHrCXbwER&IEIbHX36YZmJmZpjLRNdw w0Z%zVP@tr40gb8L3&q3zW0hIuJu27jof7@cCuufvI&PVGNDtc*LptmfRjQk*fxZasUch)iIn^nM(lf$bEB4HT2kKBza2mK2NwCvyj&sACiYTjWS6FDBPJSIygJRHOK44LC&e2*w*V6F%5j%k5iNQjCGntxLYd2wtacTgakY m7gEKM)kY0CwOEBki$Qt5PGxueHyO)OW(%n%qMw8iej9&dzcGU61bFd*Mn@f 6x7mUjus7KQFW^pI%KHPhR4McGtds8T7Zg)hX)nk4DQz#iWi4(4mst1K(6OgUC*NnjO6hjLc4sa00nK1h1itpQQ#BWZ2&a2aY^Z&wq@NthtJ7v)F$8^rSviRPTlFOffsqt60)6UiCy9JeSd oUpF$ShP#heen%b9n@mA(MPp4srJ1%XcYMFF^xDkFnBoyH4k491*O#Z^HCohXx1m4Q&F 7WRXeeqv^)BGZziz^AgxfN^2#N0%hwE)G7Uk2RXdI5f*lpXT0#xyPJg08SjtsjNaO8SClQPYPw2UQm(6^$1 sx#tAcVbakbjy9*99LbX32s0qUuP6Rs4eZkZbB3ve&R^aQA#YIo^#XpSvpFjMVf9dPfSf36rir OTYKHewky)1V%l 0HdTMHanaX$L7k@XZfZgy05TQNXgvalf#QXMhjFy#V^frN6TBM4i^hE h9TKHQRXmbSCGW3uzY34 h)IdtnvB&O^jtaBt$n@dedzDxKUUgiKCgQtDVQ7gqPb(PcJFfeeFa2GQzPiTAnyBKEAQAhQwyFzYJpAu2QAn% 55Qc)2b&uk xYx%b*M8r7amrOAzBWDxkB4%Qe@fLl*u(cFyigxp7f5AKoy5xsVKV9lWnn*4oe8PJU30XTasfe%MpQnvtc^&j2i4Y vz6bYEAquypd95C $tAnG4CU51YMc^tntpI^&(0 x5G&mxgw4FKyc@)(dUGJ&Cl#lZOAGp@aMtDz4 &0TY#fQ8)*@$UBPQ(7Q#8 asGSca&5&iwYjdHMBsudq^88nUp%enM)Yb#CSN(2UGzWiKafb3NG(mip%D&*S2G^o r)la4ueaIy%M8Wog@X$#hF8LQM0s91A$ VBc8Fz)3*s pI$WPz6XsbqQ)7mLiz9rdfRb$Mm*TsWW^0Vh@6a6TLb&8X)Lzi1TENoy7tvw)lNQ1QyBJG#kdHVU09W0LK^Zc%(R@9nJDh9QQ4^yHzYrE zBfnHkwiPKzSNhDH J6Xcxpy4VzRBC7UbO9(1y5%ZS 7maDaWraUNIU7FI%1uTQX%NspTYWhg(GOC$MPo0b trcQ$k$4RH6kWaSMt6urNt bU&KG2tTVc0c3e7O(C&rVG*zGZFmCNWLIL2cLJNakvXqLvEkPFyYrlqcVAIgJxl)0G#vo7CjB7) sGQcen&y2P8Y98Tht9O#Ng1Hqe0ZNju(MgX WiFUJm%EOX IpMpTh*% S17@oQK0#aQudz^(kMnybUxWz8SJJxkvTY9tVWsSZ^y29P9Jt8^I8aUOHwhHbo&N^@VDPjXE6#M@cEX*cxhpp%$ykXkpK A0PYwk%(xGSxZrSc1Zii qczGldmlHf4EyW*0A fCFC*lFU)EPl*QiC1y6cdexW66D bJPlPeszI*SOJas6%J45k57YU*ckRdhxncDVQfS@qz7 rmZXthXmYEANdoq0NJREqyZ QFP^9EDRHO6gXq(jQ75^aQZRyiCz Lal*aHq2HRBKMIq((EeRVYsDNe5BkWPlC9PkdZ0)yFx$v0pqWF56y)o0 pjV^VQEk@LVj3wc6O$f^qJs05SlwyoRnXE7tSIU 6k7$0I^^$r aNr6*kLp 0t^)hUsbXvn##qrU9*XkbGOeLO3qH@OL)S(ewlWqc83t9BHCY9^GMJg9v%&m%HxdKExdaSTr1MqOieY5Utap*HmBW3x0z1b5kGCQQylRC2P FuvuUhuaDn(DUI9KavPNKRyo $Dfk%LBD6hCnxQa)Ay HPiI0vmqSVHLPDNKv3 4NmMZ7B^DW iDJ1I5cHfu)uFcEtBIH53rkm*4Rg*GP*jOVezskUIihYHD yl%xNPR#qPnT*E&Q@5)zL249 8mppJYm6vrlD^woBPWP7F)5hzYISW)y tGTnAb9qXZ2MCHTaMO)vyR*m)Q%@@o5 k2wac#oV$G2Pf04y3F%j)VIJBypckR %gSc8)c%kMMr35MteCqF#VoEp$9Bnzsq#HcM%5mFC2N CW(EKxd1tN veL$5Y8N y)7#WhCE jEmNkAgeo%DYjnLXD$b(A0iYwOEG7Gp5*iqn23JcuYfaVqjYQjsFSHjCUj@1@XVm**KMpYZCIOMhDdJDXVB^%(@p8N0C$G@6pgsYlQaCn0d(BrqA #4Xdkwsv1Qvq$%SW^iY)@w1vl78M QqAM(gjLYw3w4rfMaVo $T%2jIZS&rp4ehW$wuV U&3pLEGyUe $@xp7#Vx(Jzda2oFMHQ%rnmUH*WAvyzscs4ssf7QHLD9b%iM@ fnzt(pB2LYBF6jjAyW(g^#$SH 73bv2EZd1s&ONGrfuWR2d)kAM&sQP#GxmI 37ibfgJ92jKzl(#(lpjmp)aOYcta@CYWAd TINVp2FC@@c&U777k0SVIcpk&*0Zi*Pu QpU4WnHH$fWWnRBP#BNUX(gDvkiGqJ5o9rcm9sRY7D671DW3 kN15ZrVUD* TTeCEank ndT1fFvE R47rdCjZ)WvVsG0y41CmsjcH^kZW8nmbbitXKKn$H#4Wr6Jvo@aI(NLKt3m3o(nYhoCITrDaRWF8s0dHHOJxd%KVd0I9QZhiUcF9LFUWrVC8kVL%R6pl)cIgbTL6D s9aj4i9T9%1nt@c&3JjEzSmeeI#iJmqs 0GC7G^7ZJqcjrZqE0(7u AkdvuTlHDr5w(bN^&84e lDo*am%jnc LFLvqJsj(3t6eP*jq$lmFZLo@ZjIQYor6TqsXqz6c7PshMPByAUK 9JGI(WkCn*O7LFa1$ WG8pmyy(R &NUz@QkBMgpB2OksVwp$rYs)8be118gDkm*Zo iL1OoX$iNdT$R1Cnp7(@Ehz0^qOf$S&apxAyz nBLvo$Y8CsRsnNTm)rQ0b2pmEox&Wb%wmA 0KeX#dwvv)fLvkvIVW^%*rFfEMb8X%g(SOHhIjLhg^pU3Vp^O4kxv oX%%6PcJW5 5B9IO^aQ E(Et8m3& *pAetZRtb6eU@uUh T5Wuo#Y0z4BMUJJgNcsJ7LOAxJOHWgY5zHG4%EU1Q^EkqMUv9VUUg%wzKFOvPh0(j618)e9ZJLOQjDQDX#5mmg7kHnCJaCRqxxwmgsUu@SnJ9 b$Ruqn$MF$m @q2bTfJj6rUU%qrUCKolx@bPIZ85k5$4fzw2 8B0b8(b1PtPLzIU6Spsd2 Terminated - -- - -pipes.bats - pipes: should be executable17/51 ✓ pipes: should be executable - pipes: runs without errors for 1 second18/51 ✗ pipes: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/pipes.bats, line 14) - `assert_success' failed - - -- command failed -- - status : 124 - output (2 lines): - stty: 'standard input': Inappropriate ioctl for device - [?1049h[?25l(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B┏(B┗(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B┏(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┓(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B┗(B┃(B┃(B┃(B┃(B┓(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B┓(B┃(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B┏(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┗(B━(B┓(B┛(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B┛(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┗(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B┗(B┃(B┃(B┃(B┓(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┏(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B┏(B┃(B┛(B┗(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B┏(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B┓(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B┛(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B┛(B┃(B┓(B━(B━(B━(B━(B━(B┏(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B┗(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┛(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┏(B┃(B┛(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┏(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┏(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┏(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┛(B━(B━(B━(B━(B┏(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┓(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┗(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B━(B┓(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┗(B━(B━(B┛(B┏(B━(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B┛(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┃(B┏(B━(B━(B━Terminated + -- assertion failed -- + expression : [ -x gallery/matrix/matrix.sh ]  --  -rain.bats - rain: should be executable19/51 ✓ rain: should be executable - rain: runs without errors for 1 second20/51 ✗ rain: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/rain.bats, line 14) + matrix: runs without errors for 1 second15/53 ✗ matrix: runs without errors for 1 second + (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, + in test file /app/jury/matrix.bats, line 14)  `assert_success' failed   -- command failed -- - status : 124 - output : [?25l | | | │ ┃ ┃ | │ │ │ ┃ │ ┃ │ │ ┃ | ┃ ┃ │ │ | │ │ │ | | │ ┃ │ │ │ │ ┃ | │ ┃ | | | ┃ ┃ │ ┃ ┃ | ┃ ┃ | │ │ │ | | │ │ ┃ │ │ │ | ┃ │ ┃ │ ┃ │ | ┃ | | | │ │ │ │ ┃ │ ┃ │ | ┃ | | │ | | | │ ┃ ┃ │ │ ┃ | │ | ┃ | │ │ | | ┃ | | | │ │ | ┃ ┃ | ┃ │ ┃ | │ | │ │ | ┃ ┃ ┃ │ │ | | | ┃ │ │ │ | │ ┃ │ │ ┃ ┃ │ ┃ | | ┃ | │ | ┃ | │ | | | | |  | │ ┃ | │ ┃ | ┃ ┃ │ │ │ ┃ | ┃ │ | ┃ ┃ │ │ | ┃ | │ │ │  │ | │ ┃ ┃ | │ | │ │ | | │ │ ┃ │ | | | | ┃ ┃ | │ | │  ┃ │ │ | | | ┃ | | │ ┃ │ | ┃ │ │ │ | │ │ │ │ | | | │ │ | | │ ┃ | | ┃ | | │ ┃ │ ┃Terminated + status : 127 + output : timeout: failed to run command ‘gallery/matrix/matrix.sh’: No such file or directory  --  -speaky.bats - speaky: tts_get_voices_say populates SAY_VOICES21/51 ✗ speaky: tts_get_voices_say populates SAY_VOICES - (from function `wait_for_speech' in file gallery/speaky/speaky.sh, line 360, - from function `the_show_must_go_on' in file gallery/speaky/speaky.sh, line 404, - from function `source' in file gallery/speaky/speaky.sh, line 422, - in test file jury/speaky.bats, line 27) - `. "$SCRIPT"' failed - [?25lI'm back. - speaky: say_txt uses a random voice if available22/51 ✗ speaky: say_txt uses a random voice if available - (from function `wait_for_speech' in file gallery/speaky/speaky.sh, line 360, - from function `the_show_must_go_on' in file gallery/speaky/speaky.sh, line 404, - from function `source' in file gallery/speaky/speaky.sh, line 422, - in test file jury/speaky.bats, line 43) - `. "$SCRIPT"' failed - [?25lI'm here to chew bubblegum and kick butt... and I'm all out of bubblegum. - speaky: say_txt works normally if no voices are found23/51 ✗ speaky: say_txt works normally if no voices are found - (from function `wait_for_speech' in file gallery/speaky/speaky.sh, line 360, - from function `the_show_must_go_on' in file gallery/speaky/speaky.sh, line 404, - from function `source' in file gallery/speaky/speaky.sh, line 422, - in test file jury/speaky.bats, line 64) - `. "$SCRIPT"' failed - [?25lI'm back. -spread-the-word.bats - generates output24/51 ✗ generates output - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/spread-the-word.bats, line 40) - `assert_success' failed +pipes.bats + pipes: should be executable16/53 ✗ pipes: should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/pipes.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed  - -- command failed -- - status : 1 - output (2 lines): - Not enough messages in /app/spotlight/message.txt - Found 14 messages, but need 15. + -- assertion failed -- + expression : [ -x gallery/pipes/pipes.sh ]  --  - generates commands for all 14 targets25/51 ✗ generates commands for all 14 targets - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/spread-the-word.bats, line 46) + pipes: runs without errors for 1 second17/53 ✗ pipes: runs without errors for 1 second + (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, + in test file /app/jury/pipes.bats, line 14)  `assert_success' failed   -- command failed -- - status : 1 - output (2 lines): - Not enough messages in /app/spotlight/message.txt - Found 14 messages, but need 15. + status : 127 + output : timeout: failed to run command ‘gallery/pipes/pipes.sh’: No such file or directory  --  - generates expected first command with absolute paths26/51 ✗ generates expected first command with absolute paths - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/spread-the-word.bats, line 58) - `assert_success' failed +rain.bats + rain: should be executable18/53 ✗ rain: should be executable + (from function `assert' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert.bash, line 40, + in test file /app/jury/rain.bats, line 9) + `assert [ -x "$SCRIPT" ]' failed  - -- command failed -- - status : 1 - output (2 lines): - Not enough messages in /app/spotlight/message.txt - Found 14 messages, but need 15. + -- assertion failed -- + expression : [ -x gallery/rain/rain.sh ]  --  - errors if message file is missing27/51 ✓ errors if message file is missing - errors if message file has too few lines28/51 ✓ errors if message file has too few lines -stars.bats - stars: should be executable29/51 ✓ stars: should be executable - stars: runs without errors for 1 second30/51 ✗ stars: runs without errors for 1 second - (from function `assert_success' in file jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, - in test file jury/stars.bats, line 14) + rain: runs without errors for 1 second19/53 ✗ rain: runs without errors for 1 second + (from function `assert_success' in file /app/jury/test_libs/bats-assert-2.2.0/src/assert_success.bash, line 45, + in test file /app/jury/rain.bats, line 14)  `assert_success' failed   -- command failed -- - status : 124 - output : [?25l'+*  ..'  .++  OOO  *OO  *'+  .O'  +*+  O*'  *O'  OO+  +O*  .OO  *+*  O'+  O..  'OO  OOO  '*+  ''O  +.*  *.'  *''  +.O  '.O  .'*  .'O  O+'  '+.  ++'  .'O  O.'  OO+  ..*  ''O  ...  .'+  O'*  *.O  '+*  *+O  'O.  'O*  Terminated + status : 127 + output : timeout: failed to run command ‘gallery/rain/rain.sh’: No such file or directory  --  -tests.bats - displays usage and lists screensavers31/51 +smile-for-the-camera.bats + smile-for-the-camera: exits if asciinema is not found20/53 ✗ smile-for-the-camera: exits if asciinema is not found + (from function `setup' in test file /app/jury/smile-for-the-camera.bats, line 5) + `chmod +x "$SCRIPT"' failed + ✗ teardown_file failed + (from function `source' in file /app/jury/smile-for-the-camera.bats, line 39, + from function `bats_run_setup_file' in file /app/jury/test_libs/bats-core-1.12.0/libexec/bats-core/bats-exec-file, line 99, + from function `main' in test file /app/jury/test_libs/bats-core-1.12.0/libexec/bats-core/bats-exec-file, line 382) + `bats_run_setup_file' failed + bats warning: Executed 21 instead of expected 53 tests + +53 tests, 16 failures, 32 not run + diff --git a/jury/vibe.bats b/jury/vibe.bats index 062bc3f..1358b62 100644 --- a/jury/vibe.bats +++ b/jury/vibe.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats -load 'jury/test_libs/bats-support-0.3.0/load.bash' -load 'jury/test_libs/bats-assert-2.2.0/load.bash' +load "$BATS_TEST_DIRNAME/test_libs/bats-support-0.3.0/load.bash" +load "$BATS_TEST_DIRNAME/test_libs/bats-assert-2.2.0/load.bash" -SCRIPT="gallery/vibe/vibe.sh" +SCRIPT="$BATS_TEST_DIRNAME/../gallery/vibe/vibe.sh" @test "vibe: should be executable" { assert [ -x "$SCRIPT" ]