12b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson#!/bin/bash 22b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# 32b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Copyright 2008, Google Inc. 42b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# All rights reserved. 52b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# 62b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Redistribution and use in source and binary forms, with or without 72b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# modification, are permitted provided that the following conditions are 82b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# met: 92b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# 102b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# * Redistributions of source code must retain the above copyright 112b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# notice, this list of conditions and the following disclaimer. 122b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# * Redistributions in binary form must reproduce the above 132b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# copyright notice, this list of conditions and the following disclaimer 142b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# in the documentation and/or other materials provided with the 152b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# distribution. 162b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# * Neither the name of Google Inc. nor the names of its 172b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# contributors may be used to endorse or promote products derived from 182b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# this software without specific prior written permission. 192b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# 202b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 212b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 222b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 232b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 242b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 252b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 262b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 272b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 282b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 292b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 302b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 312b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson 322b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Executes the samples and tests for the Google Test Framework. 332b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson 342b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Help the dynamic linker find the path to the libraries. 352b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonexport DYLD_FRAMEWORK_PATH=$BUILT_PRODUCTS_DIR 362b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonexport DYLD_LIBRARY_PATH=$BUILT_PRODUCTS_DIR 372b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson 382b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Create some executables. 392b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksontest_executables=$@ 402b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson 412b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Now execute each one in turn keeping track of how many succeeded and failed. 422b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonsucceeded=0 432b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonfailed=0 442b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonfailed_list=() 452b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonfor test in ${test_executables[*]}; do 462b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson "$test" 472b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson result=$? 482b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson if [ $result -eq 0 ]; then 492b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson succeeded=$(( $succeeded + 1 )) 502b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson else 512b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson failed=$(( failed + 1 )) 522b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson failed_list="$failed_list $test" 532b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson fi 542b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksondone 552b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson 562b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson# Report the successes and failures to the console. 572b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonecho "Tests complete with $succeeded successes and $failed failures." 582b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonif [ $failed -ne 0 ]; then 592b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson echo "The following tests failed:" 602b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jackson echo $failed_list 612b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonfi 622b608176ebb3ae26cd536dbb5809d6941affec33preston.a.jacksonexit $failed 63