From 0d080e57ecdc7ba6fd2860d5339425057475f932 Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Mon, 23 Sep 2019 15:31:03 +0900 Subject: [PATCH] [Android/Test] script to run unittest Update script to run the unittest on target device. Note that, the testcases are android instrumented test which requires the target device. Cmd to build and run test: ./build-android-lib.sh --run_unittest=yes Signed-off-by: Jaeyun Jung --- api/android/build-android-lib.sh | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/api/android/build-android-lib.sh b/api/android/build-android-lib.sh index 25a68f2..f2fc62c 100644 --- a/api/android/build-android-lib.sh +++ b/api/android/build-android-lib.sh @@ -16,6 +16,9 @@ nnstreamer_target_abi="'armeabi-v7a', 'arm64-v8a'" # Set tensorflow-lite version (available: 1.9 and 1.13) nnstreamer_tf_lite_ver=1.13 +# Run unittest after build procedure is done +run_unittest='no' + # Variables to release library (GROUP:ARTIFACT:VERSION) release_bintray='no' @@ -30,6 +33,8 @@ for arg in "$@"; do bintray_user_name=${arg#*=};; --bintray_user_key=*) bintray_user_key=${arg#*=};; + --run_unittest=*) + run_unittest=${arg#*=};; esac done @@ -52,6 +57,7 @@ function check_package() { check_package svn check_package sed check_package patch +check_package zip # Android SDK (Set your own path) [ -z "$ANDROID_HOME" ] && echo "Need to set ANDROID_HOME." && exit 1 @@ -70,18 +76,18 @@ echo "GStreamer binaries: $GSTREAMER_ROOT_ANDROID" echo "NNStreamer root directory: $NNSTREAMER_ROOT" echo "Start to build NNStreamer library for Android." +pushd $NNSTREAMER_ROOT # Modify header for Android -cd $NNSTREAMER_ROOT if ! patch -R --dry-run -sfp1 -i $NNSTREAMER_ROOT/packaging/non_tizen_build.patch; then - patch -sfp1 -i $NNSTREAMER_ROOT/packaging/non_tizen_build.patch + patch -sfp1 -i $NNSTREAMER_ROOT/packaging/non_tizen_build.patch fi # Make directory to build NNStreamer library mkdir -p build_android_lib # Copy the files (native and java to build Android library) to build directory -cp -r $NNSTREAMER_ROOT/api/android/* ./build_android_lib +cp -r ./api/android/* ./build_android_lib # Get the prebuilt libraries and build-script svn --force export https://github.com/nnsuite/nnstreamer-android-resource/trunk/android_api ./build_android_lib @@ -90,6 +96,7 @@ pushd ./build_android_lib tar xJf ./ext-files/tensorflow-lite-$nnstreamer_tf_lite_ver.tar.xz -C ./api/src/main/jni +# Update target ABI sed -i "s|abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'|abiFilters $nnstreamer_target_abi|" api/build.gradle # Add dependency for release @@ -112,12 +119,13 @@ publish {\n\ fi echo "Starting gradle build for Android library." -nnstreamer_android_api_lib=./api/build/outputs/aar/api-release.aar # Build Android library. ./gradlew api:build # Check if build procedure is done. +nnstreamer_android_api_lib=./api/build/outputs/aar/api-release.aar + if [[ -e $nnstreamer_android_api_lib ]]; then result_directory=android_lib today=$(date '+%Y-%m-%d') @@ -127,9 +135,17 @@ if [[ -e $nnstreamer_android_api_lib ]]; then cp $nnstreamer_android_api_lib ../$result_directory/nnstreamer-api-$today.aar if [[ $release_bintray == 'yes' ]]; then - echo "Upload NNStreamer library to Bintray" + echo "Upload NNStreamer library to Bintray." ./gradlew api:bintrayUpload -PbintrayUser=$bintray_user_name -PbintrayKey=$bintray_user_key -PdryRun=false fi + + if [[ $run_unittest == 'yes' ]]; then + echo "Run instrumented test." + ./gradlew api:connectedCheck + + zip -r nnstreamer-api-unittest-$today.zip api/build/reports + cp nnstreamer-api-unittest-$today.zip ../$result_directory + fi else echo "Failed to build NNStreamer library." fi @@ -141,3 +157,5 @@ rm -rf build_android_lib # Clean the applied patches patch -R -sfp1 -i $NNSTREAMER_ROOT/packaging/non_tizen_build.patch + +popd -- 2.7.4