summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-02-04 18:45:50 -0500
committerGitHub <noreply@github.com>2021-02-04 15:45:50 -0800
commitfb053433ef64bbae50a8a10ea4381a5695019fac (patch)
tree87298897bf88ec79b40343a868a283d1885357b9 /tests
parentc40f10b704b8bd5a744cc9b3964344585436b1ac (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')
-rw-r--r--tests/diagnostics/syntax-error-intrinsic.slang.1.expected1
-rw-r--r--tests/diagnostics/syntax-error-intrinsic.slang.2.expected1
-rw-r--r--tests/diagnostics/syntax-error-intrinsic.slang.3.expected1
-rw-r--r--tests/diagnostics/syntax-error-intrinsic.slang.4.expected1
-rw-r--r--tests/diagnostics/syntax-error-intrinsic.slang.expected2
-rw-r--r--tests/diagnostics/syntax-error-op-line-2.slang33
-rw-r--r--tests/diagnostics/syntax-error-op-line-2.slang.expected1
-rw-r--r--tests/diagnostics/syntax-error-op-line.slang22
-rw-r--r--tests/diagnostics/syntax-error-op-line.slang.expected1
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