diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-02-04 18:45:50 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-04 15:45:50 -0800 |
| commit | fb053433ef64bbae50a8a10ea4381a5695019fac (patch) | |
| tree | 87298897bf88ec79b40343a868a283d1885357b9 /tests | |
| parent | c40f10b704b8bd5a744cc9b3964344585436b1ac (diff) | |
Fix line offset problem (#1690)
* #include an absolute path didn't work - because paths were taken to always be relative.
* WIP diagnostics for line number output.
* Small param naming change
* Use x macro for pass through compile human name lookup/getting.
* WIP on parsing downstream compiler output.
* Split out parsing into ParseDiagnosticUtil.
Added test result of single line.
* Dump out the std output on fail to parse diagnostics.
* Change test type for syntax-error-intrinsic.slang be TEST not TEST_DIAGNOSTIC
* Use Index for StringUtil.
* WIP: First pass support for parsing Slang diagnostics.
* WIP Testing comparing with ParseDiagnosticUtil with previous ad-hoc mechanism.
* Use the new parsing mechanism for diagnostic comparisons.
* Fix layout on GLSL, doesn't have CR so runs into main.
* Split out switch on outputting intrinsic 'specials'.
Output code around intrinsic as emit - so that we get the appropriate indenting (and potentially other benefits).
* Improvements to diagnostics parsing.
Better error handling, and fallback handling.
Added ability to parse downstream compilers without a prefix.
Added ability to parse Slang with a prefix.
* DownstreamDiagnostic::Type -> Severity and related fixes.
* Small fixes around moving from DownstreamDiagnostic::Type -> Severity
* Fix handling of 'special intrinsic' expansion
* Split out the handling of intrinsic expansion into it's own type and files.
* Fixes to reading expected output - for SimpleLine test.
* Test using += to check #line output.
* A test around += and return.
* Small comment fixes.
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'tests')
9 files changed, 58 insertions, 5 deletions
diff --git a/tests/diagnostics/syntax-error-intrinsic.slang.1.expected b/tests/diagnostics/syntax-error-intrinsic.slang.1.expected deleted file mode 100644 index 3c032078a..000000000 --- a/tests/diagnostics/syntax-error-intrinsic.slang.1.expected +++ /dev/null @@ -1 +0,0 @@ -18 diff --git a/tests/diagnostics/syntax-error-intrinsic.slang.2.expected b/tests/diagnostics/syntax-error-intrinsic.slang.2.expected deleted file mode 100644 index 3c032078a..000000000 --- a/tests/diagnostics/syntax-error-intrinsic.slang.2.expected +++ /dev/null @@ -1 +0,0 @@ -18 diff --git a/tests/diagnostics/syntax-error-intrinsic.slang.3.expected b/tests/diagnostics/syntax-error-intrinsic.slang.3.expected deleted file mode 100644 index 98d9bcb75..000000000 --- a/tests/diagnostics/syntax-error-intrinsic.slang.3.expected +++ /dev/null @@ -1 +0,0 @@ -17 diff --git a/tests/diagnostics/syntax-error-intrinsic.slang.4.expected b/tests/diagnostics/syntax-error-intrinsic.slang.4.expected deleted file mode 100644 index 98d9bcb75..000000000 --- a/tests/diagnostics/syntax-error-intrinsic.slang.4.expected +++ /dev/null @@ -1 +0,0 @@ -17 diff --git a/tests/diagnostics/syntax-error-intrinsic.slang.expected b/tests/diagnostics/syntax-error-intrinsic.slang.expected index 98d9bcb75..d6b24041c 100644 --- a/tests/diagnostics/syntax-error-intrinsic.slang.expected +++ b/tests/diagnostics/syntax-error-intrinsic.slang.expected @@ -1 +1 @@ -17 +19 diff --git a/tests/diagnostics/syntax-error-op-line-2.slang b/tests/diagnostics/syntax-error-op-line-2.slang new file mode 100644 index 000000000..994e875a1 --- /dev/null +++ b/tests/diagnostics/syntax-error-op-line-2.slang @@ -0,0 +1,33 @@ +// syntax-error-op-line-2.slang + +// NOTE! That although this is a 'diagnostic' like test, it tests using downstream compiler +// the downstream compiler being present is a requirement, so we mark as a 'TEST' so that +// those tests are made. + +//TEST:SIMPLE_LINE:-entry computeMain -target spirv +//TEST:SIMPLE_LINE:-entry computeMain -target dxil -profile cs_6_0 +//TEST:SIMPLE_LINE:-entry computeMain -target dxbc +//TEST:SIMPLE_LINE:-entry computeMain -target dll +//TEST:SIMPLE_LINE:-entry computeMain -target ptx + +// Here the thing being checked is error reporting around return, and += + +int doSomething(int a) +{ + a += a; + + return a + += + __SyntaxError(); +} + +[shader("compute")] +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + int id = int(dispatchThreadID.x); + + int v = int(dispatchThreadID.y); + + v += doSomething(id); +}
\ No newline at end of file diff --git a/tests/diagnostics/syntax-error-op-line-2.slang.expected b/tests/diagnostics/syntax-error-op-line-2.slang.expected new file mode 100644 index 000000000..aabe6ec39 --- /dev/null +++ b/tests/diagnostics/syntax-error-op-line-2.slang.expected @@ -0,0 +1 @@ +21 diff --git a/tests/diagnostics/syntax-error-op-line.slang b/tests/diagnostics/syntax-error-op-line.slang new file mode 100644 index 000000000..eab15e4a4 --- /dev/null +++ b/tests/diagnostics/syntax-error-op-line.slang @@ -0,0 +1,22 @@ +// syntax-error-op-line.slang + +// NOTE! That although this is a 'diagnostic' like test, it tests using downstream compiler +// the downstream compiler being present is a requirement, so we mark as a 'TEST' so that +// those tests are made. + +//TEST:SIMPLE_LINE:-entry computeMain -target spirv +//TEST:SIMPLE_LINE:-entry computeMain -target dxil -profile cs_6_0 +//TEST:SIMPLE_LINE:-entry computeMain -target dxbc +//TEST:SIMPLE_LINE:-entry computeMain -target dll +//TEST:SIMPLE_LINE:-entry computeMain -target ptx + +[shader("compute")] +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + int id = int(dispatchThreadID.x); + + int v = int(dispatchThreadID.y); + + v += id + __SyntaxError(); +}
\ No newline at end of file diff --git a/tests/diagnostics/syntax-error-op-line.slang.expected b/tests/diagnostics/syntax-error-op-line.slang.expected new file mode 100644 index 000000000..aabe6ec39 --- /dev/null +++ b/tests/diagnostics/syntax-error-op-line.slang.expected @@ -0,0 +1 @@ +21 |
