clMathLibraries/clBLAS — pull request #22 by gicmo (2013-11-05 14:36:44+00:00)
Title: Make GTest work on OS X

I changed the cmake files and some of the source files to make clBLAS test suit compile on OS-X.

Without any modification to the actual source of clBLAS all tests fail due to the same issue as reported in issue #21:

```
icmo@kaon clBLAS/build/tests % lldb ./test-short [gtest_osx|…]
Current executable set to './test-short' (x86_64).
(lldb) r
Process 16074 launched: './test-short' (x86_64)
Initialize OpenCL and clblas...
---- NVIDIA
---- Intel
SetUp: about to create command queues

Test environment:

Device name: GeForce GT 650M
Device vendor: NVIDIA
Platform (bit): Apple OS X
clblas version: 2.1.0
Driver version: 8.18.22 310.40.05f01
Device version: OpenCL 1.2
Global mem size: 1024 MB
---------------------------------------------------------

[==========] Running 9808 tests from 124 test cases.
[----------] Global test environment set-up.
[----------] 4 tests from TRSM_extratest
[ RUN ] TRSM_extratest.strsm
Process 16074 stopped
* thread #1: tid = 0x20c47, 0x00007fff9731c812 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00007fff9731c812 libsystem_c.dylib`strlen + 18
libsystem_c.dylib`strlen + 18:
-> 0x7fff9731c812: pcmpeqb (%rdi), %xmm0
0x7fff9731c816: pmovmskb %xmm0, %esi
0x7fff9731c81a: andq $15, %rcx
0x7fff9731c81e: orq $-1, %rax

(lldb) bt
* thread #1: tid = 0x20c47, 0x00007fff9731c812 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00007fff9731c812 libsystem_c.dylib`strlen + 18
frame #1: 0x00007fff8bb90c60 OpenCL`clGetProgramInfo + 625
frame #2: 0x0000000100a785cc libclBLAS.2.dylib`fullKernelSize(kern=0x00000001098bce70) + 236 at kern_cache.c:428
frame #3: 0x0000000100a782b6 libclBLAS.2.dylib`addKernelToCache(kcache=0x00000001098b84d0, sid=34, kern=0x00000001098bce70, key=0x00007fff5fbfddd0, extraCmp=0x0000000100aad5e0) + 198 at kern_cache.c:311
frame #4: 0x0000000100aa9c73 libclBLAS.2.dylib`makeSolutionSeq(funcID=CLBLAS_TRSM, args=0x00007fff5fbfe250, numCommandQueues=1, commandQueues=0x000000010049e408, numEventsInWaitList=0, eventWaitList=0x0000000000000000, events=0x00000001089b14a0, seq=0x00007fff5fbfe0a0) + 2915 at solution_seq_make.c:599
frame #5: 0x0000000100a87ccf libclBLAS.2.dylib`doTrsm(kargs=0x00007fff5fbfe250, order=clblasColumnMajor, side=clblasLeft, uplo=clblasUpper, transA=clblasNoTrans, diag=clblasNonUnit, M=5, N=2, A=0x00000001098badb0, offA=0, lda=32, B=0x0000000103427c20, offB=0, ldb=32, numCommandQueues=1, commandQueues=0x000000010049e408, numEventsInWaitList=0, eventWaitList=0x0000000000000000, events=0x00000001089b14a0) + 991 at xtrsm.c:105
frame #6: 0x0000000100a878d3 libclBLAS.2.dylib`clblasStrsm(order=clblasColumnMajor, side=clblasLeft, uplo=clblasUpper, transA=clblasNoTrans, diag=clblasNonUnit, M=5, N=2, alpha=1, A=0x00000001098badb0, offA=0, lda=32, B=0x0000000103427c20, offB=0, ldb=32, numCommandQueues=1, commandQueues=0x000000010049e408, numEventsInWaitList=0, eventWaitList=0x0000000000000000, events=0x00000001089b14a0) + 547 at xtrsm.c:144
frame #7: 0x0000000100371a78 test-short`clMath::clblas::trsm(order=clblasColumnMajor, side=clblasLeft, uplo=clblasUpper, transA=clblasNoTrans, diag=clblasNonUnit, M=5, N=2, alpha=1, A=0x00000001098badb0, offA=0, lda=32, B=0x0000000103427c20, offB=0, ldb=32, numCommandQueues=1, commandQueues=0x000000010049e408, numEventsInWaitList=0, eventWaitList=0x0000000000000000, events=0x00000001089b14a0) + 424 at clBLAS-wrapper.cpp:785
frame #8: 0x0000000100045fa6 test-short`void Extratest(M=5, N=2, lda=32, ldb=32, alpha=1, delta=0.0000099999997) + 2454 at corr-trsm.cpp:395
frame #9: 0x000000010003678c test-short`TRSM_extratest_strsm_Test::TestBody(this=0x0000000109898dc0) + 76 at corr-trsm.cpp:434
frame #10: 0x00000001003d7653 test-short`void testing::internal::HandleSehExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) + 131
frame #11: 0x00000001003c2797 test-short`void testing::internal::HandleExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) + 119
frame #12: 0x000000010039d045 test-short`testing::Test::Run() + 197
frame #13: 0x000000010039e2bb test-short`testing::TestInfo::Run() + 219
frame #14: 0x000000010039ef97 test-short`testing::TestCase::Run() + 231
frame #15: 0x00000001003ab538 test-short`testing::internal::UnitTestImpl::RunAllTests() + 952
frame #16: 0x00000001003d47e3 test-short`bool testing::internal::HandleSehExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 131
frame #17: 0x00000001003c4f07 test-short`bool testing::internal::HandleExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 119
frame #18: 0x00000001003ab0f6 test-short`testing::UnitTest::Run() + 422
frame #19: 0x00000001002e9ae1 test-short`RUN_ALL_TESTS() + 17 at gtest.h:2288
frame #20: 0x00000001002c9757 test-short`main(argc=1, argv=0x00007fff5fbff2c0) + 1015 at test-correctness.cpp:3397
frame #21: 0x00007fff972d25fd libdyld.dylib`start + 1
```