summaryrefslogtreecommitdiffstats
path: root/source/core
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2017-09-29 13:43:08 -0700
committerGitHub <noreply@github.com>2017-09-29 13:43:08 -0700
commit8a0ebb9fa25fd44def17b03b3f8aa1a33ad77940 (patch)
tree3f855c1f8057e53763cb083c3b898effb559b80b /source/core
parent74f2f47cb63b02638270beecd20acea1a0f5665e (diff)
Get tests running/passing under Linux (#194)
* Get tests running/passing under Linux - Fix up `dlopen` abstraction - Fix up some test cases to request hlsl (rather than default to dxbc) so they can run on non-Windows targets - Fix up test runner ignore tests that can't run on current platform (and not count those as failure) - Fix file handle leeak in process spawner absttraction - Get additional test-related applications building - More tweaks to Travis script; in theory deployment is set up now (yeah, right) * fixup * fixup: Travis environment variable syntax * fixup: Buffer->begin * fixup: actually run full tests on one config * fixup: add build status badge for Travis
Diffstat (limited to 'source/core')
-rw-r--r--source/core/platform.cpp15
-rw-r--r--source/core/slang-string.cpp18
2 files changed, 29 insertions, 4 deletions
diff --git a/source/core/platform.cpp b/source/core/platform.cpp
index dbb536b0f..374606e4a 100644
--- a/source/core/platform.cpp
+++ b/source/core/platform.cpp
@@ -8,6 +8,7 @@
#undef WIN32_LEAN_AND_MEAN
#undef NOMINMAX
#else
+ #include "slang-string.h"
#include <dlfcn.h>
#endif
@@ -27,7 +28,19 @@ namespace Slang
}
#else
{
- void* h = dlopen(name, RTLD_LOCAL);
+ String fullName;
+ fullName.append("lib");
+ fullName.append(name);
+ fullName.append(".so");
+
+ void* h = dlopen(fullName.Buffer(), RTLD_NOW|RTLD_LOCAL);
+ if(!h)
+ {
+ if(auto msg = dlerror())
+ {
+ fprintf(stderr, "error: %s\n", msg);
+ }
+ }
result.handle = (Handle) h;
}
diff --git a/source/core/slang-string.cpp b/source/core/slang-string.cpp
index 5a3d8e4f9..460a077b5 100644
--- a/source/core/slang-string.cpp
+++ b/source/core/slang-string.cpp
@@ -172,14 +172,26 @@ namespace Slang
else
{
List<char> buf;
- Slang::Encoding::UTF16->GetBytes(buf, *this);
+ switch(sizeof(wchar_t))
+ {
+ case 2:
+ Slang::Encoding::UTF16->GetBytes(buf, *this);
+ break;
+
+ case 4:
+ Slang::Encoding::UTF32->GetBytes(buf, *this);
+ break;
+
+ default:
+ break;
+ }
auto length = buf.Count() / sizeof(wchar_t);
if (outLength)
*outLength = length;
- buf.Add(0);
- buf.Add(0);
+ for(int ii = 0; ii < sizeof(wchar_t); ++ii)
+ buf.Add(0);
wchar_t* beginData = (wchar_t*)buf.Buffer();
wchar_t* endData = beginData + length;