Commit 168b81a4 authored by Diego Sueiro's avatar Diego Sueiro
Browse files

ewaol-tests/bats: Bump to v1.6.1

This also reverts commit 12197648 since it includes the fix for
https://github.com/bats-core/bats-core/issues/575



Issue-Id: SCM-4394
Signed-off-by: Diego Sueiro's avatarDiego Sueiro <diego.sueiro@arm.com>
Change-Id: I976e95c9487a1110fcc11a702b0d9b0fb0789c2b
parent b1187101
# Copyright (c) 2022, Arm Limited.
#
# SPDX-License-Identifier: MIT
OVERRIDES:append = "${EWAOL_OVERRIDES}"
FILESEXTRAPATHS:prepend:ewaol-tests := "${THISDIR}/files:"
# Add backport patch to bug-fix BATS v1.6.0
SRC_URI:append:ewaol-tests = " \
file://0001-Fix-status-in-teardown-overriding-exit-code.patch \
"
# Based on: https://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-test/bats/bats_1.6.0.bb?id=76d8e526eae9fc9ab14ff5804ae0091230a8b39e
# In open-source project: https://git.openembedded.org/meta-openembedded
#
# Original file: Copyright (c) 2022 wangmy <wangmy@fujitsu.com>
# Modifications: Copyright (c) 2022 Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: MIT
SUMMARY = "Bash Automated Testing System"
DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \
provides a simple way to verify that the UNIX programs you write behave as expected."
AUTHOR = "Sam Stephenson & bats-core organization"
HOMEPAGE = "https://github.com/bats-core/bats-core"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b"
SRC_URI = "git://github.com/bats-core/bats-core.git;branch=version/1.6.x;protocol=https"
# v1.6.1
SRCREV = "1977254c2a7faa2e0af17355856f91dc471d1daa"
S = "${WORKDIR}/git"
do_configure:prepend() {
sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats
sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-file
sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-test
}
do_install() {
# Just a bunch of bash scripts to install
${S}/install.sh ${D}${prefix} ${baselib}
}
RDEPENDS:${PN} = "bash"
FILES:${PN} += "${libdir}/bats-core/*"
PACKAGECONFIG ??= "pretty"
PACKAGECONFIG[pretty] = ",,,ncurses"
inherit features_check
REQUIRED_DISTRO_FEATURES = "ewaol-test"
From aa628ccdc4dec1c129c1bd98b53ef94d8c2e119a Mon Sep 17 00:00:00 2001
From: Richard Neill <richard.neill@arm.com>
Date: Mon, 9 May 2022 12:20:48 +0100
Subject: [PATCH] Fix status in teardown* overriding exit code
Patch fixes regression which produces false-negatives in v1.6.0, where the
teardown function can cause BATS to report success even if test cases fail.
Fixes: https://github.com/bats-core/bats-core/issues/575
Upstream-Status: Backport [Adapted from https://github.com/bats-core/bats-core/commit/5f372058b05f817e4e3a8dab27f83c30fd467504]
Signed-off-by: Richard Neill <richard.neill@arm.com>
---
libexec/bats-core/bats-exec-file | 18 ++++++++----------
libexec/bats-core/bats-exec-suite | 12 ++++++------
libexec/bats-core/bats-exec-test | 8 ++++----
3 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/libexec/bats-core/bats-exec-file b/libexec/bats-core/bats-exec-file
index 298441b..63452c7 100755
--- a/libexec/bats-core/bats-exec-file
+++ b/libexec/bats-core/bats-exec-file
@@ -118,7 +118,6 @@ bats_run_teardown_file() {
bats_file_teardown_trap() {
bats_run_teardown_file
- local status=0
bats_file_exit_trap
}
@@ -144,9 +143,9 @@ bats_file_exit_trap() {
bats_print_failed_command "${stack_trace[@]}" >&3
bats_prefix_lines_for_tap_output < "$BATS_OUT" | bats_replace_filename >&3
rm -rf "$BATS_OUT"
- status=1
+ bats_exec_file_status=1
fi
- exit $status
+ exit $bats_exec_file_status
}
function setup_file() {
@@ -250,15 +249,15 @@ bats_read_tests_list_file() {
}
bats_run_tests() {
- status=0
+ bats_exec_file_status=0
if [[ "$num_jobs" != 1 && "${BATS_NO_PARALLELIZE_WITHIN_FILE-False}" == False ]]; then
export BATS_SEMAPHORE_NUMBER_OF_SLOTS="$num_jobs"
- bats_run_tests_in_parallel "$BATS_RUN_TMPDIR/parallel_output" || status=1
+ bats_run_tests_in_parallel "$BATS_RUN_TMPDIR/parallel_output" || bats_exec_file_status=1
else
for test_name in "${tests_to_run[@]}"; do
if [[ "${BATS_INTERRUPTED-NOTSET}" != NOTSET ]]; then
- status=130 # bash's code for SIGINT exits
+ bats_exec_file_status=130 # bash's code for SIGINT exits
break
fi
# Only handle non-empty lines
@@ -267,14 +266,13 @@ bats_run_tests() {
((++test_number_in_file))
# deal with empty flags to avoid spurious "unbound variable" errors on Bash 4.3 and lower
if [[ "${#flags[@]}" -gt 0 ]]; then
- "$BATS_LIBEXEC/bats-exec-test" "${flags[@]}" "$filename" "$test_name" "$test_number_in_suite" "$test_number_in_file" || status=1
+ "$BATS_LIBEXEC/bats-exec-test" "${flags[@]}" "$filename" "$test_name" "$test_number_in_suite" "$test_number_in_file" || bats_exec_file_status=1
else
- "$BATS_LIBEXEC/bats-exec-test" "$filename" "$test_name" "$test_number_in_suite" "$test_number_in_file" || status=1
+ "$BATS_LIBEXEC/bats-exec-test" "$filename" "$test_name" "$test_number_in_suite" "$test_number_in_file" || bats_exec_file_status=1
fi
fi
done
fi
- export status
}
bats_create_file_tempdirs() {
@@ -322,4 +320,4 @@ bats_run_tests
trap bats_interrupt_trap INT
bats_run_teardown_file
-exit $status
+exit $bats_exec_file_status
diff --git a/libexec/bats-core/bats-exec-suite b/libexec/bats-core/bats-exec-suite
index 05c66f4..4d440ae 100755
--- a/libexec/bats-core/bats-exec-suite
+++ b/libexec/bats-core/bats-exec-suite
@@ -135,10 +135,10 @@ bats_exit_trap() {
if [[ ${BATS_INTERRUPTED-NOTSET} != NOTSET ]]; then
printf "\n# Received SIGINT, aborting ...\n\n"
fi
- exit "$status"
+ exit "$bats_exec_suite_status"
}
-status=0
+bats_exec_suite_status=0
printf '1..%d\n' "${test_count}"
# No point on continuing if there's no tests.
@@ -163,15 +163,15 @@ if [[ "$num_jobs" -gt 1 ]] && [[ -z "$bats_no_parallelize_across_files" ]]; then
# shellcheck disable=SC2086,SC2068
# we need to handle the quoting of ${flags[@]} ourselves,
# because parallel can only quote it as one
- parallel --keep-order --jobs "$num_jobs" bats-exec-file "$(printf "%q " "${flags[@]}")" "{}" "$TESTS_LIST_FILE" ::: "${BATS_UNIQUE_TEST_FILENAMES[@]}" 2>&1 || status=1
+ parallel --keep-order --jobs "$num_jobs" bats-exec-file "$(printf "%q " "${flags[@]}")" "{}" "$TESTS_LIST_FILE" ::: "${BATS_UNIQUE_TEST_FILENAMES[@]}" 2>&1 || bats_exec_suite_status=1
else
for filename in "${BATS_UNIQUE_TEST_FILENAMES[@]}"; do
if [[ "${BATS_INTERRUPTED-NOTSET}" != NOTSET ]]; then
- status=130 # bash's code for SIGINT exits
+ bats_exec_suite_status=130 # bash's code for SIGINT exits
break
fi
- bats-exec-file "${flags[@]}" "$filename" "${TESTS_LIST_FILE}" || status=1
+ bats-exec-file "${flags[@]}" "$filename" "${TESTS_LIST_FILE}" || bats_exec_suite_status=1
done
fi
-exit "$status"
+exit "$bats_exec_suite_status"
diff --git a/libexec/bats-core/bats-exec-test b/libexec/bats-core/bats-exec-test
index aae4572..57bdf18 100755
--- a/libexec/bats-core/bats-exec-test
+++ b/libexec/bats-core/bats-exec-test
@@ -94,18 +94,18 @@ source "$BATS_ROOT/lib/bats-core/tracing.bash"
bats_teardown_trap() {
bats_check_status_from_trap
- local status=0
+ local bats_teardown_trap_status=0
# mark the start of this function to distinguish where skip is called
# parameter 1 will signify the reason why this function was called
# this is used to identify when this is called as exit trap function
BATS_TEARDOWN_STARTED=${1:-1}
- teardown >>"$BATS_OUT" 2>&1 || status="$?"
+ teardown >>"$BATS_OUT" 2>&1 || bats_teardown_trap_status="$?"
- if [[ $status -eq 0 ]]; then
+ if [[ $bats_teardown_trap_status -eq 0 ]]; then
BATS_TEARDOWN_COMPLETED=1
elif [[ -n "$BATS_TEST_COMPLETED" ]]; then
BATS_DEBUG_LAST_STACK_TRACE_IS_VALID=1
- BATS_ERROR_STATUS="$status"
+ BATS_ERROR_STATUS="$bats_teardown_trap_status"
fi
bats_exit_trap
--
2.25.1
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment