def GetPlatformTags(cls, browser): tags = super(WebGLConformanceIntegrationTest, cls).GetPlatformTags(browser) tags.extend([['no-asan', 'asan'][cls._is_asan], 'webgl-version-%d' % cls._webgl_version]) if gpu_helper.EXPECTATIONS_DRIVER_TAGS: system_info = browser.GetSystemInfo() if system_info: gpu_info = system_info.gpu driver_vendor = gpu_helper.GetGpuDriverVendor(gpu_info) driver_version = gpu_helper.GetGpuDriverVersion(gpu_info) if driver_vendor and driver_version: driver_vendor = driver_vendor.lower() driver_version = driver_version.lower() # Extract the substring before first space/dash/underscore matcher = re.compile(r'^([a-z\d]+)([\s\-_]+[a-z\d]+)+$') match = matcher.match(driver_vendor) if match: driver_vendor = match.group(1) for tag in gpu_helper.EXPECTATIONS_DRIVER_TAGS: match = gpu_helper.MatchDriverTag(tag) assert match if (driver_vendor == match.group(1) and gpu_helper.EvaluateVersionComparison( driver_version, match.group(2), match.group(3))): tags.append(tag) return tags
def _IsDriverTagDuplicated(driver_tag1, driver_tag2): if driver_tag1 == driver_tag2: return True match = gpu_helper.MatchDriverTag(driver_tag1) tag1 = (match.group(1), match.group(2), match.group(3)) match = gpu_helper.MatchDriverTag(driver_tag2) tag2 = (match.group(1), match.group(2), match.group(3)) if not tag1[0] == tag2[0]: return False operation1, version1 = tag1[1:] operation2, version2 = tag2[1:] if operation1 == 'ne': return not (operation2 == 'eq' and version1 == version2) elif operation2 == 'ne': return not (operation1 == 'eq' and version1 == version2) elif operation1 == 'eq': return gpu_helper.EvaluateVersionComparison(version1, operation2, version2) elif operation2 == 'eq': return gpu_helper.EvaluateVersionComparison(version2, operation1, version1) if operation1 == 'ge' or operation1 == 'gt': if operation2 == 'ge' or operation2 == 'gt': return True elif operation1 == 'le' or operation1 == 'lt': if operation2 == 'le' or operation2 == 'lt': return True if operation1 == 'ge': if operation2 == 'le': return not gpu_helper.EvaluateVersionComparison( version1, 'gt', version2) elif operation2 == 'lt': return not gpu_helper.EvaluateVersionComparison( version1, 'ge', version2) elif operation1 == 'gt': return not gpu_helper.EvaluateVersionComparison( version1, 'ge', version2) elif operation1 == 'le': if operation2 == 'ge': return not gpu_helper.EvaluateVersionComparison( version1, 'lt', version2) elif operation2 == 'gt': return not gpu_helper.EvaluateVersionComparison( version1, 'le', version2) elif operation1 == 'lt': return not gpu_helper.EvaluateVersionComparison( version1, 'le', version2) else: assert False
def testDriverVersionComparision(self): self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'eq', '24.20.100.7000')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100', 'ne', '24.20.100.7000')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'gt', '24.20.100')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000a', 'gt', '24.20.100.7000')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'lt', '24.20.100.7001')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'lt', '24.20.200.6000')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'lt', '25.30.100.6000', 'linux', 'intel')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'gt', '25.30.100.6000', 'win', 'intel')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.101.6000', 'gt', '25.30.100.7000', 'win', 'intel')) self.assertFalse( gpu_helper.EvaluateVersionComparison('24.20.99.7000', 'gt', '24.20.100.7000', 'win', 'intel')) self.assertFalse( gpu_helper.EvaluateVersionComparison('24.20.99.7000', 'lt', '24.20.100.7000', 'win', 'intel')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.99.7000', 'ne', '24.20.100.7000', 'win', 'intel')) self.assertFalse( gpu_helper.EvaluateVersionComparison('24.20.100', 'lt', '24.20.100.7000', 'win', 'intel')) self.assertFalse( gpu_helper.EvaluateVersionComparison('24.20.100', 'gt', '24.20.100.7000', 'win', 'intel')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100', 'ne', '24.20.100.7000', 'win', 'intel')) self.assertTrue( gpu_helper.EvaluateVersionComparison('24.20.100.7000', 'eq', '25.20.100.7000', 'win', 'intel'))