xref: /aosp_15_r20/external/gemmlowp/scripts/test-android.sh (revision 5f39d1b313f0528e11bae88b3029b54b9e1033e7)
1*5f39d1b3SJooyung Han#!/bin/bash
2*5f39d1b3SJooyung Han# Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
3*5f39d1b3SJooyung Han#
4*5f39d1b3SJooyung Han# Licensed under the Apache License, Version 2.0 (the "License");
5*5f39d1b3SJooyung Han# you may not use this file except in compliance with the License.
6*5f39d1b3SJooyung Han# You may obtain a copy of the License at
7*5f39d1b3SJooyung Han#
8*5f39d1b3SJooyung Han#     http://www.apache.org/licenses/LICENSE-2.0
9*5f39d1b3SJooyung Han#
10*5f39d1b3SJooyung Han# Unless required by applicable law or agreed to in writing, software
11*5f39d1b3SJooyung Han# distributed under the License is distributed on an "AS IS" BASIS,
12*5f39d1b3SJooyung Han# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5f39d1b3SJooyung Han# See the License for the specific language governing permissions and
14*5f39d1b3SJooyung Han# limitations under the License.
15*5f39d1b3SJooyung Han
16*5f39d1b3SJooyung Hanif [ -z "$CXX" ]
17*5f39d1b3SJooyung Hanthen
18*5f39d1b3SJooyung Han  echo "please set the CXX environment variable to point to your native Android toolchain C++ compiler"
19*5f39d1b3SJooyung Han  exit 1
20*5f39d1b3SJooyung Hanfi
21*5f39d1b3SJooyung Han
22*5f39d1b3SJooyung Handefault_cflags="-O3"
23*5f39d1b3SJooyung Han
24*5f39d1b3SJooyung Hanif [ "$#" -eq 0 ]
25*5f39d1b3SJooyung Hanthen
26*5f39d1b3SJooyung Han  echo "Usage: $0 files... [cflags...]"
27*5f39d1b3SJooyung Han  echo "All command-line parameters are passed along to the C++ compiler, so they can \
28*5f39d1b3SJooyung Hanbe either source files, or compiler flags."
29*5f39d1b3SJooyung Han  echo "Default cflags: $default_cflags"
30*5f39d1b3SJooyung Han  echo "Relies on the CXX environment variable to point to an Android C++ toolchain compiler."
31*5f39d1b3SJooyung Han  exit 1
32*5f39d1b3SJooyung Hanfi
33*5f39d1b3SJooyung Han
34*5f39d1b3SJooyung HanEXE=gemmlowp-android-binary
35*5f39d1b3SJooyung Han
36*5f39d1b3SJooyung Hanif [[ $CXX =~ .*aarch64.* ]]
37*5f39d1b3SJooyung Hanthen
38*5f39d1b3SJooyung Han  NEON_FLAGS=
39*5f39d1b3SJooyung Hanelse
40*5f39d1b3SJooyung Han  NEON_FLAGS="-mfpu=neon -mfloat-abi=softfp"
41*5f39d1b3SJooyung Hanfi
42*5f39d1b3SJooyung Han
43*5f39d1b3SJooyung Han$CXX \
44*5f39d1b3SJooyung Han --std=c++11 \
45*5f39d1b3SJooyung Han -Wall -Wextra -pedantic \
46*5f39d1b3SJooyung Han -fPIE -pie $NEON_FLAGS \
47*5f39d1b3SJooyung Han -lstdc++ -latomic \
48*5f39d1b3SJooyung Han -I . -I .. \
49*5f39d1b3SJooyung Han -o $EXE \
50*5f39d1b3SJooyung Han -Wno-unused-variable -Wno-unused-parameter \
51*5f39d1b3SJooyung Han $default_cflags \
52*5f39d1b3SJooyung Han $*
53*5f39d1b3SJooyung Han
54*5f39d1b3SJooyung Hanif [ $? != 0 ]; then
55*5f39d1b3SJooyung Han  echo "build failed"
56*5f39d1b3SJooyung Han  exit 1
57*5f39d1b3SJooyung Hanfi
58*5f39d1b3SJooyung Han
59*5f39d1b3SJooyung Hanadb root
60*5f39d1b3SJooyung Han
61*5f39d1b3SJooyung Hanif [ $? != 0 ]; then
62*5f39d1b3SJooyung Han  echo "$0: adb root failed"
63*5f39d1b3SJooyung Han  exit 1
64*5f39d1b3SJooyung Hanfi
65*5f39d1b3SJooyung Han
66*5f39d1b3SJooyung Hanadb shell mkdir -p /data/local/tmp
67*5f39d1b3SJooyung Han
68*5f39d1b3SJooyung Hanif [ $? != 0 ]; then
69*5f39d1b3SJooyung Han  echo "$0: adb shell failed to mkdir /data/local/tmp"
70*5f39d1b3SJooyung Han  exit 1
71*5f39d1b3SJooyung Hanfi
72*5f39d1b3SJooyung Han
73*5f39d1b3SJooyung Hanadb push $EXE /data/local/tmp
74*5f39d1b3SJooyung Han
75*5f39d1b3SJooyung Hanif [ $? != 0 ]; then
76*5f39d1b3SJooyung Han  echo "$0: adb push failed to write to /data/local/tmp"
77*5f39d1b3SJooyung Han  exit 1
78*5f39d1b3SJooyung Hanfi
79*5f39d1b3SJooyung Han
80*5f39d1b3SJooyung Hanecho adb shell "/data/local/tmp/$EXE $TESTARGS"
81*5f39d1b3SJooyung Han
82*5f39d1b3SJooyung Hanadb shell "/data/local/tmp/$EXE $TESTARGS" | tee "log-$EXE"
83*5f39d1b3SJooyung Han
84*5f39d1b3SJooyung Hanif [ $? != 0 ]; then
85*5f39d1b3SJooyung Han  echo "$0: adb shell failed to run binary on device"
86*5f39d1b3SJooyung Han  exit 1
87*5f39d1b3SJooyung Hanfi
88