@@ -126,6 +126,11 @@ def run_android(vert, frag, json, skip_render):
126
126
adb ('shell touch ' + ANDROID_SDCARD + '/SKIP_RENDER' )
127
127
128
128
adb ('logcat -c' )
129
+ cmd = ANDROID_APP + '/android.app.NativeActivity'
130
+ # Explicitely set all options, don't rely on defaults
131
+ flags = '--num-render 3 --png-template image --sanity-before sanity_before.png --sanity-after sanity_after.png'
132
+ # Pass command line args as Intent extra. Need to nest-quote, hence the "\'blabla\'"
133
+ cmd += '-e gfz "\' ' + flags + '\' "'
129
134
adb ('shell am start ' + ANDROID_APP + '/android.app.NativeActivity' )
130
135
131
136
# Busy wait
@@ -141,7 +146,7 @@ def run_android(vert, frag, json, skip_render):
141
146
# be able to detect the app pid.
142
147
time .sleep (0.1 )
143
148
144
- retcode = adb ('shell test -f /sdcard/graphicsfuzz /DONE' ).returncode
149
+ retcode = adb ('shell test -f ' + ANDROID_SDCARD + ' /DONE' ).returncode
145
150
if retcode == 0 :
146
151
done = True
147
152
break
@@ -150,7 +155,7 @@ def run_android(vert, frag, json, skip_render):
150
155
if retcode == 1 :
151
156
152
157
# double check that no DONE file is present
153
- retcode = adb ('shell test -f /sdcard/graphicsfuzz /DONE' ).returncode
158
+ retcode = adb ('shell test -f ' + ANDROID_SDCARD + ' /DONE' ).returncode
154
159
if retcode == 0 :
155
160
done = True
156
161
break
@@ -168,6 +173,33 @@ def run_android(vert, frag, json, skip_render):
168
173
elif not done :
169
174
status = 'TIMEOUT'
170
175
176
+ # Check sanity
177
+ if status == 'SUCCESS' :
178
+ sanity_png_before = ANDROID_SDCARD + '/sanity_before.png'
179
+ sanity_png_after = ANDROID_SDCARD + '/sanity_after.png'
180
+ sanity_before_exists = adb ('shell test -f ' + sanity_png_before ).returncode == 0
181
+ sanity_after_exists = adb ('shell test -f ' + sanity_png_after ).returncode == 0
182
+ if sanity_before_exists and sanity_after_exists :
183
+ # diff the sanity images on device
184
+ retcode = adb ('shell diff ' + sanity_png_before + ' ' + sanity_png_after ).returncode
185
+ if retcode != 0 :
186
+ status = 'SANITY_ERROR'
187
+
188
+ # Check nondet.
189
+ if status == 'SUCCESS' :
190
+ ref_image = ANDROID_SDCARD + '/image_0.png'
191
+ ref_image_exists = adb ('shell test -f ' + ref_image ).returncode == 0
192
+ if (ref_image_exists ):
193
+ # If reference image is here, report nondet if either other images a
194
+ # different, or missing, using return code of 'diff' on device
195
+ for i in range (1 ,3 ):
196
+ next_image = ANDROID_SDCARD + '/image_' + str (i ) + '.png'
197
+ retcode = adb ('shell diff ' + ref_image + ' ' + next_image ).returncode
198
+ if retcode != 0 :
199
+ status = 'NONDET'
200
+ adb ('pull ' + ref_image + ' nondet0.png' )
201
+ adb ('pull ' + next_image + ' nondet1.png' )
202
+
171
203
with open ('STATUS' , 'w' ) as f :
172
204
f .write (status )
173
205
0 commit comments