1*0a6a1f1dSLionel Sambuc# 2*0a6a1f1dSLionel Sambuc# Automated Testing Framework (atf) 3*0a6a1f1dSLionel Sambuc# 4*0a6a1f1dSLionel Sambuc# Copyright (c) 2007 The NetBSD Foundation, Inc. 5*0a6a1f1dSLionel Sambuc# All rights reserved. 6*0a6a1f1dSLionel Sambuc# 7*0a6a1f1dSLionel Sambuc# Redistribution and use in source and binary forms, with or without 8*0a6a1f1dSLionel Sambuc# modification, are permitted provided that the following conditions 9*0a6a1f1dSLionel Sambuc# are met: 10*0a6a1f1dSLionel Sambuc# 1. Redistributions of source code must retain the above copyright 11*0a6a1f1dSLionel Sambuc# notice, this list of conditions and the following disclaimer. 12*0a6a1f1dSLionel Sambuc# 2. Redistributions in binary form must reproduce the above copyright 13*0a6a1f1dSLionel Sambuc# notice, this list of conditions and the following disclaimer in the 14*0a6a1f1dSLionel Sambuc# documentation and/or other materials provided with the distribution. 15*0a6a1f1dSLionel Sambuc# 16*0a6a1f1dSLionel Sambuc# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17*0a6a1f1dSLionel Sambuc# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18*0a6a1f1dSLionel Sambuc# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19*0a6a1f1dSLionel Sambuc# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20*0a6a1f1dSLionel Sambuc# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21*0a6a1f1dSLionel Sambuc# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22*0a6a1f1dSLionel Sambuc# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23*0a6a1f1dSLionel Sambuc# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*0a6a1f1dSLionel Sambuc# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25*0a6a1f1dSLionel Sambuc# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26*0a6a1f1dSLionel Sambuc# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27*0a6a1f1dSLionel Sambuc# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*0a6a1f1dSLionel Sambuc# 29*0a6a1f1dSLionel Sambuc 30*0a6a1f1dSLionel Sambucatf_tps_writer_info() 31*0a6a1f1dSLionel Sambuc{ 32*0a6a1f1dSLionel Sambuc class=${1}; shift 33*0a6a1f1dSLionel Sambuc echo "info: ${class}, $*" 34*0a6a1f1dSLionel Sambuc} 35*0a6a1f1dSLionel Sambuc 36*0a6a1f1dSLionel Sambucinfo_start_hook() 37*0a6a1f1dSLionel Sambuc{ 38*0a6a1f1dSLionel Sambuc default_info_start_hook "${@}" 39*0a6a1f1dSLionel Sambuc} 40*0a6a1f1dSLionel Sambuc 41*0a6a1f1dSLionel Sambucdefault_info_start_hook() 42*0a6a1f1dSLionel Sambuc{ 43*0a6a1f1dSLionel Sambuc atf_tps_writer_info "atf.version" $(atf-version | head -n 1) 44*0a6a1f1dSLionel Sambuc 45*0a6a1f1dSLionel Sambuc atf_tps_writer_info "tests.root" $(pwd) 46*0a6a1f1dSLionel Sambuc 47*0a6a1f1dSLionel Sambuc atf_tps_writer_info "time.start" $(date) 48*0a6a1f1dSLionel Sambuc 49*0a6a1f1dSLionel Sambuc atf_tps_writer_info "uname.sysname" $(uname -s) 50*0a6a1f1dSLionel Sambuc atf_tps_writer_info "uname.nodename" $(uname -n) 51*0a6a1f1dSLionel Sambuc atf_tps_writer_info "uname.release" $(uname -r) 52*0a6a1f1dSLionel Sambuc atf_tps_writer_info "uname.version" $(uname -v) 53*0a6a1f1dSLionel Sambuc atf_tps_writer_info "uname.machine" $(uname -m) 54*0a6a1f1dSLionel Sambuc 55*0a6a1f1dSLionel Sambuc # Add all the environment variables to the report. We have to be 56*0a6a1f1dSLionel Sambuc # careful with those that span over multiple lines; otherwise their 57*0a6a1f1dSLionel Sambuc # values could be printed as multiple different variables (one per 58*0a6a1f1dSLionel Sambuc # line), which is incorrect. 59*0a6a1f1dSLionel Sambuc oldifs="${IFS}" 60*0a6a1f1dSLionel Sambuc IFS=' 61*0a6a1f1dSLionel Sambuc' 62*0a6a1f1dSLionel Sambuc set -- $(env) 63*0a6a1f1dSLionel Sambuc val=${1}; shift 64*0a6a1f1dSLionel Sambuc while [ ${#} -gt 0 ]; do 65*0a6a1f1dSLionel Sambuc if echo "${1}" | grep '^[a-zA-Z0-0_][a-zA-Z0-9_]*=' >/dev/null; then 66*0a6a1f1dSLionel Sambuc atf_tps_writer_info "env" "${val}" 67*0a6a1f1dSLionel Sambuc val="${1}" 68*0a6a1f1dSLionel Sambuc else 69*0a6a1f1dSLionel Sambuc val="${val} ${1}" 70*0a6a1f1dSLionel Sambuc fi 71*0a6a1f1dSLionel Sambuc shift 72*0a6a1f1dSLionel Sambuc done 73*0a6a1f1dSLionel Sambuc atf_tps_writer_info "env" "${val}" 74*0a6a1f1dSLionel Sambuc IFS="${oldifs}" 75*0a6a1f1dSLionel Sambuc} 76*0a6a1f1dSLionel Sambuc 77*0a6a1f1dSLionel Sambucinfo_end_hook() 78*0a6a1f1dSLionel Sambuc{ 79*0a6a1f1dSLionel Sambuc default_info_end_hook "${@}" 80*0a6a1f1dSLionel Sambuc} 81*0a6a1f1dSLionel Sambuc 82*0a6a1f1dSLionel Sambucdefault_info_end_hook() 83*0a6a1f1dSLionel Sambuc{ 84*0a6a1f1dSLionel Sambuc atf_tps_writer_info "time.end" $(date) 85*0a6a1f1dSLionel Sambuc} 86*0a6a1f1dSLionel Sambuc 87*0a6a1f1dSLionel Sambucsitehooks=$(atf-config -t atf_confdir)/atf-run.hooks 88*0a6a1f1dSLionel Sambucuserhooks=${HOME}/.atf/atf-run.hooks 89*0a6a1f1dSLionel Sambuc[ -f ${sitehooks} ] && . ${sitehooks} 90*0a6a1f1dSLionel Sambuc[ -f ${userhooks} ] && . ${userhooks} 91*0a6a1f1dSLionel Sambuc 92*0a6a1f1dSLionel Sambuceval ${1} 93*0a6a1f1dSLionel Sambuc 94*0a6a1f1dSLionel Sambuc# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 95