コード例 #1
0
class CameraTest(CameraTestBase):
    """
    @summary: This test used to test camera function
    """
    config = TestConfig()

    def setUp(self):
        """
        @summary: set up
        @return: None
        """
        super(CameraTest, self).setUp()
        self._test_name = __name__
        self.logger.debug("[Setup]: %s" % self._test_name)

        g_common_obj.root_on_device()
        g_common_obj.remount_device()
        self.camera_common = CameraCommon()
        self.host_path = self.camera_common.getTmpDir()
        self.camera_common.removeDeivceFile()
        self.camera_common.removeFile(self.host_path + "/*")
        self.multimedia_setting = MultiMediaSetting(self.camera_common.DEFAULT_CONFIG_FILE)
        self.multimedia_scale_test_helper = MultiMediaScaleTestHelper(self.host_path)
        self.aosp_camera = AOSPCamera()
        self.aosp_camera.cleanMediaFiles()

        self.multimedia_scale_test_helper.remount_device()
        self.multimedia_scale_test_helper.backup_file("o_image_media_xml_file_dst_path")
        self.multimedia_scale_test_helper.replace_file("o_image_media_xml_file_src_path", "o_image_media_xml_file_dst_path")
        self.multimedia_scale_test_helper.backup_file("o_image_camera3_xml_file_dst_path")[0]
        self.multimedia_scale_test_helper.restore_file("o_image_camera3_xml_file_dst_path", "_hdmi")
        adb32._adb_reboot()

    def tearDown(self):
        """
        @summary: tearDown
        @return: None
        """
        super(CameraTest, self).tearDown()
        self.logger.debug("[Teardown]: %s" % self._test_name)
        g_common_obj.stop_exp_handle()
        self.camera_common.removeDeivceFile()
        self.camera_common.removeFile(self.host_path + "/*")
        self.aosp_camera.cleanMediaFiles()

        self.multimedia_scale_test_helper.remount_device()
        self.multimedia_scale_test_helper.restore_file("o_image_media_xml_file_dst_path")
        self.multimedia_scale_test_helper.restore_file("o_image_camera3_xml_file_dst_path")
        adb32._adb_reboot()

    def hal_main_test(self):
        self.case_name = sys._getframe().f_back.f_code.co_name
        case_name_split_list = self.case_name.split("_")
        video_resolution, picture_count = case_name_split_list[-2], case_name_split_list[-1]
        video_resolution = video_resolution[:-1]
        if "Iterative" in picture_count:
            t_loop = 20
            picture_count = 3
        else:
            t_loop = 1
            picture_count = int(picture_count[:-3])
        check_file_count = 0
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Video")
        self.aosp_camera.setVideoResolution(video_resolution, "Back")
        for i in range(1, t_loop + 1):
            self.logger.debug("----loop %d----" % i)
            self.aosp_camera.snapShotDuringVideo(1, 5, picture_count)
            check_file_count += (picture_count + 1)
        self.camera_common.checkFileCorrupt(check_file_count)
        self.aosp_camera.reviewPhotoAndVideo(check_file_count)
        self.aosp_camera.stopCameraApp()

    def test_Camera_Snapshot_1080p_10Pic(self):
        self.hal_main_test()

    def test_Camera_Snapshot_1080p_1Pic(self):
        self.hal_main_test()

    def test_Camera_Snapshot_1080p_Iterative(self):
        self.hal_main_test()

    def test_Camera_Snapshot_480p_10Pic(self):
        self.hal_main_test()

    def test_Camera_Snapshot_480p_1Pic(self):
        self.hal_main_test()

    def test_Camera_Snapshot_480p_Iterative(self):
        self.hal_main_test()

    def test_Camera_Snapshot_720p_10Pic(self):
        self.hal_main_test()

    def test_Camera_Snapshot_720P_1Pic(self):
        self.hal_main_test()

    def test_Camera_Snapshot_720p_Iterative(self):
        self.hal_main_test()
コード例 #2
0
class CameraTest(CameraTestBase):
    """
    @summary: This test used to test camera function
    """
    def setUp(self):
        """
        @summary: set up
        @return: None
        """
        super(CameraTest, self).setUp()
        self._test_name = __name__
        self.logger.debug("[Setup]: %s" % self._test_name)

        g_common_obj.root_on_device()
        self.camera_common = CameraCommon()

        self.host_path = self.camera_common.getTmpDir()

        self.rvc_camera = ""
        self.aosp_camera = ""
        self.ref_camera = ""
        self.case_result = -1

        self.camera_common.removeDeivceFile()
        self.camera_common.removeFile(self.host_path + "/*")
        self.get_rvc_camera_class().stopCameraApp()
        self.camera_common.unlockScreen()
        self.get_rvc_camera_class().skipAccountLoginLyout()
        self.get_rvc_camera_class().backHome()
        self.d = g_common_obj.get_device()
        if self.d(text="Got it").exists:
            self.d(text="Got it").click.wait()

    def tearDown(self):
        """
        @summary: tearDown
        @return: None
        """
        super(CameraTest, self).tearDown()
        self.logger.debug("[Teardown]: %s" % self._test_name)
        g_common_obj.stop_exp_handle()

        if self.rvc_camera != "":
            self.rvc_camera.stopCameraApp()
        if self.aosp_camera != "":
            self.aosp_camera.cleanMediaFiles()
        self.camera_common.removeDeivceFile()
        if self.case_result == 0:
            self.reboot_device()
#         self.camera_common.removeFile(self.host_path + "/*")
        time.sleep(3)
        self.get_rvc_camera_class().backHome()

    def appPrepare(self, ):
        self.logger.debug("app prepare successfully")

    def check_file_corrupt(self, mediaFileCount=1):
        return self.camera_common.checkFileCorrupt(mediaFileCount)

    def get_rvc_camera_class(self):
        if self.rvc_camera == "":
            self.rvc_camera = MultiMediaSwitchCameraHelper().camera
        return self.rvc_camera

    def get_aosp_camera_class(self):
        if self.aosp_camera == "":
            self.aosp_camera = AOSPCamera()
        return self.aosp_camera

    def get_ref_camera_class(self):
        if self.ref_camera == "":
            self.ref_camera = RefCamCamera()
        return self.ref_camera

    def reboot_device(self):
        self.get_rvc_camera_class().reboot_device()

    def check_home_or_lock_layout(self, check_exist=True):
        if self.d(text="Got it").exists:
            self.d(text="Got it").click.wait()
        self.get_rvc_camera_class().skipAccountLoginLyout()
        assert self.get_rvc_camera_class().isHomeLayoutExists(
        ) or self.get_rvc_camera_class().isLockLayoutExists(
        ), "Home or Lock layout not exist!"

    def start_stop_camera_test(self, wait_time=5, check_success=1):
        self.logger.debug("start_stop_camera_test start")
        self.get_rvc_camera_class().startCameraApp(check_success)
        time.sleep(wait_time)
        self.get_rvc_camera_class().stopCameraApp()
        time.sleep(2)

    def check_gps(self):
        self.multimedia_setting = MultiMediaSetting(
            self.camera_common.DEFAULT_CONFIG_FILE)
        self.multimedia_setting.install_apk("gps_apk")
        self.camera_common.launchGpsApp()
        network_longitude, network_latitude = self.camera_common.getGPSLocation(
        )
        return network_longitude, network_latitude

    def check_logcat_data(self, data_list, expect_lower_limit_fps,
                          expect_upper_limit_fps):
        self.logger.debug("check_logcat_data data_list=%s" % data_list)
        if len(data_list) == 0:
            return False, -1
        for t_fps in data_list:
            t_fps = float(t_fps)
            if expect_lower_limit_fps > t_fps or t_fps > expect_upper_limit_fps:
                return False, t_fps
        return True, 1

    def check_aosp_camera_exif_info(self, check_info_dict):
        self.case_result = 0
        self.get_aosp_camera_class().startCameraApp()
        self.get_aosp_camera_class().selectMode("Camera")
        self.get_aosp_camera_class().capturePhoto(1)
        file_info, file_name = self.check_file_corrupt()
        for check_info_key in check_info_dict.keys():
            assert check_info_key in file_info.keys(
            ), "\"%s\" not in exif info!" % check_info_key
            actual_info = file_info[check_info_key]
            expect_info_parttern = re.compile(check_info_dict[check_info_key])
            self.logger.debug(
                "actual_info = \"%s\", expect_info_parttern = \"%s\"" %
                (actual_info, check_info_dict[check_info_key]))
            result_list = expect_info_parttern.findall(actual_info)
            self.logger.debug(result_list)
            assert result_list != [], "actual_info = \"%s\", expect_info_parttern = \"%s\", result_list = \"%s\"" % (
                actual_info, check_info_dict[check_info_key], result_list)
        self.logger.debug("info:%s" % file_info)
        self.get_aosp_camera_class().stopCameraApp()
        self.get_aosp_camera_class().cleanMediaFiles()
        self.case_result = 1

    def check_ref_camera_preview_with_format(self,
                                             preview_format,
                                             duration=10):
        self.android_version = MultiMediaSwitchCameraHelper(
            skip_import_camera=True).android_version.lower()
        if "o" in self.android_version:
            self.multimedia_setting = MultiMediaSetting(
                self.camera_common.DEFAULT_CONFIG_FILE)
            self.multimedia_setting.install_apk(
                "for_o_image_camera_preview_test_apk")
            from testlib.multimedia.get_device_port_helper import GetConfigFileHelper
            self.scale_test_cfg = GetConfigFileHelper(
                "", "multimedia_scale_test_helper.conf").get_section("config")
            self.o_image_play_cmd = self.scale_test_cfg.get("o_image_play_cmd")
            check_size_list = ["720x480", "640x480", "320x240", "176x144"]
            from testlib.graphics.common import adb32
            adb32._adb_reboot()
            time.sleep(15)
            for size in check_size_list:
                width, height = size.split("x")
                result = g_common_obj.adb_cmd_capture_msg(
                    self.o_image_play_cmd %
                    (width, height, preview_format, duration))
                assert "OK" in result, "play error! result=%s" % result
                time.sleep(2)
        else:
            self.get_ref_camera_class().startCameraApp()
            self.get_ref_camera_class().selectMode("SingleShot")
            self.get_ref_camera_class().setSettingsButton(
                "Preview Format", preview_format)
            check_size_list = [
                "1920x1080", "1280x720", "720x480", "640x480", "320x240",
                "176x144"
            ]
            for size in check_size_list:
                self.logger.debug("capture photo, format: %s, size: %s" %
                                  (preview_format, size))
                self.get_ref_camera_class().setSettingsButton(
                    "Picture Size", size)
                self.get_ref_camera_class().capturePhoto()
            self.camera_common.checkFileCorrupt(len(check_size_list))

    def test_Camera_Launch_With_Press_Power(self):
        self.get_rvc_camera_class.reboot_device()
        self.logger.debug("---start sleep---")
        #         time.sleep(3)
        #         self.logger.debug("---start pressPowerKey---")
        #         self.camera.pressPowerKey(2)
        #         self.wait_boot_completed()
        time.sleep(5)
        self.start_stop_camera_test(10)
        time.sleep(10)
        self.start_stop_camera_test()

    def test_Camera_IVI_RVC_Preview_Horizontal(self):
        self.get_rvc_camera_class().startCameraApp()
        time.sleep(5)
        d = g_common_obj.get_device()
        x = d.info["displayWidth"]
        y = d.info["displayHeight"]
        self.logger.debug("display size--- x:%s, y:%s" % (str(x), str(y)))
        assert int(x) > int(y), "RVC FOV not display as horizontal"
        self.get_rvc_camera_class().stopCameraApp()

    def test_Camera_IVI_RVC_ColdBoot_Available_10Mins(self):  ######
        self.reboot_device()
        self.get_rvc_camera_class().startCameraApp()
        self.logger.debug("Wait 10mins...")
        time.sleep(600)
        self.get_rvc_camera_class().startCameraApp()
        self.get_rvc_camera_class().stopCameraApp()
        time.sleep(5)
        self.check_home_or_lock_layout()

    def test_Camera_IVI_RVC_ColdBoot_off_Available(self):  ######
        self.reboot_device()
        for _ in range(5):
            self.start_stop_camera_test()
        self.check_home_or_lock_layout()

    def test_Camera_IVI_RVC_ColdBoot_Switch_Repeatly(self):  ######
        self.reboot_device()
        for _ in range(5):
            self.start_stop_camera_test()
        self.check_home_or_lock_layout()

    def test_Camera_IVI_RVC_ColdBoot_Repeatly(self):  ######
        for i in range(10):
            self.logger.debug("------loop %s------" % str(i + 1))
            self.reboot_device()
            self.get_rvc_camera_class().stopCameraApp()
            time.sleep(5)
            self.get_rvc_camera_class().startCameraApp()
        time.sleep(5)
        self.get_rvc_camera_class().stopCameraApp()

    def test_Camera_IVI_RVC_ColdBoot_on_Available(self):
        self.reboot_device()
        self.get_rvc_camera_class().backHome()
        self.check_home_or_lock_layout()
        self.start_stop_camera_test()

    def test_Camera_IVI_RVC_RunTime_Available(self):
        self.reboot_device()
        self.get_rvc_camera_class().startCameraApp()
        time.sleep(5)
        self.get_rvc_camera_class().stopCameraApp()
        time.sleep(5)
        self.check_home_or_lock_layout()

    def test_Camera_IVI_RVC_RunTime_Available_10Mins(self):
        self.reboot_device()
        self.get_rvc_camera_class().startCameraApp()
        self.logger.debug("Wait 10mins...")
        time.sleep(600)
        self.get_rvc_camera_class().stopCameraApp()
        time.sleep(5)
        self.check_home_or_lock_layout()
        self.get_rvc_camera_class().startCameraApp()
        self.get_rvc_camera_class().stopCameraApp()
        time.sleep(5)
        self.check_home_or_lock_layout()

    def test_Camera_IVI_RVC_RunTime_On_Quickly(self):
        self.reboot_device()
        for i in range(1, 6):
            self.logger.debug("------loop %s------" % i)
            self.get_rvc_camera_class().startCameraApp()
            self.get_rvc_camera_class().stopCameraApp()
            time.sleep(3)

    def test_Camera_IVI_RVC_Switch_From_CameraAPP(self):
        self.check_home_or_lock_layout()
        self.get_aosp_camera_class().startCameraApp()
        for i in range(1, 6):
            self.logger.debug("------loop %s------" % i)
            self.get_rvc_camera_class().startCameraApp()
            self.get_rvc_camera_class().stopCameraApp()
            self.get_aosp_camera_class().checkCameraApp()
            time.sleep(3)

    def test_Camera_IVI_AOSPCamera_Launch_Repeat(self):
        self.check_home_or_lock_layout()
        count = 20
        for i in range(1, count + 1):
            self.logger.debug("------loop %s------" % i)
            self.get_aosp_camera_class().startCameraApp()
            self.get_aosp_camera_class().checkCameraApp()
            self.get_aosp_camera_class().stopCameraApp()
            time.sleep(3)

    def test_Camera_IVI_AOSP_Rear_Launch(self):
        self.check_home_or_lock_layout()
        self.get_aosp_camera_class().startCameraApp()
        self.get_aosp_camera_class().checkCameraApp()
        self.get_aosp_camera_class().stopCameraApp()

    def test_Camera_IVI_Rear_Preview_CVBS1(self):
        self.test_Camera_IVI_AOSP_Rear_Launch()

    def test_Camera_FIT_RVC_Lock_With_PW(self):
        try:
            #             self.multimedia_setting.install_apk("unlock_app")
            self.camera_common.setLockScreenWithPasswd()
            time.sleep(1)
            self.camera_common.pressPower()
            time.sleep(2)
            d = g_common_obj.get_device()
            d.wakeup()
            time.sleep(2)
            for i in range(1, 6):
                self.logger.debug("------loop %s------" % i)
                self.get_rvc_camera_class().startCameraApp()
                time.sleep(5)
                self.get_rvc_camera_class().stopCameraApp()
                time.sleep(3)
            self.camera_common.unlockScreen()
#             self.camera_common.launchUnlockAppToUnlockScreen()
        except Exception as e:
            self.assertTrue(False, e)
        finally:
            self.get_rvc_camera_class().stopCameraApp()
            self.camera_common.setLockScreenWithPasswd(False)

    def test_Camera_IVI_AOSP_Metadata_EXIF_CameraModelName(self):
        self.check_aosp_camera_exif_info(
            {"Camera Model Name": "AOSP on Intel Platform"})

    def test_Camera_IVI_AOSP_Metadata_EXIF_DateTime(self):
        self.check_aosp_camera_exif_info(
            {"Create Date": "\d{4}:\d{2}:\d{2} \d{2}:\d{2}:\d{2}"})

    def test_Camera_IVI_AOSP_Metadata_EXIF_GPSLocation(self):
        self.check_gps()
        self.check_aosp_camera_exif_info({"GPS Position": ".*N,.*E"})

    def test_Camera_IVI_AOSP_Metadata_EXIF_ImageDescription(self):
        self.check_aosp_camera_exif_info({"Image Description": "Jpeg"})

    def test_Camera_IVI_AOSP_Metadata_EXIF_Make(self):
        self.check_aosp_camera_exif_info({"Make": "Intel"})

    def test_Camera_IVI_AOSP_Metadata_EXIF_Resolution(self):
        self.check_aosp_camera_exif_info({"Image Size": "\d{3,4}x\d{3,4}"})

    def test_Camera_Rear_PreviewFormat_NV21(self):
        self.check_ref_camera_preview_with_format("NV21")

    def test_Camera_Rear_PreviewFormat_YV12(self):
        self.check_ref_camera_preview_with_format("YV12")

    def test_Camera_IVI_Preview_PictureFormat_NTSC(self):
        self.check_ref_camera_preview_with_format("NV21")
        self.check_ref_camera_preview_with_format("YV12")

    def test_Camera_Rear_PreviewFormat_RGB565(self):
        self.check_ref_camera_preview_with_format("RGB_565")

    def test_Camera_Rear_PreviewFormat_YUY2(self):
        self.check_ref_camera_preview_with_format("YUY2")

    def test_Camera_IVI_AVM737_Preview_FPS_Range(self):
        self.multimedia_logcat_helper = MultiMediaLogcatHelper(
            "adb logcat CameraHardwareSoc:D *:S")
        self.get_ref_camera_class().startCameraApp()
        self.get_ref_camera_class().selectMode("SingleShot")
        self.get_ref_camera_class().setSettingsButton("Preview FPS Range",
                                                      "30000-30000")
        self.multimedia_logcat_helper.get_logcat_data_start()
        time.sleep(5)
        result_list = self.multimedia_logcat_helper.get_logcat_data_end(
            "total fps is (.*),")
        check_logcat_data_result, error_fps = self.check_logcat_data(
            result_list, 29, 31)
        assert check_logcat_data_result, "fps error! error_fps=%s, expect_fps=%s, result_list=%s" % (
            error_fps, "30000-30000", result_list)
        self.get_ref_camera_class().capturePhoto()
        self.get_ref_camera_class().setSettingsButton("Preview FPS Range",
                                                      "30000-60000")
        self.multimedia_logcat_helper.get_logcat_data_start()
        time.sleep(5)
        result_list = self.multimedia_logcat_helper.get_logcat_data_end(
            "total fps is (.*),")
        check_logcat_data_result, error_fps = self.check_logcat_data(
            result_list, 30, 60)
        assert check_logcat_data_result, "fps error! error_fps=%s, expect_fps=%s, result_list=%s" % (
            error_fps, "30000-60000", result_list)
        self.get_ref_camera_class().capturePhoto()
        self.camera_common.checkFileCorrupt(2)

    def test_ref_camera_with_different_format(self, preview_format):
        assert 0, "Need OV10635 senser!"
        self.multimedia_setting = MultiMediaSetting(
            self.camera_common.DEFAULT_CONFIG_FILE)
        self.multimedia_setting.executeCommandWithPopen(
            "setprop camera.hal.perf 3")
        self.get_ref_camera_class().startCameraApp()
        self.get_ref_camera_class().selectMode("SingleShot")
        self.get_ref_camera_class().setSettingsButton("Preview Format",
                                                      preview_format)
        preview_size_list = ["1280x800", "1280x720", "640x480"]
        for preview_size in preview_size_list:
            self.get_ref_camera_class().setSettingsButton(
                "Picture Size", preview_size)
            self.get_ref_camera_class().capturePhoto()
        self.camera_common.checkFileCorrupt(len(preview_size_list))

    def test_Camera_IVI_OV10635_Preview_NV21_Available(self):
        self.test_ref_camera_with_different_format("NV21")

    def test_Camera_IVI_OV10635_Preview_RGB565_Available(self):
        self.test_ref_camera_with_different_format("RGB565")

    def test_Camera_IVI_OV10635_Preview_YUY2_Available(self):
        self.test_ref_camera_with_different_format("YUY2")

    def test_Camera_IVI_OV10635_Preview_YV12_Available(self):
        self.test_ref_camera_with_different_format("YV12")

    def test_ref_camera_check_fps(self, preview_format):
        assert 0, "Need OV10635 senser!"
        self.multimedia_setting = MultiMediaSetting(
            self.camera_common.DEFAULT_CONFIG_FILE)
        self.multimedia_setting.executeCommandWithPopen(
            "setprop camera.hal.perf 3")
        self.multimedia_logcat_helper = MultiMediaLogcatHelper(
            "adb logcat CameraHardwareSoc:D *:S")
        self.get_ref_camera_class().startCameraApp()
        self.get_ref_camera_class().selectMode("SingleShot")
        self.get_ref_camera_class().setSettingsButton("Preview Format",
                                                      preview_format)
        self.multimedia_logcat_helper.get_logcat_data_start()
        time.sleep(1 * 60)
        preview_size_list = ["1280x800", "1280x720", "640x480"]
        for preview_size in preview_size_list:
            self.get_ref_camera_class().setSettingsButton(
                "Picture Size", preview_size)
            self.get_ref_camera_class().capturePhoto()
        self.camera_common.checkFileCorrupt(len(preview_size_list))
        result_list = self.multimedia_logcat_helper.get_logcat_data_end(
            "total fps is (.*),")
        check_logcat_data_result, error_fps = self.check_logcat_data(
            result_list, 29, 31)
        assert check_logcat_data_result, "fps error! error_fps=%s, expect_fps=%s, result_list=%s" % (
            error_fps, "29-31", result_list)

    def test_Camera_IVI_OV10635_Preview_NV21_30fps(self):
        self.test_ref_camera_check_fps("NV21")

    def test_Camera_IVI_OV10635_Preview_RGB565_30fps(self):
        self.test_ref_camera_check_fps("RGB565")

    def test_Camera_IVI_OV10635_Preview_YUY2_30fps(self):
        self.test_ref_camera_check_fps("YUY2")

    def test_Camera_IVI_OV10635_Preview_YV12_30fps(self):
        self.test_ref_camera_check_fps("YV12")

    def test_Camera_IVI_OV10635_AOSPCamera_Launch_Repeat(self):
        assert 0, "Need OV10635 senser!"
        self.check_home_or_lock_layout()
        count = 20
        for i in range(1, count + 1):
            self.logger.debug("------loop %s------" % i)
            self.get_aosp_camera_class().startCameraApp()
            self.get_aosp_camera_class().checkCameraApp()
            self.get_aosp_camera_class().stopCameraApp()
            time.sleep(3)

    def test_Camera_IVI_S3_WakeUp_AOSPCamera(self):
        self.get_rvc_camera_class().pressPowerKey(2)
        wait_time = 5 * 60
        self.logger.debug("------Wait %s s------" % str(wait_time))
        time.sleep(wait_time)
        self.get_rvc_camera_class().pressPowerKey(2)
        time.sleep(10)
        self.get_aosp_camera_class().startCameraApp()
        self.get_aosp_camera_class().stopCameraApp()

    def test_Camera_IVI_AOSP_Camera_S3_Available(self):
        self.get_aosp_camera_class().startCameraApp()
        self.get_rvc_camera_class().pressPowerKey(2)
        wait_time = 5 * 60
        self.logger.debug("------Wait %s s------" % str(wait_time))
        time.sleep(wait_time)
        self.get_rvc_camera_class().pressPowerKey(2)
        time.sleep(10)
        self.get_aosp_camera_class().checkCameraApp()
        self.get_aosp_camera_class().stopCameraApp()

    def test_Camera_IVI_AOSP_S3_WakeUp_With_DifferentTime_Interval(self):
        wait_time_list = [5 * 60, 20, 30, 5 * 60, 10 * 60]
        for wait_time in wait_time_list:
            self.get_aosp_camera_class().startCameraApp()
            self.get_rvc_camera_class().pressPowerKey(2)
            self.logger.debug("------Wait %s s------" % str(wait_time))
            time.sleep(wait_time)
            self.get_rvc_camera_class().pressPowerKey(2)
            time.sleep(10)
            self.get_aosp_camera_class().checkCameraApp()
            self.get_aosp_camera_class().stopCameraApp()

    def test_Camera_IVI_RunTime_RVC_S3_Available(self):
        self.get_rvc_camera_class().startCameraApp()
        self.get_rvc_camera_class().pressPowerKey(2)
        wait_time = 5 * 60
        self.logger.debug("------Wait %s s------" % str(wait_time))
        time.sleep(wait_time)
        self.get_rvc_camera_class().pressPowerKey(2)
        time.sleep(10)
        self.get_rvc_camera_class().stopCameraApp()

    def test_Camera_IVI_S3_WakeUp_RVC(self):
        self.get_rvc_camera_class().pressPowerKey(2)
        wait_time = 5 * 60
        self.logger.debug("------Wait %s s------" % str(wait_time))
        time.sleep(wait_time)
        self.get_rvc_camera_class().pressPowerKey(2)
        time.sleep(10)
        self.get_rvc_camera_class().startCameraApp()
        self.get_rvc_camera_class().stopCameraApp()

    def test0(self):
        self.reboot_device()

    def test1(self):
        self.multimedia_mplayer_helper = MultiMediaMplayerHelper()
        self.multimedia_checkiq_helper = MultiMediaCheckiqHelper(
            self.host_path)

        self.multimedia_mplayer_helper.play_video(
            "/home/auto1/tmp/video_20s.avi")
        time.sleep(2)
        self.multimedia_mplayer_helper.control_video(
            ["pause", "pausing seek 0 2", "frame_step"])
        self.get_aosp_camera_class().startCameraApp()
        self.get_aosp_camera_class().selectMode("Video")
        self.multimedia_mplayer_helper.control_video(["pause"])
        self.get_aosp_camera_class().recordVideo(1, 5)
        self.multimedia_mplayer_helper.close_video()
        file_info, file_name = self.check_file_corrupt()
        self.multimedia_checkiq_helper.check_video_with_barcode(file_name)

    def test2(self):
        from testlib.multimedia.multimedia_canbox_helper import MultiMediaCanboxHelper
        self.multimedia_canbox_helper = MultiMediaCanboxHelper()
        self.multimedia_canbox_helper.candump_start()
        time.sleep(3)
        self.multimedia_canbox_helper.cansend("00A#01")
        time.sleep(5)
        self.multimedia_canbox_helper.cansend("00A#00")
        time.sleep(3)
        t_str = self.multimedia_canbox_helper.candump_end()
        self.logger.debug("str=%s" % t_str)

    def test3(self):
        from testlib.graphics.common import adb32
        adb32.adb_disable_verity()
コード例 #3
0
class CameraTest(CameraTestBase):
    """
    @summary: This test used to test camera function
    """
    @classmethod
    def setUpClass(cls):
        print "[setUpClass]: %s" % cls.__name__
        super(CameraTest, cls).setUpClass()
        cls.d = g_common_obj.get_device()
        g_common_obj.root_on_device()
        g_common_obj.remount_device()

    def setUp(self):
        """
        @summary: set up
        @return: None
        """
        super(CameraTest, self).setUp()
        self._test_name = __name__
        self.logger.debug("[Setup]: %s" % self._test_name)

        self.camera_common = CameraCommon()
        self.host_path = self.camera_common.getTmpDir()

        self.relay08_helper = Relay08Helper()
        self.multimedia_lightbox_helper = MultiMediaLightBoxHelper()
        self.multimedia_robot_helper = MultiMediaRobotHelper()
        self.multimedia_mplayer_helper = MultiMediaMplayerHelper()
        self.multimedia_checkiq_helper = MultiMediaCheckiqHelper(
            self.host_path)
        self.multimedia_high_speed_helper = MultiMediaHighSpeedCameraHelper()
        self.multimedia_high_speed_helper.clear_temp_dir()

        self.rvc_camera = ""
        self.aosp_camera = ""
        self.case_result = -1

        self.camera_common.removeDeivceFile()
        self.camera_common.removeFile(self.host_path + "/*")
        self.camera_common.unlockScreen()
        self.get_rvc_camera_class().skipAccountLoginLyout()
        self.get_rvc_camera_class().backHome()

        self.multimedia_high_speed_helper.connect()

    def tearDown(self):
        """
        @summary: tearDown
        @return: None
        """
        super(CameraTest, self).tearDown()
        self.logger.debug("[Teardown]: %s" % self._test_name)
        self.multimedia_mplayer_helper.close_video()
        self.multimedia_high_speed_helper.disconnect()
        g_common_obj.stop_exp_handle()

        if self.rvc_camera != "":
            self.rvc_camera.stopCameraApp()
        if self.aosp_camera != "":
            self.aosp_camera.cleanMediaFiles()
        self.camera_common.removeDeivceFile()
        try:
            self.multimedia_robot_helper.reset()
        except:
            self.logger.debug("tearDown multimedia_robot_helper.reset error")
        try:
            self.multimedia_lightbox_helper.turn_off_all_light()
        except:
            self.logger.debug(
                "tearDown multimedia_lightbox_helper.turn_off_all_light error")
        if self.case_result == 0:
            self.get_rvc_camera_class().reboot_device()
        time.sleep(3)
        self.get_rvc_camera_class().backHome()

    def check_file_corrupt(self, mediaFileCount=1):
        return self.camera_common.checkFileCorrupt(mediaFileCount)

    def get_rvc_camera_class(self):
        if self.rvc_camera == "":
            self.rvc_camera = MultiMediaSwitchCameraHelper().switchplatform()
        return self.rvc_camera

    def get_aosp_camera_class(self):
        if self.aosp_camera == "":
            self.aosp_camera = AOSPCamera()
        return self.aosp_camera

    def set_lightbox_operation(self,
                               light_port_list=["Power", "UV"],
                               position=-1,
                               pause=0):
        self.multimedia_lightbox_helper.press_light_with_list(light_port_list)
        if pause == 1:
            my_input()
        self.multimedia_robot_helper.move_to_default_position(position)
        time.sleep(2)

    def set_scroll_operation(self, page_num=0):
        self.multimedia_scroll_helper.reset()
        if page_num != 0:
            self.change_page_flag = 1
        self.multimedia_scroll_helper.goto_page(page_num)
        time.sleep(2)

    def check_data(self, actual_result, expect_result, percent, log_str):
        actual_result = float(actual_result)
        expect_result = float(expect_result)
        min_expect_result = int(expect_result * (1 - percent))
        max_expect_result = int(expect_result * (1 + percent))
        if min_expect_result < actual_result and actual_result < max_expect_result:
            print "%s actual_result:%s in (%s, %s)" % (
                log_str, str(actual_result), str(min_expect_result),
                str(max_expect_result))
            return 0
        else:
            print "%s actual_result:%s not in (%s, %s)" % (
                log_str, str(actual_result), str(min_expect_result),
                str(max_expect_result))
            return -1

    def test_camera_0(self):
        self.case_result = 0
        self.set_lightbox_operation()
        self.case_result = 1

    def test_camera(self):
        self.case_result = 0
        self.set_lightbox_operation()
        self.multimedia_mplayer_helper.play_video(
            "/home/auto1/tmp/video_30s.avi")
        time.sleep(2)
        self.multimedia_mplayer_helper.control_video(
            ["pause", "pausing seek 0 2", "frame_step"])
        self.get_rvc_camera_class().startCameraApp()
        self.multimedia_mplayer_helper.control_video(["pause"])
        time.sleep(1)
        jpg_folder = self.multimedia_high_speed_helper.start_capture(20)
        self.multimedia_mplayer_helper.close_video()
        self.get_rvc_camera_class().stopCameraApp()
        jpg_name_list = self.multimedia_checkiq_helper.get_barcode_list(
            jpg_folder)
        barcode_list = self.multimedia_checkiq_helper.get_barcode_with_jpg_list(
            jpg_folder, jpg_name_list)
        pass_num, error_num, actual_barcode_num_list = self.multimedia_checkiq_helper.check_barcode_list(
            barcode_list)
        print pass_num, error_num, actual_barcode_num_list
        self.case_result = 1

    def test_camera_with_cold_boot(self):
        self.case_result = 0
        #raw_input("-------------prepare complete------------")
        self.set_lightbox_operation(light_port_list=["Power", "UV"])
        self.multimedia_mplayer_helper.play_video(
            "/home/auto1/tmp/video_30s.avi")
        time.sleep(2)
        self.get_rvc_camera_class().startCameraApp()
        self.multimedia_mplayer_helper.control_video(
            ["pause", "pausing seek 0 2", "frame_step"])
        my_input()
        self.rvc_camera.pressPowerKey(5)
        time.sleep(5)
        self.rvc_camera.pressPowerKey(2)
        self.multimedia_mplayer_helper.control_video(["pause"])
        time.sleep(4)
        jpg_folder = self.multimedia_high_speed_helper.start_capture(150)
        self.multimedia_mplayer_helper.close_video()
        #self.get_rvc_camera_class().stopCameraApp()
        jpg_name_list = self.multimedia_checkiq_helper.get_barcode_list(
            jpg_folder)
        barcode_list = self.multimedia_checkiq_helper.get_barcode_with_jpg_list(
            jpg_folder, jpg_name_list)
        pass_num, error_num, actual_barcode_num_list = self.multimedia_checkiq_helper.check_barcode_list(
            barcode_list)
        self.get_rvc_camera_class().stopCameraApp()
        if pass_num == 0:
            pass_num = 1
            error_num = 1
            actual_barcode_num_list = [-1, 157]
        print pass_num, error_num, actual_barcode_num_list
        assert pass_num > 0, "can't find barcode with cold boot device"
        print "==================Result==================="
        print "First find barcode picture: %d, about %.2fs" % (
            actual_barcode_num_list[1], actual_barcode_num_list[1] / 30.0)
        self.case_result = 1

    def test_camera_with_scroll(self):
        self.case_result = 1
        self.multimedia_scroll_helper = MultiMediaScrollHelper()
        time.sleep(1)
        self.multimedia_scroll_helper.reset()
        my_input()
        self.set_lightbox_operation(light_port_list=[
            "Power", "F", "D65", "TL84", "UV", "CWF", "TL83/U30", "F", "D65",
            "TL84", "UV", "TL83/U30"
        ],
                                    position=210,
                                    pause=1)
        self.multimedia_robot_helper.rotate(-180)
        my_input()
        self.multimedia_scroll_helper.goto_page(1)
        my_input()
        self.multimedia_scroll_helper.goto_page(0)
        my_input()
        self.get_aosp_camera_class().startCameraApp()
        self.get_aosp_camera_class().capturePhoto()
        t_file = self.camera_common.getMediaFilesFromDevice(0, 1)[0]
        fisheyecorrection_folder = "/home/auto1/tmp/fisheyecorrection/fisheyecorrection/"
        subprocess.Popen("./fisheye %s" % t_file,
                         cwd=fisheyecorrection_folder,
                         shell=True)
        dest_adjusted_file = "/home/auto1/tmp/logs/adjusted.jpg"
        os.system("cp %sadjusted.jpg %s" %
                  (fisheyecorrection_folder, dest_adjusted_file))
        dest_file = dest_adjusted_file if os.path.exists(
            dest_adjusted_file) else t_file
        ret = self.multimedia_checkiq_helper.check_IQ.detectRect(dest_file)
        ret = int(ret)
        self.logger.debug("detectRect ret=%s" % ret)
        ret = self.multimedia_checkiq_helper.check_IQ.getTemp(dest_file)
        #os.system("cp /home/auto1/tmp/checkiq_temp_dir/rects.jpg /home/auto1/tmp/logs/rects.jpg")
        print "==================Result==================="
        t_result = 0
        t_result += self.check_data(ret, 6200, 0.05, "check color temperature")
        ret = CheckImage().brightness(dest_file)
        t_result += self.check_data(ret, 130, 0.15, "check brightness")
        self.get_aosp_camera_class().stopCameraApp()
        self.multimedia_scroll_helper.reset()
        #         os.system("eog -s %s" % "/home/auto1/tmp/rects_adjusted.jpg")
        os.system("eog -s %s" % dest_file)
        assert t_result == 0, "check color temperature or check brightness failed! t_result=%s" % str(
            t_result)
        self.case_result = 1

    def lightbox_main_test(self, sub_func_name="", *arg, **keywords):
        """
        This test used to test Camera app
        The test case spec is following:
        1. appPrepare()
        2. do sub_func()
        """
        self.case_name = sys._getframe().f_back.f_code.co_name
        if sub_func_name == "":
            sub_func_name = "%s_sub_func" % self.case_name
        self.logger.debug("case_name=%s" % self.case_name)
        self.logger.debug("netflix_main_test---sub_func_name=%s" %
                          sub_func_name)
        self.appPrepare()

        self.logger.debug("Arbitrary parameter is %s" % str(arg))
        self.logger.debug("keywords parameter is %s" % str(keywords))
        getattr(self, sub_func_name)(*arg, **keywords)

        self.logger.debug("Case %s is pass!" % self.case_name)

    def test_Camera_Test(self):
        self.lightbox_main_test("test_camera_test")
コード例 #4
0
class CameraTest(CameraTestBase):
    """
    @summary: This test used to test camera function
    """
    config = TestConfig()

    def setUp(self):
        """
        @summary: set up
        @return: None
        """
        super(CameraTest, self).setUp()
        self._test_name = __name__
        self.logger.debug("[Setup]: %s" % self._test_name)

        g_common_obj.root_on_device()
        g_common_obj.remount_device()
        self.camera_common = CameraCommon()
        self.host_path = self.camera_common.getTmpDir()
        self.camera_common.removeDeivceFile()
        self.camera_common.removeFile(self.host_path + "/*")
        self.multimedia_setting = MultiMediaSetting(
            self.camera_common.DEFAULT_CONFIG_FILE)
        self.aosp_camera = AOSPCamera()

        self.adb_extension = AdbExtension()

        self.aosp_camera.cleanMediaFiles()

        self.adb_extension._adb_reboot()

    def tearDown(self):
        """
        @summary: tearDown
        @return: None
        """
        super(CameraTest, self).tearDown()
        self.logger.debug("[Teardown]: %s" % self._test_name)
        g_common_obj.stop_exp_handle()
        self.camera_common.removeDeivceFile()
        self.camera_common.removeFile(self.host_path + "/*")
        self.aosp_camera.cleanMediaFiles()

    def aosp_check_video_record_test(self, video_size):
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Video")
        self.aosp_camera.setVideoResolution(video_size, "")
        self.aosp_camera.recordVideo(1, 10)
        self.camera_common.checkFileCorrupt(1)
        self.aosp_camera.reviewPhotoAndVideo(1)
        self.aosp_camera.stopCameraApp()

    def test_Camera_IVI_AOSP_VideoMode_MaximumSize(self):
        self.aosp_check_video_record_test("480")

    def test_Camera_IVI_AOSP_VideoMode_MinimumSize(self):
        self.aosp_check_video_record_test("QVGA")

    def test_Camera_IVI_AOSP_VideoMode_Rear_Preview(self):
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Video")
        self.aosp_camera.setVideoResolution("480", "")
        self.aosp_camera.recordVideo(1, 10)
        self.aosp_camera.stopCameraApp()

    def test_Camera_IVI_AOSP_VideoMode_Rear_RecordVideo(self):
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Video")
        self.aosp_camera.setVideoResolution("480", "")
        self.aosp_camera.recordVideo(1, 10)
        self.camera_common.checkFileCorrupt(1)
        self.aosp_camera.reviewPhotoAndVideo(1)
        self.aosp_camera.stopCameraApp()

    def test_Camera_IVI_AOSP_VideoMode_Rear_CaptureVideo_AllSize(self):
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Video")
        resolution_dict = self.aosp_camera.getAllVideoResolutions("")[0]
        resolution_count = len(resolution_dict)
        for t_key in resolution_dict.keys():
            t_resolution = resolution_dict[t_key]
            self.logger.debug("t_resolution: %s" % t_resolution)
            self.aosp_camera.setVideoResolution(t_resolution, "")
            self.aosp_camera.recordVideo(1, 10)
        self.camera_common.checkFileCorrupt(resolution_count)
        self.aosp_camera.reviewPhotoAndVideo(resolution_count)
        self.aosp_camera.stopCameraApp()

    def test_Camera_IVI_AOSP_Preview_Rear_CaptureMode(self):
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Camera")
        self.aosp_camera.capturePhoto(5)
        self.camera_common.checkFileCorrupt(5)
        self.aosp_camera.stopCameraApp()

    def test_Camera_IVI_AOSP_Rear_CapturePhoto(self):
        self.aosp_camera.startCameraApp()
        self.aosp_camera.selectMode("Camera")
        self.aosp_camera.capturePhoto(5)
        self.camera_common.checkFileCorrupt(5)
        self.aosp_camera.reviewPhotoAndVideo(5)
        self.aosp_camera.stopCameraApp()
コード例 #5
0
ファイル: cameraBench.py プロジェクト: zenghui0-0/tempfile
class CameraBenchTest(CameraTestBase):
    """
    @summary: This test used to test camera function
    """
    def setUp(self):
        """
        @summary: set up
        @return: None
        """
        super(CameraBenchTest, self).setUp()
        self._test_name = __name__
        print "[Setup]: %s" % self._test_name

    def tearDown(self):
        """
        @summary: tearDown
        @return: None
        """
        super(CameraBenchTest, self).tearDown()
        print "[Teardown]: %s" % self._test_name
        g_common_obj.stop_exp_handle()
        time.sleep(3)

    def appPrepare(self):
        self.camera = CameraCommon().switchPlatform(None, False, True, False,
                                                    True)
        #         self.camera = RefCam2Camera()
        self.common = CameraCommon()
        self.multimedia_setting = MultiMediaSetting(
            CameraCommon.DEFAULT_CONFIG_FILE)
        #         self.camera = self.common.switchPlatform()
        self.checkImage = CheckImage()
        self.video = CheckVideo()
        #         self.checkIQ = CheckIQ()
        self.host_path = self.common.getTmpDir()
        self.makefileTime = self.common.makefileTime
        self.camera_dir = self.common.camera_dir
        self.common.removeDeivceFile()
        self.common.removeFile(self.host_path + "/*")
        self.camera.cleanMediaFiles()
        #         self.common.setOrientationToVertical()
        self.logger.debug("app prepare successfully")
        self.device = self.common.initDevice()
        self.common.resetDevice(self.device)

    def checkFileCorrupt(self, mediaFileCount=1):
        return self.common.checkFileCorrupt(mediaFileCount)

    def cameraExtendPanoramaRearLeft2RightAutoStopTest(self):
        try:
            self.appPrepare()
            #             self.common.controlLightBox(1)
            #             self.common.controlLightBox(6)
            #             device = self.common.initDevice()
            self.camera.startCameraApp()
            self.camera.switchRearOrFront("Back")
            self.camera.setCaptureMode("Panorama")
            self.camera.capturePhoto(1, False)
            time.sleep(3)
            self.common.rotateDevice(self.device, -180)
            self.common.resetDevice(self.device)
            self.checkFileCorrupt()
#             self.common.controlLightBox(6)
#             self.common.controlLightBox(1)
        except Exception as e:
            self.common.resetDevice(self.device)
            self.common.checkCameraCrash()
            self.assertTrue(False, e)

    def cameraFaceTrackTurnOnAndOffTest(self, lens):
        try:
            self.appPrepare()
            self.camera.startCameraApp()
            self.camera.switchRearOrFront(lens)
            if lens == "Back":
                self.common.rotateDevice(self.device, -90)
            else:
                self.common.rotateDevice(self.device, 90)
            self.camera.faceDetectionOnAndOff()
            time.sleep(5)
            self.common.clickScreenCenter()
            self.common.getScreenshotAndPullToHost("sc_enable_ft1.png",
                                                   self.host_path)
            self.camera.faceDetectionOnAndOff()
            time.sleep(5)
            self.common.clickScreenCenter()
            self.common.pressBack(2)
            self.camera.startCameraApp()
            self.common.getScreenshotAndPullToHost("sc_disable_ft2.png",
                                                   self.host_path)
            self.camera.faceDetectionOnAndOff()
            time.sleep(5)
            self.common.clickScreenCenter()
            self.common.getScreenshotAndPullToHost("sc_enable_ft2.png",
                                                   self.host_path)
            self.common.resetDevice(self.device)
            remotejarFile = self.multimedia_setting.download_file_to_host(
                "Multimedia_Camera/apk/IQCheck")
            print remotejarFile
            iqcheckDir = self.host_path + os.sep + "IQCheck"
            print iqcheckDir
            if os.path.exists(iqcheckDir) == False:
                os.system("cp " + remotejarFile + " " + iqcheckDir)
            os.system("chmod 777 " + iqcheckDir)
            checkIQ = CheckIQ("", self.host_path)
            l = self.camera.getFOVRegion()
            region = CheckIQ.Region(l[0], l[1], l[2], l[3], False)
            enable_number1 = checkIQ.detectRect(
                self.host_path + "/sc_enable_ft1.png", region)
            disable_number = checkIQ.detectRect(
                self.host_path + "/sc_disable_ft2.png", region)
            enable_number2 = checkIQ.detectRect(
                self.host_path + "/sc_enable_ft2.png", region)
            if enable_number1 > disable_number:
                self.logger.debug("face detect success")
            else:
                os.system("cp " + self.host_path + "/sc_enable_ft1.png " +
                          g_common_obj.get_user_log_dir())
                os.system("cp " + self.host_path + "/sc_disable_ft2.png " +
                          g_common_obj.get_user_log_dir())
                self.logger.debug("enable_number1=" + str(enable_number1))
                self.logger.debug("disable_number=" + str(disable_number))
                self.assertTrue(False, "face detect failure")
            if enable_number2 > disable_number:
                self.logger.debug("face detect success")
            else:
                os.system("cp " + self.host_path + "/sc_enable_ft1.png " +
                          g_common_obj.get_user_log_dir())
                os.system("cp " + self.host_path + "/sc_disable_ft2.png " +
                          g_common_obj.get_user_log_dir())
                self.logger.debug("enable_number2=" + str(enable_number2))
                self.logger.debug("disable_number=" + str(disable_number))
                self.assertTrue(False, "face detect failure")
#             print self.checkIQ.detectRect("/tmp/logs/sc_disable_ft2.png",self.checkIQ.Region(self.camera.getFOVRegion(),False))
#             print self.checkIQ.detectRect("/tmp/logs/sc_enable_ft2.png", self.checkIQ.Region(self.camera.getFOVRegion(), False))
        except Exception as e:
            self.common.resetDevice(self.device)
            self.common.checkCameraCrash()
            self.assertTrue(False, e)

    def cameraSceneDetectPortraitCaptureTest(self):
        try:
            self.appPrepare()
            self.camera.startCameraApp()
            self.camera.switchRearOrFront("Back")
            self.camera.capturePhoto()
            info = self.checkFileCorrupt()[0]
            value = info.get("Scene Capture Type")
            if None != value:
                if value != "Standard":
                    self.assertTrue(False,
                                    "scene capture type is not standard")
            else:
                self.assertTrue(False, "scene capture type info is none")
            self.common.removeDeivceFile()
            self.camera.setCaptureMode("Smart")
            self.common.clickScreenCenter()
            self.camera.capturePhoto()
            info = self.checkFileCorrupt()[0]
            value = info.get("Scene Capture Type")
            if None != value:
                if value != "Portrait":
                    self.assertTrue(False,
                                    "scene capture type is not portrait")
                else:
                    self.logger.debug(
                        "check scene capture type is portrait success")
            else:
                self.assertTrue(False, "scene capture type info is none")
            self.camera.switchRearOrFront("Front")
            self.camera.capturePhoto()
            info = self.checkFileCorrupt()[0]
            value = info.get("Scene Capture Type")
            if None != value:
                #                 print "=====================front value3=" + value
                if value != "Standard":
                    self.assertTrue(False,
                                    "scene capture type is not standard")
            else:
                self.assertTrue(False, "scene capture type info is none")
            self.common.removeDeivceFile()
            self.camera.setCaptureMode("Smart")
            self.common.clickScreenCenter()
            self.camera.capturePhoto()
            info = self.checkFileCorrupt()[0]
            value = info.get("Scene Capture Type")
            if None != value:
                #                 print "====================front value4=" + value
                if value != "Portrait":
                    self.assertTrue(False,
                                    "scene capture type is not portrait")
                else:
                    self.logger.debug(
                        "check scene capture type is portrait success")
            else:
                self.assertTrue(False, "scene capture type info is none")
            self.common.resetDevice(self.device)
        except Exception as e:
            self.common.resetDevice(self.device)
            self.common.checkCameraCrash()
            self.assertTrue(False, e)

    def cameraSmileShotSmileDetectTest(self, lens):
        try:
            self.appPrepare()
            self.camera.startCameraApp()
            self.camera.switchRearOrFront(lens)
            if lens == "Back":
                self.common.rotateDevice(self.device, -90)
            else:
                self.common.rotateDevice(self.device, 90)
            self.camera.setCaptureMode("Smile")
            time.sleep(10)
            if self.common.checkDeviceFile():
                self.assertTrue(False, "file exists, check file failed")
            self.camera.capturePhoto()
            self.checkFileCorrupt()
            self.common.removeDeivceFile()
            if lens == "Back":
                self.common.rotateDevice(self.device, 90)
            else:
                self.common.rotateDevice(self.device, 90)
            if not self.common.checkDeviceFile():
                self.assertTrue(False, "file not exists, check file failed")
            self.checkFileCorrupt()
            self.common.resetDevice(self.device)
        except Exception as e:
            self.common.resetDevice(self.device)
            self.common.checkCameraCrash()
            self.assertTrue(False, e)

    def test_Camera_ExtendPanorama_Rear_Left2Right_AutoStop(self):
        self.cameraExtendPanoramaRearLeft2RightAutoStopTest()

    def test_Camera_FaceTrack_Front_TurnOnAndOff(self):
        self.cameraFaceTrackTurnOnAndOffTest("Front")

    def test_Camera_FaceTrack_Rear_TurnOnAndOff(self):
        self.cameraFaceTrackTurnOnAndOffTest("Back")

    def test_Camera_SceneDetect_Portrait_Capture(self):
        self.cameraSceneDetectPortraitCaptureTest()

    def test_Camera_SmileShot_Front_SmileDetect(self):
        self.cameraSmileShotSmileDetectTest("Front")

    def test_Camera_SmileShot_Rear_SmileDetect(self):
        self.cameraSmileShotSmileDetectTest("Back")