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