1d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# Run all tests 2d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 3d74329cef6373a13fba75772245c5feb495aa020David 'Digit' TurnerPROGDIR=`dirname $0` 4d74329cef6373a13fba75772245c5feb495aa020David 'Digit' TurnerPROGDIR=`cd $PROGDIR && pwd` 5f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner 6f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner# Assume that we are under tests/ 7f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner# and that the samples will be under samples/ and platforms/android-N/samples/ 8f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner# 9f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' TurnerROOTDIR=`dirname $PROGDIR` 10d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 11d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# Sanity checks: 12d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 13d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerif [ -z "$NDK" ] ; then 14d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "ERROR: Please define NDK in your environment to point to the root of your NDK install." 15d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner exit 1 16d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerfi 17d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 18d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerif [ ! -d "$NDK" ] ; then 19d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "ERROR: Your NDK variable does not point to a directory: $NDK" 20d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner exit 2 21d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerfi 22d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 23d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerif [ ! -f "$NDK/ndk-build" -o ! -f "$NDK/build/core/ndk-common.sh" ] ; then 24d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "ERROR: Your NDK variable does not point to a valid NDK directory: $NDK" 25d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner exit 3 26d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerfi 27d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 28f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turnerif [ ! -d "$NDK/platforms" -o ! -d "$NDK/samples" ] ; then 29f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner echo "ERROR: Your NDK directory does not have 'platforms' or 'samples' directories." 30f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner echo "Please run $NDK/build/tools/build-platforms.sh first !" 31f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner exit 3 32f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turnerfi 33f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner 34d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 35d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# Parse options 36d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 37d74329cef6373a13fba75772245c5feb495aa020David 'Digit' TurnerJOBS= 38d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerwhile [ -n "$1" ]; do 39d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner opt="$1" 40d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 41d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner case "$opt" in 42d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner --help|-h|-\?) 43d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner OPTION_HELP=yes 44d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner ;; 45d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner --verbose) 46d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner VERBOSE=yes 47d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner ;; 48d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner -j*) 49d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner JOBS="$opt" 50d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner shift 51d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner ;; 52d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner --jobs=*) 53d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner JOBS="-j$optarg" 54d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner ;; 55d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner -*) # unknown options 56d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "ERROR: Unknown option '$opt', use --help for list of valid ones." 57d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner exit 1 58d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner ;; 59d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner *) # Simply record parameter 60d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner if [ -z "$PARAMETERS" ] ; then 61d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner PARAMETERS="$opt" 62d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner else 63d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner PARAMETERS="$PARAMETERS $opt" 64d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner fi 65d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner ;; 66d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner esac 67d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner shift 68d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerdone 69d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 70d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerif [ "$OPTION_HELP" = "yes" ] ; then 71d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "Usage: $PROGNAME [options]" 72d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "" 73d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "Run all NDK automated tests at once." 74d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "" 75d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "Valid options:" 76d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "" 77d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo " --help|-h|-? Print this help" 78d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo " --verbose Enable verbose mode" 79d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo " -j<N> --jobs=<N> Launch parallel builds" 80d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner echo "" 81d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner exit 0 82d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerfi 83d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 84d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 85d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# Create log file 86d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 87d74329cef6373a13fba75772245c5feb495aa020David 'Digit' TurnerMYLOG=/tmp/ndk-tests.log 88d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnermkdir -p `dirname $MYLOG` 89d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerrm -f $MYLOG 90d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerecho "NDK automated tests log file" > $MYLOG 91d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 926d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turnerif [ "$VERBOSE" = "yes" ] ; then 936d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turnerrun () 946d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner{ 956d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner $NDK/ndk-build -B $JOBS 2>&1 966d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner} 976d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turnerelse 986d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turnerrun () 996d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner{ 1006d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner $NDK/ndk-build -B $JOBS >> $MYLOG 2>&1 1016d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner} 1026d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turnerfi 103d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 104f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner# Find sample directories 105f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' TurnerSAMPLE_DIRS=`cd $ROOTDIR && ls -d samples/*` 106f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' TurnerSAMPLE_DIRS="$SAMPLE_DIRS "`cd $ROOTDIR && ls -d platforms/android-*/samples/*` 107f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner 108d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 109d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# Rebuild all samples first 110f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner# $1: sample name 111d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner# 112d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerbuild_sample () 113d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner{ 114f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner echo "Building NDK sample: `basename $1`" 115f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner SAMPLEDIR=$ROOTDIR/$1 116f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner cd $SAMPLEDIR 1176d0ef0df9852b3750f88bb38dfaeebe527df7be3David 'Digit' Turner run $NDK/ndk-build -B $JOBS 118d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner if [ $? != 0 ] ; then 119f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner echo "!!! BUILD FAILURE [$1]!!! See $MYLOG for details or use --verbose option!" 120d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner exit 1 121d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner fi 122d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner} 123d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turner 124f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turnerfor DIR in $SAMPLE_DIRS; do 125f4790e6f9e47347996e62ecd27ff55b6499cf97aDavid 'Digit' Turner build_sample $DIR 126d74329cef6373a13fba75772245c5feb495aa020David 'Digit' Turnerdone 127