diff options
Diffstat (limited to 'tests/language-feature/namespaces')
| -rw-r--r-- | tests/language-feature/namespaces/simple-namespace.slang | 65 | ||||
| -rw-r--r-- | tests/language-feature/namespaces/simple-namespace.slang.expected.txt | 4 |
2 files changed, 69 insertions, 0 deletions
diff --git a/tests/language-feature/namespaces/simple-namespace.slang b/tests/language-feature/namespaces/simple-namespace.slang new file mode 100644 index 000000000..01f40545a --- /dev/null +++ b/tests/language-feature/namespaces/simple-namespace.slang @@ -0,0 +1,65 @@ +// simple-namespace.slang + +//TEST(compute):COMPARE_COMPUTE: + +// Test that simple `namespace` declarations work as expected + +namespace A +{ + struct X + { + int val; + + int getVal() + { + return val; + } + } +} + +namespace B +{ + struct X + { + int head; + int tail; + + int getHead() { return head; } + int getTail() { return tail; } + } + + X makeX(int h, int t) + { + X result = { h, t }; + return result; + } +} + +namespace A +{ + X makeX(int v) + { + X result = { v }; + return result; + } +} + +int test(int val) +{ + A.X a = A::makeX(val); + B::X b = B.makeX(val*16, val*256); + + return a.getVal() + b.getHead() + b.getTail(); +} + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer<int> outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + uint tid = dispatchThreadID.x; + int inVal = tid; + int outVal = test(inVal); + outputBuffer[tid] = outVal; +} diff --git a/tests/language-feature/namespaces/simple-namespace.slang.expected.txt b/tests/language-feature/namespaces/simple-namespace.slang.expected.txt new file mode 100644 index 000000000..fb43a3716 --- /dev/null +++ b/tests/language-feature/namespaces/simple-namespace.slang.expected.txt @@ -0,0 +1,4 @@ +0 +111 +222 +333 |
