diff --git a/scripts/generator/generator.py b/scripts/generator/generator.py index f5fc5ecf..7113ad56 100644 --- a/scripts/generator/generator.py +++ b/scripts/generator/generator.py @@ -414,12 +414,13 @@ for level in [1,2,3]: body += "using double2 = clblast::double2;\n\n" body += "// Main function (not within the clblast namespace)\n" body += "int main(int argc, char *argv[]) {\n" + body += " auto errors = size_t{0};\n" not_first = "false" for flavour in routine.flavours: - body += " clblast::RunTests, float, float>(argc, argv, false, "iSAMAX"); - clblast::RunTests, double, double>(argc, argv, true, "iDAMAX"); - clblast::RunTests, float2, float2>(argc, argv, true, "iCAMAX"); - clblast::RunTests, double2, double2>(argc, argv, true, "iZAMAX"); - clblast::RunTests, half, half>(argc, argv, true, "iHAMAX"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "iSAMAX"); + errors += clblast::RunTests, double, double>(argc, argv, true, "iDAMAX"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "iCAMAX"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "iZAMAX"); + errors += clblast::RunTests, half, half>(argc, argv, true, "iHAMAX"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xasum.cc b/test/correctness/routines/level1/xasum.cc index d3b036c7..f48d1d4b 100644 --- a/test/correctness/routines/level1/xasum.cc +++ b/test/correctness/routines/level1/xasum.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SASUM"); - clblast::RunTests, double, double>(argc, argv, true, "DASUM"); - clblast::RunTests, float2, float2>(argc, argv, true, "ScASUM"); - clblast::RunTests, double2, double2>(argc, argv, true, "DzASUM"); - clblast::RunTests, half, half>(argc, argv, true, "HASUM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SASUM"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DASUM"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "ScASUM"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "DzASUM"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HASUM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xaxpy.cc b/test/correctness/routines/level1/xaxpy.cc index 04f4c128..85649a04 100644 --- a/test/correctness/routines/level1/xaxpy.cc +++ b/test/correctness/routines/level1/xaxpy.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SAXPY"); - clblast::RunTests, double, double>(argc, argv, true, "DAXPY"); - clblast::RunTests, float2, float2>(argc, argv, true, "CAXPY"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZAXPY"); - clblast::RunTests, half, half>(argc, argv, true, "HAXPY"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SAXPY"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DAXPY"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CAXPY"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZAXPY"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HAXPY"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xcopy.cc b/test/correctness/routines/level1/xcopy.cc index 316c6982..b89baabf 100644 --- a/test/correctness/routines/level1/xcopy.cc +++ b/test/correctness/routines/level1/xcopy.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SCOPY"); - clblast::RunTests, double, double>(argc, argv, true, "DCOPY"); - clblast::RunTests, float2, float2>(argc, argv, true, "CCOPY"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZCOPY"); - clblast::RunTests, half, half>(argc, argv, true, "HCOPY"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SCOPY"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DCOPY"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CCOPY"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZCOPY"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HCOPY"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xdot.cc b/test/correctness/routines/level1/xdot.cc index 72dc9d5e..3a353e2e 100644 --- a/test/correctness/routines/level1/xdot.cc +++ b/test/correctness/routines/level1/xdot.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SDOT"); - clblast::RunTests, double, double>(argc, argv, true, "DDOT"); - clblast::RunTests, half, half>(argc, argv, true, "HDOT"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SDOT"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DDOT"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HDOT"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xdotc.cc b/test/correctness/routines/level1/xdotc.cc index 76aaa0ec..195b0847 100644 --- a/test/correctness/routines/level1/xdotc.cc +++ b/test/correctness/routines/level1/xdotc.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CDOTC"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZDOTC"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CDOTC"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZDOTC"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xdotu.cc b/test/correctness/routines/level1/xdotu.cc index aecde4f5..7a501052 100644 --- a/test/correctness/routines/level1/xdotu.cc +++ b/test/correctness/routines/level1/xdotu.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CDOTU"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZDOTU"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CDOTU"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZDOTU"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xnrm2.cc b/test/correctness/routines/level1/xnrm2.cc index 0fe8dc33..02ea57cb 100644 --- a/test/correctness/routines/level1/xnrm2.cc +++ b/test/correctness/routines/level1/xnrm2.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SNRM2"); - clblast::RunTests, double, double>(argc, argv, true, "DNRM2"); - clblast::RunTests, float2, float2>(argc, argv, true, "ScNRM2"); - clblast::RunTests, double2, double2>(argc, argv, true, "DzNRM2"); - clblast::RunTests, half, half>(argc, argv, true, "HNRM2"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SNRM2"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DNRM2"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "ScNRM2"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "DzNRM2"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HNRM2"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xrot.cc b/test/correctness/routines/level1/xrot.cc index 4020ff13..8ffcd6af 100644 --- a/test/correctness/routines/level1/xrot.cc +++ b/test/correctness/routines/level1/xrot.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SROT"); - clblast::RunTests, double, double>(argc, argv, true, "DROT"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SROT"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DROT"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xrotg.cc b/test/correctness/routines/level1/xrotg.cc index dd068992..c8480673 100644 --- a/test/correctness/routines/level1/xrotg.cc +++ b/test/correctness/routines/level1/xrotg.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SROTG"); - clblast::RunTests, double, double>(argc, argv, true, "DROTG"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SROTG"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DROTG"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xrotm.cc b/test/correctness/routines/level1/xrotm.cc index 869056ef..196e0de9 100644 --- a/test/correctness/routines/level1/xrotm.cc +++ b/test/correctness/routines/level1/xrotm.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SROTM"); - clblast::RunTests, double, double>(argc, argv, true, "DROTM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SROTM"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DROTM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xrotmg.cc b/test/correctness/routines/level1/xrotmg.cc index 29f8b0e1..e4dd712b 100644 --- a/test/correctness/routines/level1/xrotmg.cc +++ b/test/correctness/routines/level1/xrotmg.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SROTMG"); - clblast::RunTests, double, double>(argc, argv, true, "DROTMG"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SROTMG"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DROTMG"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xscal.cc b/test/correctness/routines/level1/xscal.cc index 9146e5ce..a3de54b0 100644 --- a/test/correctness/routines/level1/xscal.cc +++ b/test/correctness/routines/level1/xscal.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSCAL"); - clblast::RunTests, double, double>(argc, argv, true, "DSCAL"); - clblast::RunTests, float2, float2>(argc, argv, true, "CSCAL"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZSCAL"); - clblast::RunTests, half, half>(argc, argv, true, "HSCAL"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSCAL"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSCAL"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CSCAL"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZSCAL"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSCAL"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level1/xswap.cc b/test/correctness/routines/level1/xswap.cc index 636a5b0f..dab60669 100644 --- a/test/correctness/routines/level1/xswap.cc +++ b/test/correctness/routines/level1/xswap.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSWAP"); - clblast::RunTests, double, double>(argc, argv, true, "DSWAP"); - clblast::RunTests, float2, float2>(argc, argv, true, "CSWAP"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZSWAP"); - clblast::RunTests, half, half>(argc, argv, true, "HSWAP"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSWAP"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSWAP"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CSWAP"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZSWAP"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSWAP"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xgbmv.cc b/test/correctness/routines/level2/xgbmv.cc index 528a3325..f2e69225 100644 --- a/test/correctness/routines/level2/xgbmv.cc +++ b/test/correctness/routines/level2/xgbmv.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SGBMV"); - clblast::RunTests, double, double>(argc, argv, true, "DGBMV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CGBMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZGBMV"); - clblast::RunTests, half, half>(argc, argv, true, "HGBMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SGBMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DGBMV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CGBMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZGBMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HGBMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xgemv.cc b/test/correctness/routines/level2/xgemv.cc index fc1cf3eb..5b67f0ad 100644 --- a/test/correctness/routines/level2/xgemv.cc +++ b/test/correctness/routines/level2/xgemv.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SGEMV"); - clblast::RunTests, double, double>(argc, argv, true, "DGEMV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CGEMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZGEMV"); - clblast::RunTests, half, half>(argc, argv, true, "HGEMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SGEMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DGEMV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CGEMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZGEMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HGEMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xger.cc b/test/correctness/routines/level2/xger.cc index c3c33ae6..05c782db 100644 --- a/test/correctness/routines/level2/xger.cc +++ b/test/correctness/routines/level2/xger.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SGER"); - clblast::RunTests, double, double>(argc, argv, true, "DGER"); - clblast::RunTests, half, half>(argc, argv, true, "HGER"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SGER"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DGER"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HGER"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xgerc.cc b/test/correctness/routines/level2/xgerc.cc index 8fd31142..6fd80f9f 100644 --- a/test/correctness/routines/level2/xgerc.cc +++ b/test/correctness/routines/level2/xgerc.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CGERC"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZGERC"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CGERC"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZGERC"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xgeru.cc b/test/correctness/routines/level2/xgeru.cc index ee92416b..84b88c42 100644 --- a/test/correctness/routines/level2/xgeru.cc +++ b/test/correctness/routines/level2/xgeru.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CGERU"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZGERU"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CGERU"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZGERU"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xhbmv.cc b/test/correctness/routines/level2/xhbmv.cc index 4cd137a7..020c5dc3 100644 --- a/test/correctness/routines/level2/xhbmv.cc +++ b/test/correctness/routines/level2/xhbmv.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CHBMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZHBMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CHBMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZHBMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xhemv.cc b/test/correctness/routines/level2/xhemv.cc index 20c5370c..fcd4e68f 100644 --- a/test/correctness/routines/level2/xhemv.cc +++ b/test/correctness/routines/level2/xhemv.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CHEMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZHEMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CHEMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZHEMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xher.cc b/test/correctness/routines/level2/xher.cc index 5b9b48be..0420a9e8 100644 --- a/test/correctness/routines/level2/xher.cc +++ b/test/correctness/routines/level2/xher.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float>(argc, argv, false, "CHER"); - clblast::RunTests, double2, double>(argc, argv, true, "ZHER"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float>(argc, argv, false, "CHER"); + errors += clblast::RunTests, double2, double>(argc, argv, true, "ZHER"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xher2.cc b/test/correctness/routines/level2/xher2.cc index 093b3959..36d7db94 100644 --- a/test/correctness/routines/level2/xher2.cc +++ b/test/correctness/routines/level2/xher2.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CHER2"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZHER2"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CHER2"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZHER2"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xhpmv.cc b/test/correctness/routines/level2/xhpmv.cc index cbf41443..df7121eb 100644 --- a/test/correctness/routines/level2/xhpmv.cc +++ b/test/correctness/routines/level2/xhpmv.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CHPMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZHPMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CHPMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZHPMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xhpr.cc b/test/correctness/routines/level2/xhpr.cc index a720aaef..c13802ea 100644 --- a/test/correctness/routines/level2/xhpr.cc +++ b/test/correctness/routines/level2/xhpr.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float>(argc, argv, false, "CHPR"); - clblast::RunTests, double2, double>(argc, argv, true, "ZHPR"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float>(argc, argv, false, "CHPR"); + errors += clblast::RunTests, double2, double>(argc, argv, true, "ZHPR"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xhpr2.cc b/test/correctness/routines/level2/xhpr2.cc index 0fed97e1..7c62c255 100644 --- a/test/correctness/routines/level2/xhpr2.cc +++ b/test/correctness/routines/level2/xhpr2.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CHPR2"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZHPR2"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CHPR2"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZHPR2"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xsbmv.cc b/test/correctness/routines/level2/xsbmv.cc index c2effcc2..a0af3c25 100644 --- a/test/correctness/routines/level2/xsbmv.cc +++ b/test/correctness/routines/level2/xsbmv.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSBMV"); - clblast::RunTests, double, double>(argc, argv, true, "DSBMV"); - clblast::RunTests, half, half>(argc, argv, true, "HSBMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSBMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSBMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSBMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xspmv.cc b/test/correctness/routines/level2/xspmv.cc index 4142636d..39ded21b 100644 --- a/test/correctness/routines/level2/xspmv.cc +++ b/test/correctness/routines/level2/xspmv.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSPMV"); - clblast::RunTests, double, double>(argc, argv, true, "DSPMV"); - clblast::RunTests, half, half>(argc, argv, true, "HSPMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSPMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSPMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSPMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xspr.cc b/test/correctness/routines/level2/xspr.cc index c068b448..2e807a1e 100644 --- a/test/correctness/routines/level2/xspr.cc +++ b/test/correctness/routines/level2/xspr.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSPR"); - clblast::RunTests, double, double>(argc, argv, true, "DSPR"); - clblast::RunTests, half, half>(argc, argv, true, "HSPR"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSPR"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSPR"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSPR"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xspr2.cc b/test/correctness/routines/level2/xspr2.cc index 904870d5..a009bc70 100644 --- a/test/correctness/routines/level2/xspr2.cc +++ b/test/correctness/routines/level2/xspr2.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSPR2"); - clblast::RunTests, double, double>(argc, argv, true, "DSPR2"); - clblast::RunTests, half, half>(argc, argv, true, "HSPR2"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSPR2"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSPR2"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSPR2"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xsymv.cc b/test/correctness/routines/level2/xsymv.cc index eb9b6eb7..0a0cb002 100644 --- a/test/correctness/routines/level2/xsymv.cc +++ b/test/correctness/routines/level2/xsymv.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSYMV"); - clblast::RunTests, double, double>(argc, argv, true, "DSYMV"); - clblast::RunTests, half, half>(argc, argv, true, "HSYMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSYMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSYMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSYMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xsyr.cc b/test/correctness/routines/level2/xsyr.cc index eccf95e0..4015a696 100644 --- a/test/correctness/routines/level2/xsyr.cc +++ b/test/correctness/routines/level2/xsyr.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSYR"); - clblast::RunTests, double, double>(argc, argv, true, "DSYR"); - clblast::RunTests, half, half>(argc, argv, true, "HSYR"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSYR"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSYR"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSYR"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xsyr2.cc b/test/correctness/routines/level2/xsyr2.cc index 46c939d2..4bf57a87 100644 --- a/test/correctness/routines/level2/xsyr2.cc +++ b/test/correctness/routines/level2/xsyr2.cc @@ -18,10 +18,11 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSYR2"); - clblast::RunTests, double, double>(argc, argv, true, "DSYR2"); - clblast::RunTests, half, half>(argc, argv, true, "HSYR2"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSYR2"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSYR2"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSYR2"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xtbmv.cc b/test/correctness/routines/level2/xtbmv.cc index 252abdc4..78b05518 100644 --- a/test/correctness/routines/level2/xtbmv.cc +++ b/test/correctness/routines/level2/xtbmv.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STBMV"); - clblast::RunTests, double, double>(argc, argv, true, "DTBMV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTBMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTBMV"); - clblast::RunTests, half, half>(argc, argv, true, "HTBMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STBMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTBMV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTBMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTBMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HTBMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xtbsv.cc b/test/correctness/routines/level2/xtbsv.cc index c8a8a583..0026502a 100644 --- a/test/correctness/routines/level2/xtbsv.cc +++ b/test/correctness/routines/level2/xtbsv.cc @@ -18,11 +18,12 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STBSV"); - clblast::RunTests, double, double>(argc, argv, true, "DTBSV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTBSV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTBSV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STBSV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTBSV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTBSV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTBSV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xtpmv.cc b/test/correctness/routines/level2/xtpmv.cc index b8776faa..00078c6c 100644 --- a/test/correctness/routines/level2/xtpmv.cc +++ b/test/correctness/routines/level2/xtpmv.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STPMV"); - clblast::RunTests, double, double>(argc, argv, true, "DTPMV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTPMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTPMV"); - clblast::RunTests, half, half>(argc, argv, true, "HTPMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STPMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTPMV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTPMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTPMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HTPMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xtpsv.cc b/test/correctness/routines/level2/xtpsv.cc index 97d27271..f0ff939e 100644 --- a/test/correctness/routines/level2/xtpsv.cc +++ b/test/correctness/routines/level2/xtpsv.cc @@ -18,11 +18,12 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STPSV"); - clblast::RunTests, double, double>(argc, argv, true, "DTPSV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTPSV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTPSV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STPSV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTPSV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTPSV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTPSV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xtrmv.cc b/test/correctness/routines/level2/xtrmv.cc index 256fe900..22138806 100644 --- a/test/correctness/routines/level2/xtrmv.cc +++ b/test/correctness/routines/level2/xtrmv.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STRMV"); - clblast::RunTests, double, double>(argc, argv, true, "DTRMV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTRMV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTRMV"); - clblast::RunTests, half, half>(argc, argv, true, "HTRMV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STRMV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTRMV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTRMV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTRMV"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HTRMV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level2/xtrsv.cc b/test/correctness/routines/level2/xtrsv.cc index bfca0f20..0bd71fac 100644 --- a/test/correctness/routines/level2/xtrsv.cc +++ b/test/correctness/routines/level2/xtrsv.cc @@ -18,11 +18,12 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STRSV"); - clblast::RunTests, double, double>(argc, argv, true, "DTRSV"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTRSV"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTRSV"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STRSV"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTRSV"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTRSV"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTRSV"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xgemm.cc b/test/correctness/routines/level3/xgemm.cc index f8c8a891..869463ee 100644 --- a/test/correctness/routines/level3/xgemm.cc +++ b/test/correctness/routines/level3/xgemm.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SGEMM"); - clblast::RunTests, double, double>(argc, argv, true, "DGEMM"); - clblast::RunTests, float2, float2>(argc, argv, true, "CGEMM"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZGEMM"); - clblast::RunTests, half, half>(argc, argv, true, "HGEMM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SGEMM"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DGEMM"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CGEMM"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZGEMM"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HGEMM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xhemm.cc b/test/correctness/routines/level3/xhemm.cc index 74e22080..8261fd31 100644 --- a/test/correctness/routines/level3/xhemm.cc +++ b/test/correctness/routines/level3/xhemm.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, false, "CHEMM"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZHEMM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float2>(argc, argv, false, "CHEMM"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZHEMM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xher2k.cc b/test/correctness/routines/level3/xher2k.cc index 6377572a..381071c8 100644 --- a/test/correctness/routines/level3/xher2k.cc +++ b/test/correctness/routines/level3/xher2k.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float>(argc, argv, false, "CHER2K"); - clblast::RunTests, double2, double>(argc, argv, true, "ZHER2K"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float>(argc, argv, false, "CHER2K"); + errors += clblast::RunTests, double2, double>(argc, argv, true, "ZHER2K"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xherk.cc b/test/correctness/routines/level3/xherk.cc index 32a39bfc..a5efb263 100644 --- a/test/correctness/routines/level3/xherk.cc +++ b/test/correctness/routines/level3/xherk.cc @@ -18,9 +18,10 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float>(argc, argv, false, "CHERK"); - clblast::RunTests, double2, double>(argc, argv, true, "ZHERK"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float2, float>(argc, argv, false, "CHERK"); + errors += clblast::RunTests, double2, double>(argc, argv, true, "ZHERK"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xsymm.cc b/test/correctness/routines/level3/xsymm.cc index c29f03dd..9005f6e6 100644 --- a/test/correctness/routines/level3/xsymm.cc +++ b/test/correctness/routines/level3/xsymm.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSYMM"); - clblast::RunTests, double, double>(argc, argv, true, "DSYMM"); - clblast::RunTests, float2, float2>(argc, argv, true, "CSYMM"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZSYMM"); - clblast::RunTests, half, half>(argc, argv, true, "HSYMM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSYMM"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSYMM"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CSYMM"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZSYMM"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSYMM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xsyr2k.cc b/test/correctness/routines/level3/xsyr2k.cc index 9f9c87d8..2d131f21 100644 --- a/test/correctness/routines/level3/xsyr2k.cc +++ b/test/correctness/routines/level3/xsyr2k.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSYR2K"); - clblast::RunTests, double, double>(argc, argv, true, "DSYR2K"); - clblast::RunTests, float2, float2>(argc, argv, true, "CSYR2K"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZSYR2K"); - clblast::RunTests, half, half>(argc, argv, true, "HSYR2K"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSYR2K"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSYR2K"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CSYR2K"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZSYR2K"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSYR2K"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xsyrk.cc b/test/correctness/routines/level3/xsyrk.cc index 12343074..32e19ed6 100644 --- a/test/correctness/routines/level3/xsyrk.cc +++ b/test/correctness/routines/level3/xsyrk.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "SSYRK"); - clblast::RunTests, double, double>(argc, argv, true, "DSYRK"); - clblast::RunTests, float2, float2>(argc, argv, true, "CSYRK"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZSYRK"); - clblast::RunTests, half, half>(argc, argv, true, "HSYRK"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "SSYRK"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DSYRK"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CSYRK"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZSYRK"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HSYRK"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xtrmm.cc b/test/correctness/routines/level3/xtrmm.cc index aca73f0d..3eb89829 100644 --- a/test/correctness/routines/level3/xtrmm.cc +++ b/test/correctness/routines/level3/xtrmm.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STRMM"); - clblast::RunTests, double, double>(argc, argv, true, "DTRMM"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTRMM"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTRMM"); - clblast::RunTests, half, half>(argc, argv, true, "HTRMM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STRMM"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTRMM"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTRMM"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTRMM"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HTRMM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/routines/level3/xtrsm.cc b/test/correctness/routines/level3/xtrsm.cc index b050269a..f3637e2e 100644 --- a/test/correctness/routines/level3/xtrsm.cc +++ b/test/correctness/routines/level3/xtrsm.cc @@ -18,12 +18,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float, float>(argc, argv, false, "STRSM"); - clblast::RunTests, double, double>(argc, argv, true, "DTRSM"); - clblast::RunTests, float2, float2>(argc, argv, true, "CTRSM"); - clblast::RunTests, double2, double2>(argc, argv, true, "ZTRSM"); - clblast::RunTests, half, half>(argc, argv, true, "HTRSM"); - return 0; + auto errors = size_t{0}; + errors += clblast::RunTests, float, float>(argc, argv, false, "STRSM"); + errors += clblast::RunTests, double, double>(argc, argv, true, "DTRSM"); + errors += clblast::RunTests, float2, float2>(argc, argv, true, "CTRSM"); + errors += clblast::RunTests, double2, double2>(argc, argv, true, "ZTRSM"); + errors += clblast::RunTests, half, half>(argc, argv, true, "HTRSM"); + if (errors > 0) { return 1; } else { return 0; } } // ================================================================================================= diff --git a/test/correctness/testblas.h b/test/correctness/testblas.h index 44adab9f..f3435342 100644 --- a/test/correctness/testblas.h +++ b/test/correctness/testblas.h @@ -114,7 +114,7 @@ class TestBlas: public Tester { // The interface to the correctness tester. This is a separate function in the header such that it // is automatically compiled for each routine, templated by the parameter "C". template -void RunTests(int argc, char *argv[], const bool silent, const std::string &name) { +size_t RunTests(int argc, char *argv[], const bool silent, const std::string &name) { // Sets the reference to test against #if defined(CLBLAST_REF_CLBLAS) && defined(CLBLAST_REF_CBLAS) @@ -325,6 +325,7 @@ void RunTests(int argc, char *argv[], const bool silent, const std::string &name } } } + return tester.NumFailedTests(); } // ================================================================================================= diff --git a/test/correctness/tester.h b/test/correctness/tester.h index 7c41505d..5f12c990 100644 --- a/test/correctness/tester.h +++ b/test/correctness/tester.h @@ -83,6 +83,9 @@ class Tester { void TestErrorCodes(const StatusCode clblas_status, const StatusCode clblast_status, const Arguments &args); + // Returns the number of failed tests + size_t NumFailedTests() const { return tests_failed_; } + protected: // The help-message