summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-03-15 12:48:20 -0400
committerGitHub <noreply@github.com>2021-03-15 09:48:20 -0700
commitb6de9a0091ab6a7414b46c7eb50f25b9512fb455 (patch)
treeadc37f1942d848446182f0dbb72dd1f487dbb587 /tests
parentd8150e70612b58fb1cfefa262d3d862a6e6e79ba (diff)
Test Doc System (#1754)
* #include an absolute path didn't work - because paths were taken to always be relative. * Use capability system in docs. Simplify how requirements/availability is produced. * Small fixes in output of availablity. * Updated stdlib doc. * Small improvements. * Added doc test type. Improved readability of straight .md text Made -doc option output to diagnostic stream. * Add test for checking requirements info is correctly extracted. Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/doc/doc-req.slang15
-rw-r--r--tests/doc/doc-req.slang.expected18
-rw-r--r--tests/doc/doc.slang2
-rw-r--r--tests/doc/doc.slang.expected375
4 files changed, 409 insertions, 1 deletions
diff --git a/tests/doc/doc-req.slang b/tests/doc/doc-req.slang
new file mode 100644
index 000000000..bee11f7d4
--- /dev/null
+++ b/tests/doc/doc-req.slang
@@ -0,0 +1,15 @@
+//TEST:DOC:-module-name module -doc -no-codegen
+
+// To Test out documentation around intrinsics
+
+__target_intrinsic(hlsl, "someHLSLThing()")
+[__requiresNVAPI]
+__cuda_sm_version(2.0)
+__target_intrinsic(cuda, "someCUDAThing()")
+__target_intrinsic(glsl, "someGLSLThing()")
+__glsl_extension(GL_EXT_NiftyExtension)
+__spirv_version(1.3)
+__target_intrinsic(cpp, "someCPPThing()")
+void doThing()
+{
+}
diff --git a/tests/doc/doc-req.slang.expected b/tests/doc/doc-req.slang.expected
new file mode 100644
index 000000000..51421cdc7
--- /dev/null
+++ b/tests/doc/doc-req.slang.expected
@@ -0,0 +1,18 @@
+result code = 0
+standard error = {
+--------------------------------------------------------------------------------
+# `doThing`
+
+## Signature
+
+```
+void doThing();
+```
+
+## Availability
+
+**GLSL** `GL_EXT_NiftyExtension`, `SPIR-V 1.3` **HLSL** `NVAPI` **CPP** **CUDA** `SM 2.0`
+
+}
+standard output = {
+}
diff --git a/tests/doc/doc.slang b/tests/doc/doc.slang
index 447b6f6f3..1e04171a0 100644
--- a/tests/doc/doc.slang
+++ b/tests/doc/doc.slang
@@ -1,4 +1,4 @@
-//DISABLE_TEST:SIMPLE:-entry computeMain -target spirv -stage compute -doc
+//TEST:DOC:-entry computeMain -target hlsl -stage compute -doc -no-codegen
void outFunc(out int v)
{
diff --git a/tests/doc/doc.slang.expected b/tests/doc/doc.slang.expected
new file mode 100644
index 000000000..95b3381b5
--- /dev/null
+++ b/tests/doc/doc.slang.expected
@@ -0,0 +1,375 @@
+result code = 0
+standard error = {
+--------------------------------------------------------------------------------
+# `outFunc`
+
+## Signature
+
+```
+void outFunc(out int v);
+```
+
+## Parameters
+
+* `v`
+
+--------------------------------------------------------------------------------
+# `struct ParentStruct<T>`
+
+## Description
+
+Testing out nested generics
+
+## Generic Parameters
+
+* `T` Some type
+
+--------------------------------------------------------------------------------
+# `struct ParentStruct<T>.ChildStruct<S>`
+
+## Description
+
+Testing out a child
+
+## Generic Parameters
+
+* `S` Some other type
+
+## Methods
+
+* `getValue`
+
+--------------------------------------------------------------------------------
+# `ParentStruct<T>.ChildStruct<S>.getValue`
+
+## Description
+
+A useless method hey ho
+
+## Signature
+
+```
+T ParentStruct<T>.ChildStruct<S>.getValue(S v);
+```
+
+## Parameters
+
+* `v`
+
+--------------------------------------------------------------------------------
+# `struct GenericStruct<T>`
+
+## Generic Parameters
+
+* `T`
+
+## Fields
+
+* `value`
+
+## Methods
+
+* `getValue`
+
+--------------------------------------------------------------------------------
+# `GenericStruct<T>.getValue`
+
+## Signature
+
+```
+T GenericStruct<T>.getValue();
+```
+
+--------------------------------------------------------------------------------
+# `addInts`
+
+## Description
+
+A rather silly generic function to test out doc extraction
+
+## Signature
+
+```
+T addInts<T, U:int, V:int>(
+ T z,
+ T b);
+```
+
+## Parameters
+
+* `T` The type we are operating on
+* `U` Just testing out a non type based generic
+* `V` And another one
+* `z` CHECKING!!
+* `b` The B parameter
+
+--------------------------------------------------------------------------------
+# `Hey::doAnotherThing`
+
+## Signature
+
+```
+void Hey::doAnotherThing(int a);
+```
+
+## Parameters
+
+* `a`
+
+--------------------------------------------------------------------------------
+# inputBuffer
+
+```
+RWStructuredBuffer inputBuffer
+```
+
+## Description
+
+Let's test indent
+
+```
+{
+ imIndented();
+}
+```
+
+--------------------------------------------------------------------------------
+# `interface IDoThing`
+
+## Description
+
+An interface to do things
+
+# Associated types
+
+* _V_ An associated type
+
+
+## Methods
+
+* `add`
+* `sub`
+
+--------------------------------------------------------------------------------
+# `IDoThing.add`
+
+## Description
+
+Add two integers
+
+## Signature
+
+```
+V IDoThing.add(
+ V a,
+ V b);
+```
+
+## Parameters
+
+* `a` First parameter
+* `b` Second parameter
+
+--------------------------------------------------------------------------------
+# `IDoThing.sub`
+
+## Description
+
+Subtract
+Multi-line
+
+## Signature
+
+```
+int IDoThing.sub(
+ int a,
+ int b);
+```
+
+## Parameters
+
+* `a` First
+* `b` Second
+
+--------------------------------------------------------------------------------
+# `interface IThing`
+
+## Methods
+
+* `getValue`
+
+--------------------------------------------------------------------------------
+# `IThing.getValue`
+
+## Signature
+
+```
+float IThing.getValue();
+```
+
+--------------------------------------------------------------------------------
+# `extension float : IThing`
+
+*Implements:* `IThing`
+
+## Description
+
+Implement IThing on float
+
+## Methods
+
+* `getValue`
+
+--------------------------------------------------------------------------------
+# `float.getValue`
+
+## Description
+
+Just return the float itself!
+
+## Signature
+
+```
+float float.getValue();
+```
+
+--------------------------------------------------------------------------------
+# `struct Thing`
+
+*Implements:* `IThing`, `IDoThing`
+
+## Methods
+
+* `add`
+* `sub`
+* `getValue`
+
+--------------------------------------------------------------------------------
+# `Thing.add`
+
+## Signature
+
+```
+int Thing.add(
+ int a,
+ int b);
+```
+
+## Parameters
+
+* `a`
+* `b`
+
+--------------------------------------------------------------------------------
+# `Thing.sub`
+
+## Signature
+
+```
+int Thing.sub(
+ int a,
+ int b);
+```
+
+## Parameters
+
+* `a`
+* `b`
+
+--------------------------------------------------------------------------------
+# `Thing.getValue`
+
+## Signature
+
+```
+float Thing.getValue();
+```
+
+--------------------------------------------------------------------------------
+# `struct SomeStruct`
+
+## Description
+
+A struct with some fields
+
+## Fields
+
+* `aField` A field
+* `anotherField` Multi-line is a thing
+* `yetAnother` A field with stuff
+
+## Methods
+
+* `getMethod`
+
+--------------------------------------------------------------------------------
+# `SomeStruct.getMethod`
+
+## Description
+
+Get a value
+
+## Signature
+
+```
+int SomeStruct.getMethod();
+```
+
+--------------------------------------------------------------------------------
+# enum AnEnum
+
+## Values
+
+* _Value_ A value
+* _AnotherValue_ Another value With a multi-line comment
+## Description
+
+An enum
+
+--------------------------------------------------------------------------------
+# outputBuffer
+
+```
+RWStructuredBuffer outputBuffer
+```
+
+## Description
+
+An output buffer
+
+--------------------------------------------------------------------------------
+# `doThing`
+
+## Description
+
+doThing!
+
+## Signature
+
+```
+int doThing(
+ int a,
+ int b);
+```
+
+## Parameters
+
+* `a` a parameter
+* `b` b parameter
+
+--------------------------------------------------------------------------------
+# `computeMain`
+
+## Signature
+
+```
+void computeMain(vector<uint,3> dispatchThreadID);
+```
+
+## Parameters
+
+* `dispatchThreadID`
+
+}
+standard output = {
+}