From 5866e67b8d1d4ad6c98dc8f12a3ca2591686e401 Mon Sep 17 00:00:00 2001
From: John Kessenich <cepheus@frii.com>
Date: Sat, 28 Oct 2017 12:55:02 -0600
Subject: [PATCH] Tests: Non-determinancy: Add back in the IntMin tests.

---
 Test/baseResults/constFoldIntMin.frag.out     | 51 +++++++++++++++++++
 .../cppIntMinOverNegativeOne.frag.out         | 14 +++++
 Test/constFoldIntMin.frag                     | 12 +++++
 Test/cppIntMinOverNegativeOne.frag            |  6 +++
 gtests/AST.FromFile.cpp                       |  4 +-
 5 files changed, 85 insertions(+), 2 deletions(-)
 create mode 100644 Test/baseResults/constFoldIntMin.frag.out
 create mode 100644 Test/baseResults/cppIntMinOverNegativeOne.frag.out
 create mode 100644 Test/constFoldIntMin.frag
 create mode 100644 Test/cppIntMinOverNegativeOne.frag

diff --git a/Test/baseResults/constFoldIntMin.frag.out b/Test/baseResults/constFoldIntMin.frag.out
new file mode 100644
index 000000000..da5bc26b8
--- /dev/null
+++ b/Test/baseResults/constFoldIntMin.frag.out
@@ -0,0 +1,51 @@
+constFoldIntMin.frag
+Shader version: 460
+Requested GL_AMD_gpu_shader_int16
+Requested GL_ARB_gpu_shader_int64
+0:? Sequence
+0:5  Function Definition: a( ( global void)
+0:5    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child ( temp int16_t)
+0:6          'u' ( temp int16_t)
+0:6          Constant:
+0:6            32768 (const int)
+0:7      Sequence
+0:7        move second child to first child ( temp int)
+0:7          'v' ( temp int)
+0:7          Constant:
+0:7            -2147483648 (const int)
+0:8      Sequence
+0:8        move second child to first child ( temp int64_t)
+0:8          'w' ( temp int64_t)
+0:8          Constant:
+0:8            -9223372036854775808 (const int64_t)
+0:9      Sequence
+0:9        move second child to first child ( temp int16_t)
+0:9          'x' ( temp int16_t)
+0:9          Constant:
+0:9            0 (const int)
+0:10      Sequence
+0:10        move second child to first child ( temp int)
+0:10          'y' ( temp int)
+0:10          Constant:
+0:10            0 (const int)
+0:11      Sequence
+0:11        move second child to first child ( temp int64_t)
+0:11          'z' ( temp int64_t)
+0:11          Constant:
+0:11            0 (const int64_t)
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
+
+Shader version: 460
+Requested GL_AMD_gpu_shader_int16
+Requested GL_ARB_gpu_shader_int64
+0:? Sequence
+0:?   Linker Objects
+
diff --git a/Test/baseResults/cppIntMinOverNegativeOne.frag.out b/Test/baseResults/cppIntMinOverNegativeOne.frag.out
new file mode 100644
index 000000000..5dce7c3eb
--- /dev/null
+++ b/Test/baseResults/cppIntMinOverNegativeOne.frag.out
@@ -0,0 +1,14 @@
+cppIntMinOverNegativeOne.frag
+Shader version: 100
+0:? Sequence
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
+
+Shader version: 100
+0:? Sequence
+0:?   Linker Objects
+
diff --git a/Test/constFoldIntMin.frag b/Test/constFoldIntMin.frag
new file mode 100644
index 000000000..68618326c
--- /dev/null
+++ b/Test/constFoldIntMin.frag
@@ -0,0 +1,12 @@
+#version 460 core
+#extension GL_AMD_gpu_shader_int16 : enable
+#extension GL_ARB_gpu_shader_int64 : enable
+
+void a(){
+    int16_t u = -32768S / -1S; // SHRT_MIN
+    int v = -2147483648 / -1; // INT_MIN
+    int64_t w = -9223372036854775808L / -1L; // LLONG_MIN
+    int16_t x = -32768S % -1S; // SHRT_MIN
+    int y = -2147483648 % -1; // INT_MIN
+    int64_t z = -9223372036854775808L % -1L; // LLONG_MIN
+}
\ No newline at end of file
diff --git a/Test/cppIntMinOverNegativeOne.frag b/Test/cppIntMinOverNegativeOne.frag
new file mode 100644
index 000000000..b7e0a9536
--- /dev/null
+++ b/Test/cppIntMinOverNegativeOne.frag
@@ -0,0 +1,6 @@
+#if (-2147483648 / -1) != 0
+#error INT_MIN / -1 should yield 0, something went wrong.
+#endif
+#if (-2147483648 % -1) != 0
+#error INT_MIN % -1 should yield 0, something went wrong.
+#endif
\ No newline at end of file
diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp
index f09ebe3aa..1a9592561 100644
--- a/gtests/AST.FromFile.cpp
+++ b/gtests/AST.FromFile.cpp
@@ -78,7 +78,7 @@ INSTANTIATE_TEST_CASE_P(
         "matrixError.vert",
         "cppSimple.vert",
         "cppIndent.vert",
-//        "cppIntMinOverNegativeOne.frag",
+        "cppIntMinOverNegativeOne.frag",
         "cppNest.vert",
         "cppBad.vert",
         "cppBad2.vert",
@@ -115,7 +115,7 @@ INSTANTIATE_TEST_CASE_P(
         "330comp.frag",
         "constErrors.frag",
         "constFold.frag",
-//        "constFoldIntMin.frag",
+        "constFoldIntMin.frag",
         "errors.frag",
         "forwardRef.frag",
         "uint.frag",
-- 
GitLab