#!/bin/bash ##===----------------------------------------------------------------------===## ## ## This source file is part of the SwiftNIO open source project ## ## Copyright (c) 2017-2018 Apple Inc. and the SwiftNIO project authors ## Licensed under Apache License v2.0 ## ## See LICENSE.txt for license information ## See CONTRIBUTORS.txt for the list of SwiftNIO project authors ## ## SPDX-License-Identifier: Apache-2.0 ## ##===----------------------------------------------------------------------===## junit_testsuite_time=0 function junit_output_write() { extra_flags="" if [[ "$1" == "-n" ]]; then extra_flags="-n" shift fi test -n "$junit_xml_output" echo $extra_flags "$*" >> "$junit_xml_output" } function junit_output_cat() { cat "$@" >> "$junit_xml_output" } # search, replace function junit_output_replace() { test -n "$junit_xml_output" case "$(uname -s)" in Linux) sed -i "s/$1/$2/g" "$junit_xml_output" ;; *) sed -i "" "s/$1/$2/g" "$junit_xml_output" ;; esac } function plugin_junit_xml_test_suite_begin() { junit_testsuite_time=0 junit_output_write "" } function plugin_junit_xml_test_suite_end() { junit_repl_success_and_fail "$1" "$2" junit_output_write "" } # test_name function plugin_junit_xml_test_begin() { junit_output_write -n " " junit_testsuite_time=$((junit_testsuite_time + time_ms)) } function plugin_junit_xml_test_fail() { time_ms=$1 junit_output_write " time='$time_ms'>" junit_output_write " " junit_output_write " " junit_output_write ' ' junit_output_write " " junit_output_write " " } function plugin_junit_xml_test_end() { junit_output_write " " } function junit_repl_success_and_fail() { junit_output_replace XXX-TESTS-XXX "$(($1 + $2))" junit_output_replace XXX-FAILURES-XXX "$2" junit_output_replace XXX-TIME-XXX "$junit_testsuite_time" } function plugin_junit_xml_summary_ok() { junit_output_write "" } function plugin_junit_xml_summary_fail() { junit_output_write "" } function plugin_junit_xml_init() { junit_xml_output="" for f in "$@"; do if [[ "$junit_xml_output" = "PLACEHOLDER" ]]; then junit_xml_output="$f" fi if [[ "$f" == "--junit-xml" && -z "$junit_xml_output" ]]; then junit_xml_output="PLACEHOLDER" fi done if [[ -z "$junit_xml_output" || "$junit_xml_output" = "PLACEHOLDER" ]]; then echo >&2 "ERROR: you need to specify the output after the --junit-xml argument" false fi echo "" > "$junit_xml_output" }