@@ -40,9 +40,20 @@ if [ $# -lt 2 ]; then
4040 exit
4141fi
4242
43+ # Detect portable sed -i usage (GNU sed supports -i, BSD/macOS sed requires -i '')
44+ if sed --version > /dev/null 2>&1 ; then
45+ SED_INPLACE=(-i)
46+ else
47+ SED_INPLACE=(-i ' ' )
48+ fi
49+
4350pushd app/src/androidTest/java
4451
45- class=$( find | grep $2 | grep -E " java$|kt$" | head -n1| sed s' /\//\./' g | sed s' #^\.\.##' | sed s' #\.java##' | sed s' #\.kt##' )
52+ # Use explicit path for find for macOS/BSD compatibility and get the first matching java/kt file
53+ class_file=$( find . -type f \( -name " *.java" -o -name " *.kt" \) -print 2> /dev/null | grep " $2 " | grep -E " java$|kt$" | head -n1)
54+
55+ # convert found path to FQCN (remove leading ./, convert / to . and strip extension)
56+ class=$( echo " $class_file " | sed ' s#^\./##' | sed ' s#/#.#g' | sed ' s#\.java##' | sed ' s#\.kt##' )
4657
4758if [[ -z $class ]]; then
4859 echo " Class not found!"
@@ -62,8 +73,8 @@ if [ -e $3 ] ; then
6273else
6374 method=" #$3 "
6475
65- # check if method exists
66- if [[ $( grep -c $3 $( find | grep $2 | grep -E " java$|kt$ " | head -n1 ) ) -eq 0 ]]; then
76+ # check if method exists in the previously found file
77+ if [[ $( grep -c " $3 " " $class_file " ) -eq 0 ]]; then
6778 echo " Method not found!"
6879 exit 1
6980 fi
7687fi
7788
7889popd
79- sed -i s' #<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#' g app/src/main/res/values/setup.xml
90+ sed " ${SED_INPLACE[@]} " s' #<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#' g app/src/main/res/values/setup.xml
8091
8192# check if emulator is running
8293emulatorIsRunning=false
@@ -100,7 +111,7 @@ if [ "$emulatorIsRunning" == false ] ; then
100111 # If emulator of expected name doesn't exist, create it
101112 # TODO - this was copied from updateScreenshots.sh - move it to a common helper script
102113 if [[ $( emulator -list-avds | grep uiComparison -c) -eq 0 ]]; then
103- (sleep 5; echo " no" ) | avdmanager create avd -n uiComparison -c 100M -k " system-images;android-28;google_apis;x86 " --abi " google_apis/x86 "
114+ (sleep 5; echo " no" ) | avdmanager create avd -n uiComparison -c 100M -k " system-images;android-28;google_apis;arm64-v8a " --abi " google_apis/arm64-v8a "
104115 fi
105116
106117 " $( command -v emulator) " -writable-system -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-audio -skin 500x833 &
126137fi
127138
128139
129- sed -i s' #<bool name="is_beta">true</bool>#<bool name="is_beta">false</bool>#' g app/src/main/res/values/setup.xml
140+ sed " ${SED_INPLACE[@]} " s' #<bool name="is_beta">true</bool>#<bool name="is_beta">false</bool>#' g app/src/main/res/values/setup.xml
130141unset ANDROID_SERIAL
0 commit comments