skia2/resources/sksl/shared/SwitchWithLoops.sksl
John Stiles 35bd92638f Add tests for switch + loop constructs.
Change-Id: I17b5e21a28140b8e9313d87af9b1145674214fdb
Bug: skia:12450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450989
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-21 17:23:47 +00:00

39 lines
888 B
Plaintext

uniform half4 colorGreen, colorRed;
bool switch_with_break_in_loop(int x) {
int val = 0;
switch (x) {
case 1: for (int i=0; i<10; ++i) { ++val; break; ++val; }
default: ++val;
}
return val == 2;
}
bool switch_with_continue_in_loop(int x) {
int val = 0;
switch (x) {
case 1: for (int i=0; i<10; ++i) { ++val; continue; ++val; }
default: ++val;
}
return val == 11;
}
bool loop_with_break_in_switch(int x) {
int val = 0;
for (int i=0; i<10; ++i) {
switch (x) {
case 1: ++val; break;
default: return false;
}
++val;
}
return val == 20;
}
half4 main(float2 coords) {
int x = int(colorGreen.g);
return (switch_with_break_in_loop(x) &&
switch_with_continue_in_loop(x) &&
loop_with_break_in_switch(x)) ? colorGreen : colorRed;
}