summaryrefslogtreecommitdiffstats
path: root/tests/cpp-compiler
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-06-14 18:05:12 -0400
committerTim Foley <tfoleyNV@users.noreply.github.com>2019-06-14 15:05:12 -0700
commit1fe24d3a74a9cd51c4a025cd0e78642f3e29df79 (patch)
treea52d2b1e05f0d22accbb70eb4bea69d7c67455a4 /tests/cpp-compiler
parent8c56d83506ef92b15b15bdb5969008dd69c8d2a6 (diff)
Runtime Shared Library compilation and testing (#985)
* Removed the need for VisualStudio specific CPPCompiler Improved the version parsing for gcc/clang Removed need for slang-unix-cpp-compiler-util.cpp/.h Remove binary before compiling in the compile c tests * Moved VisualStudio calcArgs into CPPCompilerUtil - as code is not windows specific. * Set up compile time version for gcc and clang * Fix compilation on OSX - use remove instead of unlink for file deletion. * On OSX - clang uses different string format. * Removed /bin/sh invoking as not required for OSX. * First pass working testing with shared libraries.
Diffstat (limited to 'tests/cpp-compiler')
-rw-r--r--tests/cpp-compiler/c-compile-shared-library.c25
-rw-r--r--tests/cpp-compiler/c-compile.c10
-rw-r--r--tests/cpp-compiler/c-compile.c.expected6
-rw-r--r--tests/cpp-compiler/cpp-compile-shared-library.cpp23
-rw-r--r--tests/cpp-compiler/cpp-compile.cpp9
-rw-r--r--tests/cpp-compiler/cpp-compile.cpp.expected6
6 files changed, 79 insertions, 0 deletions
diff --git a/tests/cpp-compiler/c-compile-shared-library.c b/tests/cpp-compiler/c-compile-shared-library.c
new file mode 100644
index 000000000..8b6be6115
--- /dev/null
+++ b/tests/cpp-compiler/c-compile-shared-library.c
@@ -0,0 +1,25 @@
+//TEST(smoke):CPP_COMPILER_SHARED_LIBRARY:
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#if defined(_MSC_VER)
+# define DLL_EXPORT __declspec(dllexport)
+#else
+//# define DLL_EXPORT
+# define DLL_EXPORT __attribute__ ((dllexport)) __attribute__((__visibility__("default")))
+#endif
+
+#ifdef __cplusplus
+#define EXTERN_C extern "C"
+#else
+#define EXTERN_C
+#endif
+
+EXTERN_C DLL_EXPORT int test(int intValue, const char* textValue, char* outTextValue)
+{
+ strcpy(outTextValue, textValue);
+ return intValue;
+}
+
diff --git a/tests/cpp-compiler/c-compile.c b/tests/cpp-compiler/c-compile.c
new file mode 100644
index 000000000..75fdbdaa4
--- /dev/null
+++ b/tests/cpp-compiler/c-compile.c
@@ -0,0 +1,10 @@
+//TEST(smoke):CPP_COMPILER_EXECUTE:
+
+#include <stdlib.h>
+#include <stdio.h>
+
+int main(int argc, char** argv)
+{
+ printf("Hello World!\n");
+ return 0;
+}
diff --git a/tests/cpp-compiler/c-compile.c.expected b/tests/cpp-compiler/c-compile.c.expected
new file mode 100644
index 000000000..0e042b53b
--- /dev/null
+++ b/tests/cpp-compiler/c-compile.c.expected
@@ -0,0 +1,6 @@
+result code = 0
+standard error = {
+}
+standard output = {
+Hello World!
+}
diff --git a/tests/cpp-compiler/cpp-compile-shared-library.cpp b/tests/cpp-compiler/cpp-compile-shared-library.cpp
new file mode 100644
index 000000000..8b70f258d
--- /dev/null
+++ b/tests/cpp-compiler/cpp-compile-shared-library.cpp
@@ -0,0 +1,23 @@
+//TEST(smoke):CPP_COMPILER_SHARED_LIBRARY:
+
+//#include <slang.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <iostream>
+using namespace std;
+
+#if defined(_MSC_VER)
+# define DLL_EXPORT __declspec(dllexport)
+#else
+# define DLL_EXPORT __attribute__((__visibility__("default")))
+#endif
+
+extern "C" DLL_EXPORT int test(int intValue, const char* textValue, char* outTextValue)
+{
+ strcpy(outTextValue, textValue);
+ return intValue;
+}
+
diff --git a/tests/cpp-compiler/cpp-compile.cpp b/tests/cpp-compiler/cpp-compile.cpp
new file mode 100644
index 000000000..c3141a876
--- /dev/null
+++ b/tests/cpp-compiler/cpp-compile.cpp
@@ -0,0 +1,9 @@
+//TEST(smoke):CPP_COMPILER_EXECUTE:
+#include <iostream>
+using namespace std;
+
+int main(int argc, char** argv)
+{
+ cout << "Hello World!" << endl;
+ return 0;
+}
diff --git a/tests/cpp-compiler/cpp-compile.cpp.expected b/tests/cpp-compiler/cpp-compile.cpp.expected
new file mode 100644
index 000000000..0e042b53b
--- /dev/null
+++ b/tests/cpp-compiler/cpp-compile.cpp.expected
@@ -0,0 +1,6 @@
+result code = 0
+standard error = {
+}
+standard output = {
+Hello World!
+}