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()
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()
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")
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()
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")