[validation] add cts tests for switch
This CL adds wgsl tests for the following rules: v-switch01: switch statement selector expression must be of a scalar integer type v-0008: switch statement must have exactly one default clause v-switch03: the case selector values must have the same type as the selector expression the case selectors for a switch statement v-switch04: a literal value must not appear more than once in the case selectors for a switch statement v-switch05: a fallthrough statement must not appear as the last statement in last clause of a switch Bug: tint: 6 Change-Id: Ia12b7d13d47b01e970a5a1e58d61ef05dd9f3830 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/28320 Commit-Queue: David Neto <dneto@google.com> Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
parent
2e9f1f54c8
commit
aff58c6cac
|
@ -0,0 +1,12 @@
|
||||||
|
# v-switch03: line 7: the case selector values must have the same type as the selector expression
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: i32 = -2;
|
||||||
|
switch (a) {
|
||||||
|
case 2u:{}
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# v-switch03: line 7: the case selector values must have the same type as the selector expression
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: u32 = 2;
|
||||||
|
switch (a) {
|
||||||
|
case -1:{}
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
# v-switch04: line 9: a literal value must not appear more than once in the case selectors for a
|
||||||
|
# switch statement: '0'
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: u32 = 2;
|
||||||
|
switch (a) {
|
||||||
|
case 10u: {}
|
||||||
|
case 10u: {}
|
||||||
|
case 10u: {}
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# v-switch05: line 9: a fallthrough statement must not appear as the last statement in last clause
|
||||||
|
# of a switch
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: i32 = -2;
|
||||||
|
switch (a) {
|
||||||
|
default: {
|
||||||
|
fallthrough;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
# v-0008: line 6: switch statement must have exactly one default clause
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: i32 = 2;
|
||||||
|
switch (a) {
|
||||||
|
case 2: {}
|
||||||
|
default: {}
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
# v-0008: line 6: switch statement must have exactly one default clause
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: i32 = 2;
|
||||||
|
switch (a) {
|
||||||
|
case 2: {}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
# v-switch01: line 6: switch statement selector expression must be of a scalar integer type
|
||||||
|
|
||||||
|
entry_point vertex = main;
|
||||||
|
fn main() -> void {
|
||||||
|
var a: f32 = 3.14;
|
||||||
|
switch (a) {
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue