def setUp(self): print "[Setup]:%s" % self.__class__.__name__ super(CardviewRecentsTest, self).setUp() self.actor_apps = self.test_conf.get('actor_apps') self.calendar_path = get_resource_from_atifactory( self.config_file, "apps", "calendar") self.clock_path = get_resource_from_atifactory(self.config_file, "apps", "clock") pkgmgr.apk_install(self.calendar_path) pkgmgr.apk_install(self.clock_path) self.systemui = SystemUiExtendImpl() self.photos = get_photo_implement() self.photos.rm_delete_photos() self.systemui.unlock_screen() self.d.screen.on() self.d.press.menu() self.mark_time = logcat.get_device_time_mark()
def setUpClass(self): """ install apk """ super(PhotoGrid, self).setUpClass() self.photos = get_photo_implement() self.photos.rm_delete_photos() apk_path = get_resource_from_atifactory( 'tests.tablet.artifactory.conf', 'content_photogrid', 'name') pkgmgr.apk_install(apk_path) self.photos.deploy_photo_content('Pictures', 'email')
def setUp(self): super(VirtualDisplay, self).setUp() self._test_name = __name__ print "[Setup]: %s" % self._test_name self.apk = get_resource_from_atifactory(CONFIG_FILE, SECTION, 'name') self.d = g_common_obj.get_device() self.apiDemoImpl = SampleApiDemoImpl() self.photoImpl = get_photo_implement() self.photoImpl.stop_photos_am() self.photoImpl.rm_delete_photos() self.photoImpl.refresh_sdcard()
def _check_dependency(self): if not pkgmgr._package_installed(pkgName=PACKAGENAME): android_version = self.env.get_android_version() selection = { 'L': 'apk_l', 'M': 'apk_m', 'N': 'apk_n', 'O-MR0': 'apk_omr0', 'O-MR1': 'apk_omr1' } try: file_path = get_resource_from_atifactory( 'tests.common.dEQP.conf', 'dEQP', selection[android_version]) pkgmgr.apk_install(file_path) except KeyError, e: print "DEQP app version not match with android os: %s" % str(e)
def _install_apk(self): if not pkgmgr._package_installed(pkgName=PACKAGE_NAME): android_version = EnvironmentUtils().get_android_version() selection = { 'L': 'apk_l', 'M': 'apk_m', 'N': 'apk_n', 'O-MR0': 'apk_omr0', 'O-MR1': 'apk_omr1' } try: file_path = get_resource_from_atifactory( 'tests.tablet.artifactory.conf', 'content_colormode', selection[android_version]) pkgmgr.apk_install(file_path) except KeyError, e: print "ColorMode app version not match with android os: %s" % str( e)
def test_shadow_sampleapkelevationbasic(self): """ refer TC test_Shadow_SampleAPKElevationBasic """ print "[RunTest]: %s" % self.__str__() # install apk if not exists in package list if self.basic_pkg_name not in pkgmgr.get_packages(): apk_path = get_resource_from_atifactory(self.case_cfg, 'ElevationBasic', 'apk') pkgmgr.apk_install(apk_path) # launch app run_cmd = "am start -S -n %s/%s" % (self.basic_pkg_name, self.activity_name) g_common_obj.adb_cmd_capture_msg(run_cmd) sleep(2) # screen capture before operation sx, sy, ex, ey = self.d.info["displayWidth"] / 2, \ 0, \ self.d.info["displayWidth"], \ self.d.info["displayHeight"] img_before = multi_display.get_screenshot_multidisplay_croped( 0, sx, sy, ex, ey) # define operation type def long_tap_content(): d = g_common_obj.get_device() d(resourceId="com.example.android.elevationbasic:id/floating_shape_2" ).long_click() # start test thread = threading.Timer(1.5, long_tap_content) thread.start() # screen capture after operation sleep(2) img_after = multi_display.get_screenshot_multidisplay_croped( 0, sx, sy, ex, ey) assert compare_pic.compare_pic( img_before, img_after) > 4, "No diff after operation"
class dEQPImpl(object): def __init__(self): self._device = g_common_obj.get_device() self.tmp = tempfile.gettempdir() self.tmpdir = getTmpDir() self.inside_output = "/sdcard/TestResult.qpa" self.device = g_common_obj.get_test_device() self.env = EnvironmentUtils() self._mustpass_path = '/sdcard' self._mustpass_list = [ 'vk-master.txt', 'egl-master.txt', 'gles2-master.txt', 'gles3-master.txt', 'gles31-master.txt' ] self._failure_log = os.path.join( g_common_obj.globalcontext.user_log_dir, 'deqp_failures.log') self._raw_deqp_result = os.path.join( g_common_obj.globalcontext.user_log_dir, 'deqp_test_result.log') self._extension_list = os.path.join( g_common_obj.globalcontext.user_log_dir, 'extension_list.log') def setup(self): g_common_obj.root_on_device() g_common_obj.remount_device() g_common_obj.adb_cmd_capture_msg("logcat -c") self._check_dependency() def run_case(self, case_name, check_extensions=False, extension_name=''): _inside_output = self.inside_output # Add inside function for further check extension tests. def _get_extension_list(): inside_content = g_common_obj.adb_cmd_capture_msg('cat %s' % _inside_output) return re.findall(r'\ +?<Text>(.+)</Text>', inside_content) # Start run deqp test. _results = { 'Passed': 0, 'Failed': 0, 'Not supported': 0, 'Warnings': 0 } LOG.debug("Testcase: %s" % (case_name)) setlog_cmd = "setprop log.tag.dEQP DEBUG" cmd = "am start -S -n com.drawelements.deqp/android.app.NativeActivity -e cmdLine \"" \ "deqp --deqp-log-filename=%s --deqp-case=%s\"" % (self.inside_output, case_name) self.device.adb_cmd_capture_msg_ext(repr(setlog_cmd)) self.device.adb_cmd_capture_msg_ext(repr(cmd)) # failures = ['Fail', 'ResourceError', 'Crash', 'Timeout', 'InternalError'] s_time = time.time() while time.time() - s_time < 900: cur_window = get_current_focus_window() time.sleep(2) if PACKAGENAME not in cur_window: LOG.debug("Test finished.") # Save deqp results to log. g_common_obj.adb_cmd_capture_msg('logcat -d -s dEQP > %s' % self._raw_deqp_result) # Handle results. logs = Popen('cat %s' % self._raw_deqp_result, shell=True, stdout=PIPE, stderr=PIPE).communicate()[0] for i in _results.keys(): chk_log = r"logcat -d -s dEQP | grep -oe '%s:\ \+[0-9]\+/[0-9]\+'" % i try: output = g_common_obj.adb_cmd_capture_msg(chk_log) num = output.split(' ')[-1].split('/')[0] _results[i] = int(num) except ValueError as e: raise Exception("Got error when running tests: %s" % e) assert sum(_results.values()) != 0, LOG.debug("Test not run.") LOG.debug("Raw summary: %s" % _results) if _results['Failed'] > 0: raw_failures = re.findall( r'Test case .(dEQP-.*[\d|\w]).+\n.+?dEQP +: +Fail.+?.', logs) head_name = raw_failures[0].split('.')[0].split( '-')[-1].lower() real_failures = [] for i in raw_failures: _is_mustpass = "******" % ( self._mustpass_path, head_name, i) chk = g_common_obj.adb_cmd_capture_msg(_is_mustpass) if chk == '': _results['Failed'] -= 1 _results['Not supported'] += 1 else: real_failures.append(i) if len(real_failures) > 0: f = open(self._failure_log, 'w') for i in real_failures: f.write(i + '\n') f.close() LOG.debug("Final summary: %s" % _results) # Handle event for extension list check. if check_extensions: ext_list = _get_extension_list() f = open(self._extension_list, 'w') # Save extension list to logfile. for el in ext_list: f.write(el + '\n') f.close() LOG.info("Extension list saved in: %s" % self._extension_list) assert extension_name in ext_list, "%s is not in this test." % extension_name LOG.info("%s is found in this test." % extension_name) return True else: if _results['Failed'] == 0: LOG.info("All tests passed.") return True else: raise Exception( "dEQP test failed, details refer to log file: %s" % self._failure_log) else: time.sleep(3) raise Exception("Test timeout.") def _check_dependency(self): if not pkgmgr._package_installed(pkgName=PACKAGENAME): android_version = self.env.get_android_version() selection = { 'L': 'apk_l', 'M': 'apk_m', 'N': 'apk_n', 'O-MR0': 'apk_omr0', 'O-MR1': 'apk_omr1' } try: file_path = get_resource_from_atifactory( 'tests.common.dEQP.conf', 'dEQP', selection[android_version]) pkgmgr.apk_install(file_path) except KeyError, e: print "DEQP app version not match with android os: %s" % str(e) # Need to update above when new version is released. for i in self._mustpass_list: op = g_common_obj.adb_cmd_capture_msg('ls %s/%s' % (self._mustpass_path, i)) if 'No such file' in op: file_path = get_resource_from_atifactory( 'tests.common.dEQP.conf', 'dEQP', i.split('-')[0] + '_mustpass') g_common_obj.push_file(file_path, self._mustpass_path + '/')