10ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson#!/bin/bash 20ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# 30ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Copyright 2008, Google Inc. 40ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# All rights reserved. 5d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# 6d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# Redistribution and use in source and binary forms, with or without 7d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# modification, are permitted provided that the following conditions are 8d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# met: 9d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# 10d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# * Redistributions of source code must retain the above copyright 11d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# notice, this list of conditions and the following disclaimer. 12d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# * Redistributions in binary form must reproduce the above 13d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# copyright notice, this list of conditions and the following disclaimer 14d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# in the documentation and/or other materials provided with the 15d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# distribution. 16d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# * Neither the name of Google Inc. nor the names of its 17d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# contributors may be used to endorse or promote products derived from 18d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# this software without specific prior written permission. 19d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# 20d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville 320ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Executes the samples and tests for the Google Test Framework. 330ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson 340ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Help the dynamic linker find the path to the libraries. 350ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonexport DYLD_FRAMEWORK_PATH=$BUILT_PRODUCTS_DIR 360ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonexport DYLD_LIBRARY_PATH=$BUILT_PRODUCTS_DIR 370ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson 380ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Create some executables. 390ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsontest_executables=$@ 400ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson 410ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Now execute each one in turn keeping track of how many succeeded and failed. 420ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonsucceeded=0 430ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonfailed=0 440ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonfailed_list=() 450ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonfor test in ${test_executables[*]}; do 460ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson "$test" 470ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson result=$? 480ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson if [ $result -eq 0 ]; then 490ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson succeeded=$(( $succeeded + 1 )) 500ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson else 510ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson failed=$(( failed + 1 )) 520ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson failed_list="$failed_list $test" 530ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson fi 540ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsondone 550ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson 560ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Report the successes and failures to the console. 570ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonecho "Tests complete with $succeeded successes and $failed failures." 580ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonif [ $failed -ne 0 ]; then 590ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson echo "The following tests failed:" 600ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson echo $failed_list 610ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonfi 620ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonexit $failed 63