do_3a should only be used if supported by the camera

Some cameras do not supprt 3a. Under those circumstances the call to
do_3a and the subsequent printout of the received values should be
skipped. The actual test can be run without them.

Bug: 33481457
Change-Id: Icb3ff8d77af2dfb06698be53cce5e8667b3acdd2
diff --git a/apps/CameraITS/tests/scene2/test_faces.py b/apps/CameraITS/tests/scene2/test_faces.py
index 6dd56af..388a7e0 100644
--- a/apps/CameraITS/tests/scene2/test_faces.py
+++ b/apps/CameraITS/tests/scene2/test_faces.py
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 import its.image
+import its.caps
 import its.device
 import its.objects
 import os.path
@@ -31,10 +32,14 @@
         fd_modes = props['android.statistics.info.availableFaceDetectModes']
         a = props['android.sensor.info.activeArraySize']
         aw, ah = a['right'] - a['left'], a['bottom'] - a['top']
-        gain, exp, _, _, focus = cam.do_3a(get_results=True)
-        print 'iso = %d' % gain
-        print 'exp = %.2fms' % (exp*1.0E-6)
-        print 'fd = %.2fcm' % (1.0E2/focus)
+        if its.caps.read_3a(props):
+            gain, exp, _, _, focus = cam.do_3a(get_results=True)
+            print 'iso = %d' % gain
+            print 'exp = %.2fms' % (exp*1.0E-6)
+            if focus == 0.0:
+                print 'fd = infinity'
+            else:
+                print 'fd = %.2fcm' % (1.0E2/focus)
         for fd_mode in fd_modes:
             assert(FD_MODE_OFF <= fd_mode <= FD_MODE_FULL)
             req = its.objects.auto_capture_request()