Function makeLimitTestGroup make Limit Test Group ( limit , params ? ) : { description : string ; g : TestGroupBuilder < LimitTestsImpl > ; limit : "maxTextureDimension1D" | "maxTextureDimension2D" | "maxTextureDimension3D" | "maxTextureArrayLayers" | "maxBindGroups" | "maxBindGroupsPlusVertexBuffers" | "maxBindingsPerBindGroup" | "maxDynamicUniformBuffersPerPipelineLayout" | "maxDynamicStorageBuffersPerPipelineLayout" | "maxSampledTexturesPerShaderStage" | "maxSamplersPerShaderStage" | "maxStorageBuffersPerShaderStage" | "maxStorageTexturesPerShaderStage" | "maxUniformBuffersPerShaderStage" | "maxUniformBufferBindingSize" | "maxStorageBufferBindingSize" | "minUniformBufferOffsetAlignment" | "minStorageBufferOffsetAlignment" | "maxVertexBuffers" | "maxBufferSize" | "maxVertexAttributes" | "maxVertexBufferArrayStride" | "maxInterStageShaderVariables" | "maxColorAttachments" | "maxColorAttachmentBytesPerSample" | "maxComputeWorkgroupStorageSize" | "maxComputeInvocationsPerWorkgroup" | "maxComputeWorkgroupSizeX" | "maxComputeWorkgroupSizeY" | "maxComputeWorkgroupSizeZ" | "maxComputeWorkgroupsPerDimension" | "maxStorageBuffersInFragmentStage" | "maxStorageTexturesInFragmentStage" | "maxStorageBuffersInVertexStage" | "maxStorageTexturesInVertexStage" ; } Parameters limit : "maxTextureDimension1D" | "maxTextureDimension2D" | "maxTextureDimension3D" | "maxTextureArrayLayers" | "maxBindGroups" | "maxBindGroupsPlusVertexBuffers" | "maxBindingsPerBindGroup" | "maxDynamicUniformBuffersPerPipelineLayout" | "maxDynamicStorageBuffersPerPipelineLayout" | "maxSampledTexturesPerShaderStage" | "maxSamplersPerShaderStage" | "maxStorageBuffersPerShaderStage" | "maxStorageTexturesPerShaderStage" | "maxUniformBuffersPerShaderStage" | "maxUniformBufferBindingSize" | "maxStorageBufferBindingSize" | "minUniformBufferOffsetAlignment" | "minStorageBufferOffsetAlignment" | "maxVertexBuffers" | "maxBufferSize" | "maxVertexAttributes" | "maxVertexBufferArrayStride" | "maxInterStageShaderVariables" | "maxColorAttachments" | "maxColorAttachmentBytesPerSample" | "maxComputeWorkgroupStorageSize" | "maxComputeInvocationsPerWorkgroup" | "maxComputeWorkgroupSizeX" | "maxComputeWorkgroupSizeY" | "maxComputeWorkgroupSizeZ" | "maxComputeWorkgroupsPerDimension" | "maxStorageBuffersInFragmentStage" | "maxStorageTexturesInFragmentStage" | "maxStorageBuffersInVertexStage" | "maxStorageTexturesInVertexStage" Optional
params : LimitTestParams Returns { description : string ; g : TestGroupBuilder < LimitTestsImpl > ; limit : "maxTextureDimension1D" | "maxTextureDimension2D" | "maxTextureDimension3D" | "maxTextureArrayLayers" | "maxBindGroups" | "maxBindGroupsPlusVertexBuffers" | "maxBindingsPerBindGroup" | "maxDynamicUniformBuffersPerPipelineLayout" | "maxDynamicStorageBuffersPerPipelineLayout" | "maxSampledTexturesPerShaderStage" | "maxSamplersPerShaderStage" | "maxStorageBuffersPerShaderStage" | "maxStorageTexturesPerShaderStage" | "maxUniformBuffersPerShaderStage" | "maxUniformBufferBindingSize" | "maxStorageBufferBindingSize" | "minUniformBufferOffsetAlignment" | "minStorageBufferOffsetAlignment" | "maxVertexBuffers" | "maxBufferSize" | "maxVertexAttributes" | "maxVertexBufferArrayStride" | "maxInterStageShaderVariables" | "maxColorAttachments" | "maxColorAttachmentBytesPerSample" | "maxComputeWorkgroupStorageSize" | "maxComputeInvocationsPerWorkgroup" | "maxComputeWorkgroupSizeX" | "maxComputeWorkgroupSizeY" | "maxComputeWorkgroupSizeZ" | "maxComputeWorkgroupsPerDimension" | "maxStorageBuffersInFragmentStage" | "maxStorageTexturesInFragmentStage" | "maxStorageBuffersInVertexStage" | "maxStorageTexturesInVertexStage" ; } description : string limit : "maxTextureDimension1D" | "maxTextureDimension2D" | "maxTextureDimension3D" | "maxTextureArrayLayers" | "maxBindGroups" | "maxBindGroupsPlusVertexBuffers" | "maxBindingsPerBindGroup" | "maxDynamicUniformBuffersPerPipelineLayout" | "maxDynamicStorageBuffersPerPipelineLayout" | "maxSampledTexturesPerShaderStage" | "maxSamplersPerShaderStage" | "maxStorageBuffersPerShaderStage" | "maxStorageTexturesPerShaderStage" | "maxUniformBuffersPerShaderStage" | "maxUniformBufferBindingSize" | "maxStorageBufferBindingSize" | "minUniformBufferOffsetAlignment" | "minStorageBufferOffsetAlignment" | "maxVertexBuffers" | "maxBufferSize" | "maxVertexAttributes" | "maxVertexBufferArrayStride" | "maxInterStageShaderVariables" | "maxColorAttachments" | "maxColorAttachmentBytesPerSample" | "maxComputeWorkgroupStorageSize" | "maxComputeInvocationsPerWorkgroup" | "maxComputeWorkgroupSizeX" | "maxComputeWorkgroupSizeY" | "maxComputeWorkgroupSizeZ" | "maxComputeWorkgroupsPerDimension" | "maxStorageBuffersInFragmentStage" | "maxStorageTexturesInFragmentStage" | "maxStorageBuffersInVertexStage" | "maxStorageTexturesInVertexStage"
This is to avoid repeating yourself (D.R.Y.) as I ran into that issue multiple times writing these tests where I'd copy a test, need to rename a limit in 3-4 places, forget one place, and then spend 20-30 minutes wondering why the test was failing.