summaryrefslogtreecommitdiff
path: root/tests/language-feature/enums/enum-switch.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-10-20 09:28:13 -0700
committerGitHub <noreply@github.com>2024-10-20 09:28:13 -0700
commit307315a7305e76529837fd1cdb677f534d5f539b (patch)
treeba39e96ba2e9b3d62d1213aab2f1cc54febe451a /tests/language-feature/enums/enum-switch.slang
parent9936178dd3efb026bfa142512a2bf061d7a75ab5 (diff)
Properly check switch case. (#5341)
Diffstat (limited to 'tests/language-feature/enums/enum-switch.slang')
-rw-r--r--tests/language-feature/enums/enum-switch.slang31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/language-feature/enums/enum-switch.slang b/tests/language-feature/enums/enum-switch.slang
new file mode 100644
index 000000000..600c2e31e
--- /dev/null
+++ b/tests/language-feature/enums/enum-switch.slang
@@ -0,0 +1,31 @@
+//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-slang -compute -shaderobj -output-using-type
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-vk -compute -shaderobj -output-using-type
+
+enum class E : uint32_t
+{
+ A,
+ B,
+ C
+}
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
+RWStructuredBuffer<uint> outputBuffer;
+
+[NumThreads(1,1,1)]
+void computeMain(int i : SV_DispatchThreadID)
+{
+ E e = E(i);
+ switch (e)
+ {
+ case E::A:
+ outputBuffer[0] = 1;
+ break;
+ case E::B:
+ outputBuffer[0] = 2;
+ break;
+ case E::C:
+ outputBuffer[0] = 3;
+ break;
+ }
+ // CHECK: 1
+} \ No newline at end of file