1e5c31af7Sopenharmony_ci#!/usr/bin/python3 2e5c31af7Sopenharmony_ci# 3e5c31af7Sopenharmony_ci# Copyright 2023-2024 The Khronos Group Inc. 4e5c31af7Sopenharmony_ci# 5e5c31af7Sopenharmony_ci# SPDX-License-Identifier: Apache-2.0 6e5c31af7Sopenharmony_ci# 7e5c31af7Sopenharmony_ci# Author(s): Shahbaz Youssefi <syoussefi@google.com> 8e5c31af7Sopenharmony_ci# 9e5c31af7Sopenharmony_ci# Purpose: This file contains tests for reflow.py 10e5c31af7Sopenharmony_ci 11e5c31af7Sopenharmony_ciimport pytest 12e5c31af7Sopenharmony_ci 13e5c31af7Sopenharmony_cifrom collections import namedtuple 14e5c31af7Sopenharmony_ciimport os 15e5c31af7Sopenharmony_ci 16e5c31af7Sopenharmony_cifrom reflib import loadFile 17e5c31af7Sopenharmony_cifrom reflow import reflowFile 18e5c31af7Sopenharmony_ci 19e5c31af7Sopenharmony_citestsDir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'reflow-tests') 20e5c31af7Sopenharmony_ciresultsDir = os.path.join(testsDir, 'results') 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ciVariations = namedtuple('Variations', ['reflow', 'addVUID']) 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_cidef makeTestId(variations): 25e5c31af7Sopenharmony_ci separator = '' 26e5c31af7Sopenharmony_ci testid = '' 27e5c31af7Sopenharmony_ci 28e5c31af7Sopenharmony_ci if not variations.reflow: 29e5c31af7Sopenharmony_ci testid += separator + 'noreflow' 30e5c31af7Sopenharmony_ci separator = '-' 31e5c31af7Sopenharmony_ci 32e5c31af7Sopenharmony_ci if not variations.addVUID: 33e5c31af7Sopenharmony_ci testid += separator + 'novuid' 34e5c31af7Sopenharmony_ci separator = '-' 35e5c31af7Sopenharmony_ci 36e5c31af7Sopenharmony_ci if testid == '': 37e5c31af7Sopenharmony_ci testid = 'default' 38e5c31af7Sopenharmony_ci 39e5c31af7Sopenharmony_ci return testid 40e5c31af7Sopenharmony_ci 41e5c31af7Sopenharmony_ciclass ReflowArgs: 42e5c31af7Sopenharmony_ci def __init__(self, variations): 43e5c31af7Sopenharmony_ci self.overwrite = False 44e5c31af7Sopenharmony_ci self.nowrite = False 45e5c31af7Sopenharmony_ci self.outDir = os.path.join(resultsDir, makeTestId(variations)) 46e5c31af7Sopenharmony_ci self.check = True 47e5c31af7Sopenharmony_ci self.checkVUID = True 48e5c31af7Sopenharmony_ci self.noflow = not variations.reflow 49e5c31af7Sopenharmony_ci self.margin = 76 50e5c31af7Sopenharmony_ci self.suffix = '' 51e5c31af7Sopenharmony_ci self.nextvu = 10000 if variations.addVUID else None 52e5c31af7Sopenharmony_ci self.maxvu = 99999 53e5c31af7Sopenharmony_ci self.warnCount = 0 54e5c31af7Sopenharmony_ci self.vuidDict = {} 55e5c31af7Sopenharmony_ci 56e5c31af7Sopenharmony_ci self.variations = variations 57e5c31af7Sopenharmony_ci 58e5c31af7Sopenharmony_civariations = [ 59e5c31af7Sopenharmony_ci Variations(False, False), 60e5c31af7Sopenharmony_ci Variations(False, True), 61e5c31af7Sopenharmony_ci Variations(True, False), 62e5c31af7Sopenharmony_ci Variations(True, True), 63e5c31af7Sopenharmony_ci] 64e5c31af7Sopenharmony_ci 65e5c31af7Sopenharmony_ci@pytest.fixture(params=variations, ids=makeTestId) 66e5c31af7Sopenharmony_cidef args(request): 67e5c31af7Sopenharmony_ci return ReflowArgs(request.param) 68e5c31af7Sopenharmony_ci 69e5c31af7Sopenharmony_cidef getPath(*names): 70e5c31af7Sopenharmony_ci return os.path.join(testsDir, *names) 71e5c31af7Sopenharmony_ci 72e5c31af7Sopenharmony_cidef match_with_expected(resultFile, expectation): 73e5c31af7Sopenharmony_ci result, result_newline = loadFile(resultFile) 74e5c31af7Sopenharmony_ci expect, expect_newline = loadFile(expectation) 75e5c31af7Sopenharmony_ci 76e5c31af7Sopenharmony_ci assert(result_newline == expect_newline) 77e5c31af7Sopenharmony_ci assert(result == expect) 78e5c31af7Sopenharmony_ci 79e5c31af7Sopenharmony_cidef run_reflow_test(args, filetag): 80e5c31af7Sopenharmony_ci testid = makeTestId(args.variations) 81e5c31af7Sopenharmony_ci 82e5c31af7Sopenharmony_ci source = 'src-' + filetag + '.adoc' 83e5c31af7Sopenharmony_ci expect = 'expect-' + filetag + '-' + testid + '.adoc' 84e5c31af7Sopenharmony_ci 85e5c31af7Sopenharmony_ci filename = getPath(source) 86e5c31af7Sopenharmony_ci 87e5c31af7Sopenharmony_ci reflowFile(filename, args) 88e5c31af7Sopenharmony_ci 89e5c31af7Sopenharmony_ci match_with_expected(getPath(resultsDir, testid, source), getPath(expect)) 90e5c31af7Sopenharmony_ci 91e5c31af7Sopenharmony_cidef match_warn_count(args, expected): 92e5c31af7Sopenharmony_ci assert(args.warnCount == expected) 93e5c31af7Sopenharmony_ci 94e5c31af7Sopenharmony_cidef match_vuid_dict(args, expectedExisting, expectedNew): 95e5c31af7Sopenharmony_ci expected = expectedExisting 96e5c31af7Sopenharmony_ci if args.nextvu is not None: 97e5c31af7Sopenharmony_ci expected = expected | expectedNew 98e5c31af7Sopenharmony_ci 99e5c31af7Sopenharmony_ci assert(sorted(args.vuidDict.keys()) == sorted(expected.keys())) 100e5c31af7Sopenharmony_ci 101e5c31af7Sopenharmony_ci for vuid, locations in args.vuidDict.items(): 102e5c31af7Sopenharmony_ci for location, expectedLocation in zip(locations, expected[vuid]): 103e5c31af7Sopenharmony_ci filename, tagline = location 104e5c31af7Sopenharmony_ci expectedFilename, expectedTag = expectedLocation 105e5c31af7Sopenharmony_ci 106e5c31af7Sopenharmony_ci assert(expectedFilename in filename) 107e5c31af7Sopenharmony_ci assert(expectedTag in tagline) 108e5c31af7Sopenharmony_ci 109e5c31af7Sopenharmony_cidef test_text(args): 110e5c31af7Sopenharmony_ci """Basic test of text reflow.""" 111e5c31af7Sopenharmony_ci run_reflow_test(args, 'text') 112e5c31af7Sopenharmony_ci match_warn_count(args, 0) 113e5c31af7Sopenharmony_ci match_vuid_dict(args, {}, {}) 114e5c31af7Sopenharmony_ci 115e5c31af7Sopenharmony_cidef test_table(args): 116e5c31af7Sopenharmony_ci """Basic test that ensures tables are not reformatted.""" 117e5c31af7Sopenharmony_ci run_reflow_test(args, 'table') 118e5c31af7Sopenharmony_ci match_warn_count(args, 0) 119e5c31af7Sopenharmony_ci match_vuid_dict(args, {}, {}) 120e5c31af7Sopenharmony_ci 121e5c31af7Sopenharmony_cidef test_vu(args): 122e5c31af7Sopenharmony_ci """Basic test that VU reflows work.""" 123e5c31af7Sopenharmony_ci run_reflow_test(args, 'vu') 124e5c31af7Sopenharmony_ci match_warn_count(args, 0) 125e5c31af7Sopenharmony_ci match_vuid_dict(args, {'01993': 126e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 127e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-01993]]']], 128e5c31af7Sopenharmony_ci '00002': 129e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 130e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-00002]]']], 131e5c31af7Sopenharmony_ci '01545': 132e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 133e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-01545]]']], 134e5c31af7Sopenharmony_ci '00003': 135e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 136e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-00003]]']], 137e5c31af7Sopenharmony_ci '00004': 138e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 139e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-00004]]']], 140e5c31af7Sopenharmony_ci '00005': 141e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 142e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-00005]]']], 143e5c31af7Sopenharmony_ci '01394': 144e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 145e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-01394]]']], 146e5c31af7Sopenharmony_ci '02498': 147e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 148e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-aspectMask-02498]]']], 149e5c31af7Sopenharmony_ci '01470': 150e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 151e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-baseMipLevel-01470]]']], 152e5c31af7Sopenharmony_ci '01692': 153e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 154e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pRanges-01692]]']], 155e5c31af7Sopenharmony_ci '01472': 156e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 157e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-baseArrayLayer-01472]]']], 158e5c31af7Sopenharmony_ci '01693': 159e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 160e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pRanges-01693]]']], 161e5c31af7Sopenharmony_ci '00007': 162e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 163e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-00007]]']], 164e5c31af7Sopenharmony_ci '04961': 165e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 166e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pColor-04961]]']], 167e5c31af7Sopenharmony_ci '01805': 168e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 169e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-commandBuffer-01805]]']], 170e5c31af7Sopenharmony_ci '01806': 171e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vu.adoc', 172e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-commandBuffer-01806]]']]}, 173e5c31af7Sopenharmony_ci {}) 174e5c31af7Sopenharmony_ci 175e5c31af7Sopenharmony_ci# Commented out now that VU extractor supports this, but may 176e5c31af7Sopenharmony_ci# need to refactor through a conventions object enable if 177e5c31af7Sopenharmony_ci# OpenXR still needs this. 178e5c31af7Sopenharmony_ci# def test_ifdef_in_vu(args): 179e5c31af7Sopenharmony_ci# """Test that ifdef in VUs are warned against.""" 180e5c31af7Sopenharmony_ci# run_reflow_test(args, 'ifdef-in-vu') 181e5c31af7Sopenharmony_ci# match_warn_count(args, 1) 182e5c31af7Sopenharmony_ci# match_vuid_dict(args, {'00003': 183e5c31af7Sopenharmony_ci# [['scripts/reflow-tests/src-ifdef-in-vu.adoc', 184e5c31af7Sopenharmony_ci# '[[VUID-vkCmdClearColorImage-image-00003]]']], 185e5c31af7Sopenharmony_ci# '00004': 186e5c31af7Sopenharmony_ci# [['scripts/reflow-tests/src-ifdef-in-vu.adoc', 187e5c31af7Sopenharmony_ci# '[[VUID-vkCmdClearColorImage-imageLayout-00004]]']], 188e5c31af7Sopenharmony_ci# '00005': 189e5c31af7Sopenharmony_ci# [['scripts/reflow-tests/src-ifdef-in-vu.adoc', 190e5c31af7Sopenharmony_ci# '[[VUID-vkCmdClearColorImage-imageLayout-00005]]']], 191e5c31af7Sopenharmony_ci# '04961': 192e5c31af7Sopenharmony_ci# [['scripts/reflow-tests/src-ifdef-in-vu.adoc', 193e5c31af7Sopenharmony_ci# '[[VUID-vkCmdClearColorImage-pColor-04961]]']]}, 194e5c31af7Sopenharmony_ci# {}) 195e5c31af7Sopenharmony_ci 196e5c31af7Sopenharmony_cidef test_vuid_repeat(args): 197e5c31af7Sopenharmony_ci """Test that same VUID in multiple VUs is detected.""" 198e5c31af7Sopenharmony_ci run_reflow_test(args, 'vuid-repeat') 199e5c31af7Sopenharmony_ci match_warn_count(args, 0) 200e5c31af7Sopenharmony_ci match_vuid_dict(args, {'02498': 201e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vuid-repeat.adoc', 202e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-aspectMask-02498]]'], 203e5c31af7Sopenharmony_ci ['scripts/reflow-tests/src-vuid-repeat.adoc', 204e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pRanges-02498]]'], 205e5c31af7Sopenharmony_ci ['scripts/reflow-tests/src-vuid-repeat.adoc', 206e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pRanges-02498]]'], 207e5c31af7Sopenharmony_ci ['scripts/reflow-tests/src-vuid-repeat.adoc', 208e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pColor-02498]]']], 209e5c31af7Sopenharmony_ci '01470': 210e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vuid-repeat.adoc', 211e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-baseMipLevel-01470]]']], 212e5c31af7Sopenharmony_ci '00007': 213e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-vuid-repeat.adoc', 214e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-baseArrayLayer-00007]]'], 215e5c31af7Sopenharmony_ci ['scripts/reflow-tests/src-vuid-repeat.adoc', 216e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-00007]]']]}, 217e5c31af7Sopenharmony_ci {}) 218e5c31af7Sopenharmony_ci 219e5c31af7Sopenharmony_cidef test_new_vuid(args): 220e5c31af7Sopenharmony_ci """Test that VUID generation works.""" 221e5c31af7Sopenharmony_ci run_reflow_test(args, 'new-vuid') 222e5c31af7Sopenharmony_ci match_warn_count(args, 0) 223e5c31af7Sopenharmony_ci match_vuid_dict(args, {'01993': 224e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 225e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-01993]]']], 226e5c31af7Sopenharmony_ci '01545': 227e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 228e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-01545]]']], 229e5c31af7Sopenharmony_ci '00004': 230e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 231e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-00004]]']], 232e5c31af7Sopenharmony_ci '00005': 233e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 234e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-00005]]']], 235e5c31af7Sopenharmony_ci '02498': 236e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 237e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-aspectMask-02498]]']], 238e5c31af7Sopenharmony_ci '01470': 239e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 240e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-baseMipLevel-01470]]']], 241e5c31af7Sopenharmony_ci '01472': 242e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 243e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-baseArrayLayer-01472]]']], 244e5c31af7Sopenharmony_ci '01693': 245e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 246e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pRanges-01693]]']], 247e5c31af7Sopenharmony_ci '01805': 248e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 249e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-commandBuffer-01805]]']], 250e5c31af7Sopenharmony_ci '01806': 251e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 252e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-commandBuffer-01806]]']]}, 253e5c31af7Sopenharmony_ci {'10000': 254e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 255e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-10000]]']], 256e5c31af7Sopenharmony_ci '10001': 257e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 258e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-10001]]']], 259e5c31af7Sopenharmony_ci '10002': 260e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 261e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-10002]]']], 262e5c31af7Sopenharmony_ci '10003': 263e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 264e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pRanges-10003]]']], 265e5c31af7Sopenharmony_ci '10004': 266e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 267e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-10004]]']], 268e5c31af7Sopenharmony_ci '10005': 269e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid.adoc', 270e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-pColor-10005]]']]}) 271e5c31af7Sopenharmony_ci 272e5c31af7Sopenharmony_cidef test_new_vuid_attribute(args): 273e5c31af7Sopenharmony_ci """Test that VUID generation works and prioritizes attributes for tags.""" 274e5c31af7Sopenharmony_ci run_reflow_test(args, 'new-vuid-attribute') 275e5c31af7Sopenharmony_ci match_warn_count(args, 0) 276e5c31af7Sopenharmony_ci match_vuid_dict(args, {}, {'10000': 277e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 278e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10000]]']], 279e5c31af7Sopenharmony_ci '10001': 280e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 281e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imagesubresource}-10001]]']], 282e5c31af7Sopenharmony_ci '10002': 283e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 284e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10002]]']], 285e5c31af7Sopenharmony_ci '10003': 286e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 287e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10003]]']], 288e5c31af7Sopenharmony_ci '10004': 289e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 290e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10004]]']], 291e5c31af7Sopenharmony_ci '10005': 292e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 293e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10005]]']], 294e5c31af7Sopenharmony_ci '10006': 295e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 296e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10006]]']], 297e5c31af7Sopenharmony_ci '10007': 298e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 299e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10007]]']], 300e5c31af7Sopenharmony_ci '10008': 301e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 302e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10008]]']], 303e5c31af7Sopenharmony_ci '10009': 304e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 305e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10009]]']], 306e5c31af7Sopenharmony_ci '10010': 307e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 308e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10010]]']], 309e5c31af7Sopenharmony_ci '10011': 310e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 311e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imagesubresource}-10011]]']], 312e5c31af7Sopenharmony_ci '10012': 313e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 314e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10012]]']], 315e5c31af7Sopenharmony_ci '10013': 316e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 317e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10013]]']], 318e5c31af7Sopenharmony_ci '10014': 319e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 320e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10014]]']], 321e5c31af7Sopenharmony_ci '10015': 322e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-new-vuid-attribute.adoc', 323e5c31af7Sopenharmony_ci '[[VUID-{refpage}-{imageparam}-10015]]']]}) 324e5c31af7Sopenharmony_ci 325e5c31af7Sopenharmony_cidef test_common_validity(args): 326e5c31af7Sopenharmony_ci """Test that VUID generation works for common validity files.""" 327e5c31af7Sopenharmony_ci run_reflow_test(args, 'common-validity') 328e5c31af7Sopenharmony_ci match_warn_count(args, 0) 329e5c31af7Sopenharmony_ci match_vuid_dict(args, {'00171': 330e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 331e5c31af7Sopenharmony_ci '[[VUID-{refpage}-pRegions-00171]]']], 332e5c31af7Sopenharmony_ci '00176': 333e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 334e5c31af7Sopenharmony_ci '[[VUID-{refpage}-srcBuffer-00176]]']], 335e5c31af7Sopenharmony_ci '00177': 336e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 337e5c31af7Sopenharmony_ci '[[VUID-{refpage}-dstImage-00177]]']], 338e5c31af7Sopenharmony_ci '00178': 339e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 340e5c31af7Sopenharmony_ci '[[VUID-{refpage}-dstImage-00178]]']], 341e5c31af7Sopenharmony_ci '00181': 342e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 343e5c31af7Sopenharmony_ci '[[VUID-{refpage}-dstImageLayout-00181]]']]}, 344e5c31af7Sopenharmony_ci {'10000': 345e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 346e5c31af7Sopenharmony_ci '[[VUID-{refpage}-pRegions-10000]]']], 347e5c31af7Sopenharmony_ci '10001': 348e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 349e5c31af7Sopenharmony_ci '[[VUID-{refpage}-srcBuffer-10001]]']], 350e5c31af7Sopenharmony_ci '10002': 351e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 352e5c31af7Sopenharmony_ci '[[VUID-{refpage}-dstImage-10002]]']], 353e5c31af7Sopenharmony_ci '10003': 354e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 355e5c31af7Sopenharmony_ci '[[VUID-{refpage}-dstImage-10003]]']], 356e5c31af7Sopenharmony_ci '10004': 357e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-common-validity.adoc', 358e5c31af7Sopenharmony_ci '[[VUID-{refpage}-dstImageLayout-10004]]']]}) 359e5c31af7Sopenharmony_ci 360e5c31af7Sopenharmony_cidef test_nested_lists_in_vu(args): 361e5c31af7Sopenharmony_ci """Test that nested lists in VU work correctly.""" 362e5c31af7Sopenharmony_ci run_reflow_test(args, 'nested-lists-in-vu') 363e5c31af7Sopenharmony_ci match_warn_count(args, 0) 364e5c31af7Sopenharmony_ci match_vuid_dict(args, {'07284': 365e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-nested-lists-in-vu.adoc', 366e5c31af7Sopenharmony_ci '[[VUID-{refpage}-multisampledRenderToSingleSampled-07284]]']], 367e5c31af7Sopenharmony_ci '08971': 368e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-nested-lists-in-vu.adoc', 369e5c31af7Sopenharmony_ci '[[VUID-{refpage}-None-08971]]']]}, 370e5c31af7Sopenharmony_ci {'10000': 371e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-nested-lists-in-vu.adoc', 372e5c31af7Sopenharmony_ci '[[VUID-{refpage}-None-10000]]']]}) 373e5c31af7Sopenharmony_ci 374e5c31af7Sopenharmony_ci 375e5c31af7Sopenharmony_cidef test_math_block_in_vu(args): 376e5c31af7Sopenharmony_ci """Test that nested lists in VU work correctly.""" 377e5c31af7Sopenharmony_ci run_reflow_test(args, 'math-block-in-vu') 378e5c31af7Sopenharmony_ci match_warn_count(args, 0) 379e5c31af7Sopenharmony_ci match_vuid_dict(args, {'00004': 380e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-math-block-in-vu.adoc', 381e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-imageLayout-00004]]']]}, 382e5c31af7Sopenharmony_ci {'10000': 383e5c31af7Sopenharmony_ci [['scripts/reflow-tests/src-math-block-in-vu.adoc', 384e5c31af7Sopenharmony_ci '[[VUID-vkCmdClearColorImage-image-10000]]']]}) 385