#!/bin/sh # # SPDX-License-Identifier: GPL-2.0-or-later # # PASST - Plug A Simple Socket Transport # for qemu/UNIX domain socket mode # # PASTA - Pack A Subtle Tap Abstraction # for network namespace/tap device mode # # test/lib/exeter - Run exeter tests within the rest of passt's tests # # Copyright Red Hat # Author: David Gibson EXETOOL="${BASEPATH}/exeter/exetool/exetool" # is_exeter() - Determine if a test file is an exeter program # $@: Command line to invoke test program is_exeter() { ${EXETOOL} probe -- "${@}" } # exeter() - Run each test in an exeter program, logging each test separately # $@: Command line to invoke exeter test program exeter() { STATESETUP="${STATEBASE}/${1}" mkdir -p "${STATESETUP}" context_setup_host host layout_host cd test __ntests=$(${EXETOOL} list -- "${@}" | wc -l) if [ ${?} != 0 ]; then info "Failed to get exeter manifest for ${@}" pause_continue \ "Press any key to pause test session" \ "Resuming in " \ "Paused, press any key to continue" \ 5 return fi status_file_start "${*} (exeter)" ${__ntests} [ ${CI} -eq 1 ] && video_link "${1}" for __testid in $(${EXETOOL} list -- "${@}"); do __desc="$(${EXETOOL} desc -- "${@}" -- "${__testid}")" status_test_start "${__desc}" context_run host "${*} '${__testid}'" && status_test_ok || status_test_fail done cd .. teardown_context_watch ${PANE_HOST} host }