1#!/bin/bash -f
2#----------------------------------------------------------------------------
3# Project:  Horizon
4# File:     run.sh
5#
6# Copyright 2009 Nintendo.  All rights reserved.
7#
8# These coded instructions, statements, and computer programs contain
9# proprietary information of Nintendo of America Inc. and/or Nintendo
10# Company Ltd., and are protected by Federal copyright law.  They may
11# not be disclosed to third parties or copied or duplicated in any form,
12# in whole or in part, without the prior written consent of Nintendo.
13#
14# $Date:: 2010-06-16#$
15# $Rev: 18535 $
16# $Author: mizutani_nakaba $
17#----------------------------------------------------------------------------
18
19ROOT=`cygpath -m ${HORIZON_ROOT}`
20TIME_OUT=30
21#TEST_EXIT_STRING='(^((CU_TEST_EXIT)|(nn::svc::Break\(\d+\) called)|(KernelPanic))|(Exception =+$))'
22TEST_EXIT_STRING='(^((CU_TEST_EXIT)|(KernelPanic))|(Exception =+$))'
23LOG_DIR=${ROOT}/log
24
25WF=${ROOT}/tools/_private/wf
26PP="ruby ${ROOT}/tools/_private/partner_partner.rb"
27
28function xmlcutter(){
29    sed -e '/^<!-- begin:/, /^<!-- end:/d'
30}
31
32TARGET_HARDWARES=`${WF} PARTNER | gawk '\
33$2 ~ /PARTNER-CTR\/J_0/{ print "CTR-MG20\\\\..*\\\\.MPCore" } \
34$2 ~ /PARTNER-CTR\/J_1/{ print "CTR-MG20\\\\..*\\\\.ARM946ES" } \
35$2 ~ /PARTNER-CTR\/J_0/{ print "CTR-TEG2\\\\..*\\\\.MPCore" } \
36$2 ~ /PARTNER-CTR\/J_1/{ print "CTR-TEG2\\\\..*\\\\.ARM946ES" } \
37$2 ~ /PARTNER-CTR\/WIN_0/  { print "CTR-MG20\\\\..*\\\\.MPCore" } \
38$2 ~ /PARTNER-CTR\/WIN_1/  { print "CTR-MG20\\\\..*\\\\.ARM946ES" } \
39$2 ~ /PARTNER-Jet(ARM)\/WIN_/  { print "CTR-NE1TB\\\\..*" } \
40'`
41#echo ${TARGET_HARDWARES}
42
43function debugger_available(){
44    name=$1
45    for HARDWARE in ${TARGET_HARDWARES}
46    do
47#        echo ${HARDWARE}
48        if (echo ${name} | grep "${HARDWARE}" > /dev/null); then
49#            echo yes
50            return 0
51        fi
52    done
53    return 1
54}
55
56function do_test(){
57    echo Started
58    for mcr in $*
59    do
60        mcr=`cygpath -m ${mcr}`
61        base=`basename ${mcr} .mcr`
62        dir=`dirname ${mcr}`
63        arch=`basename \`dirname ${dir}\``
64        mcrname=...`echo ${mcr} | tail -c -65`
65        if (debugger_available ${dir}); then
66            echo
67            echo "================================================================================"
68            echo " executing: ${mcrname}"
69            echo "================================================================================"
70
71            process_list_candidate=${dir}/${base}_process.list
72            if [ -r ${process_list_candidate} ]; then
73                cp -f ${process_list_candidate} ${dir}/process.list
74            fi
75
76            echo '~~~ snip ~~~'
77            ${PP} -T ${arch} -i ${mcr} -t ${TIME_OUT} -s "${TEST_EXIT_STRING}" | grep -v '^>' | xmlcutter | sed -e '1,60d'
78        else
79            echo "�K�؂ȃf�o�b�K���N������Ă��܂���: ${mcr}"
80        fi
81    done
82    #ruby $(ROOT)/tools/CommandLineTools/partner_partner.rb -e exit!
83}
84
85#mkdir -p "${LOG_DIR}"
86do_test $*
87