add sanity checks in core gpu pefrormance tests
authormarina.kolpakova <marina.kolpakova@itseez.com>
Tue, 9 Oct 2012 22:48:33 +0000 (02:48 +0400)
committermarina.kolpakova <marina.kolpakova@itseez.com>
Wed, 10 Oct 2012 12:13:24 +0000 (16:13 +0400)
modules/gpu/perf/perf_core.cpp

index ffbb669..8605169 100644 (file)
@@ -20,7 +20,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Merge, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_D
     for (int i = 0; i < channels; ++i)\r
         src[i] = cv::Mat(size, depth, cv::Scalar::all(i));\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         std::vector<cv::gpu::GpuMat> d_src(channels);\r
         for (int i = 0; i < channels; ++i)\r
@@ -34,6 +34,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Merge, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_D
         {\r
             cv::gpu::merge(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -45,6 +47,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Merge, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_D
         {\r
             cv::merge(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -59,7 +63,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Split, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_D
 \r
     cv::Mat src(size, CV_MAKE_TYPE(depth, channels), cv::Scalar(1, 2, 3, 4));\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
 \r
@@ -71,6 +75,9 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Split, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_D
         {\r
             cv::gpu::split(d_src, d_dst);\r
         }\r
+\r
+        cv::gpu::GpuMat first = d_dst[0];\r
+        GPU_SANITY_CHECK(first);\r
     }\r
     else\r
     {\r
@@ -82,6 +89,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Split, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_D
         {\r
             cv::split(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -99,7 +108,7 @@ PERF_TEST_P(Sz_Depth, Core_AddMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_DEP
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -111,6 +120,8 @@ PERF_TEST_P(Sz_Depth, Core_AddMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_DEP
         {\r
             cv::gpu::add(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -122,6 +133,8 @@ PERF_TEST_P(Sz_Depth, Core_AddMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_DEP
         {\r
             cv::add(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -138,7 +151,7 @@ PERF_TEST_P(Sz_Depth, Core_AddScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_
 \r
     cv::Scalar s(1, 2, 3, 4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -149,6 +162,8 @@ PERF_TEST_P(Sz_Depth, Core_AddScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_
         {\r
             cv::gpu::add(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -160,6 +175,8 @@ PERF_TEST_P(Sz_Depth, Core_AddScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_
         {\r
             cv::add(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -177,7 +194,7 @@ PERF_TEST_P(Sz_Depth, Core_SubtractMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MA
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -189,6 +206,8 @@ PERF_TEST_P(Sz_Depth, Core_SubtractMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MA
         {\r
             cv::gpu::subtract(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -200,6 +219,8 @@ PERF_TEST_P(Sz_Depth, Core_SubtractMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MA
         {\r
             cv::subtract(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -216,7 +237,7 @@ PERF_TEST_P(Sz_Depth, Core_SubtractScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM
 \r
     cv::Scalar s(1, 2, 3, 4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -227,6 +248,8 @@ PERF_TEST_P(Sz_Depth, Core_SubtractScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM
         {\r
             cv::gpu::subtract(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -238,6 +261,8 @@ PERF_TEST_P(Sz_Depth, Core_SubtractScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM
         {\r
             cv::subtract(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -255,7 +280,7 @@ PERF_TEST_P(Sz_Depth, Core_MultiplyMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MA
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -267,6 +292,8 @@ PERF_TEST_P(Sz_Depth, Core_MultiplyMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MA
         {\r
             cv::gpu::multiply(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -278,6 +305,8 @@ PERF_TEST_P(Sz_Depth, Core_MultiplyMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MA
         {\r
             cv::multiply(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -294,7 +323,7 @@ PERF_TEST_P(Sz_Depth, Core_MultiplyScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM
 \r
     cv::Scalar s(1, 2, 3, 4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -305,6 +334,8 @@ PERF_TEST_P(Sz_Depth, Core_MultiplyScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM
         {\r
             cv::gpu::multiply(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -316,6 +347,8 @@ PERF_TEST_P(Sz_Depth, Core_MultiplyScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM
         {\r
             cv::multiply(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -333,7 +366,7 @@ PERF_TEST_P(Sz_Depth, Core_DivideMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -345,6 +378,8 @@ PERF_TEST_P(Sz_Depth, Core_DivideMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_
         {\r
             cv::gpu::divide(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -356,6 +391,8 @@ PERF_TEST_P(Sz_Depth, Core_DivideMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT_
         {\r
             cv::divide(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -372,7 +409,7 @@ PERF_TEST_P(Sz_Depth, Core_DivideScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_M
 \r
     cv::Scalar s(1, 2, 3, 4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -383,6 +420,8 @@ PERF_TEST_P(Sz_Depth, Core_DivideScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_M
         {\r
             cv::gpu::divide(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -394,6 +433,8 @@ PERF_TEST_P(Sz_Depth, Core_DivideScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_M
         {\r
             cv::divide(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -410,7 +451,7 @@ PERF_TEST_P(Sz_Depth, Core_DivideScalarInv, Combine(GPU_TYPICAL_MAT_SIZES, ARITH
 \r
     double s = 100.0;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -421,6 +462,8 @@ PERF_TEST_P(Sz_Depth, Core_DivideScalarInv, Combine(GPU_TYPICAL_MAT_SIZES, ARITH
         {\r
             cv::gpu::divide(s, d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -432,6 +475,8 @@ PERF_TEST_P(Sz_Depth, Core_DivideScalarInv, Combine(GPU_TYPICAL_MAT_SIZES, ARITH
         {\r
             cv::divide(s, src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -449,7 +494,7 @@ PERF_TEST_P(Sz_Depth, Core_AbsDiffMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -461,6 +506,8 @@ PERF_TEST_P(Sz_Depth, Core_AbsDiffMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT
         {\r
             cv::gpu::absdiff(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -472,6 +519,8 @@ PERF_TEST_P(Sz_Depth, Core_AbsDiffMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_MAT
         {\r
             cv::absdiff(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -488,7 +537,7 @@ PERF_TEST_P(Sz_Depth, Core_AbsDiffScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_
 \r
     cv::Scalar s(1, 2, 3, 4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -499,6 +548,8 @@ PERF_TEST_P(Sz_Depth, Core_AbsDiffScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_
         {\r
             cv::gpu::absdiff(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -510,6 +561,8 @@ PERF_TEST_P(Sz_Depth, Core_AbsDiffScalar, Combine(GPU_TYPICAL_MAT_SIZES, ARITHM_
         {\r
             cv::absdiff(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -524,7 +577,7 @@ PERF_TEST_P(Sz_Depth, Core_Abs, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_16S, CV
     cv::Mat src(size, depth);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -535,10 +588,12 @@ PERF_TEST_P(Sz_Depth, Core_Abs, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_16S, CV
         {\r
             cv::gpu::abs(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -553,7 +608,7 @@ PERF_TEST_P(Sz_Depth, Core_Sqr, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
     cv::Mat src(size, depth);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -564,10 +619,12 @@ PERF_TEST_P(Sz_Depth, Core_Sqr, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
         {\r
             cv::gpu::sqr(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -582,7 +639,7 @@ PERF_TEST_P(Sz_Depth, Core_Sqrt, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV
     cv::Mat src(size, depth);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -593,6 +650,8 @@ PERF_TEST_P(Sz_Depth, Core_Sqrt, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV
         {\r
             cv::gpu::sqrt(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -604,6 +663,8 @@ PERF_TEST_P(Sz_Depth, Core_Sqrt, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV
         {\r
             cv::sqrt(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -618,7 +679,7 @@ PERF_TEST_P(Sz_Depth, Core_Log, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
     cv::Mat src(size, depth);\r
     fillRandom(src, 1.0, 255.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -629,6 +690,8 @@ PERF_TEST_P(Sz_Depth, Core_Log, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
         {\r
             cv::gpu::log(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -640,6 +703,8 @@ PERF_TEST_P(Sz_Depth, Core_Log, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
         {\r
             cv::log(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -654,7 +719,7 @@ PERF_TEST_P(Sz_Depth, Core_Exp, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
     cv::Mat src(size, depth);\r
     fillRandom(src, 1.0, 10.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -665,6 +730,8 @@ PERF_TEST_P(Sz_Depth, Core_Exp, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
         {\r
             cv::gpu::exp(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -676,6 +743,8 @@ PERF_TEST_P(Sz_Depth, Core_Exp, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U, CV_
         {\r
             cv::exp(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -693,7 +762,7 @@ PERF_TEST_P(Sz_Depth_Power, Core_Pow, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
     cv::Mat src(size, depth);\r
     fillRandom(src, 1.0, 10.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -704,6 +773,8 @@ PERF_TEST_P(Sz_Depth_Power, Core_Pow, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::gpu::pow(d_src, power, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -715,6 +786,8 @@ PERF_TEST_P(Sz_Depth_Power, Core_Pow, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::pow(src, power, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -738,7 +811,7 @@ PERF_TEST_P(Sz_Depth_Code, Core_CompareMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITH
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -750,6 +823,8 @@ PERF_TEST_P(Sz_Depth_Code, Core_CompareMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITH
         {\r
             cv::gpu::compare(d_src1, d_src2, d_dst, cmp_code);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -761,6 +836,8 @@ PERF_TEST_P(Sz_Depth_Code, Core_CompareMat, Combine(GPU_TYPICAL_MAT_SIZES, ARITH
         {\r
             cv::compare(src1, src2, dst, cmp_code);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -778,7 +855,7 @@ PERF_TEST_P(Sz_Depth_Code, Core_CompareScalar, Combine(GPU_TYPICAL_MAT_SIZES, AR
 \r
     cv::Scalar s = cv::Scalar::all(100);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -789,6 +866,8 @@ PERF_TEST_P(Sz_Depth_Code, Core_CompareScalar, Combine(GPU_TYPICAL_MAT_SIZES, AR
         {\r
             cv::gpu::compare(d_src, s, d_dst, cmp_code);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -800,6 +879,8 @@ PERF_TEST_P(Sz_Depth_Code, Core_CompareScalar, Combine(GPU_TYPICAL_MAT_SIZES, AR
         {\r
             cv::compare(src, s, dst, cmp_code);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -814,7 +895,7 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseNot, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_
     cv::Mat src(size, depth);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -825,6 +906,8 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseNot, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_
         {\r
             cv::gpu::bitwise_not(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -836,6 +919,8 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseNot, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_
         {\r
             cv::bitwise_not(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -853,7 +938,7 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseAndMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -865,6 +950,8 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseAndMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(
         {\r
             cv::gpu::bitwise_and(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -895,7 +982,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseAndScalar, Combine(GPU_TYPICAL_MAT_SIZES, V
 \r
     cv::Scalar s = cv::Scalar::all(100);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -906,6 +993,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseAndScalar, Combine(GPU_TYPICAL_MAT_SIZES, V
         {\r
             cv::gpu::bitwise_and(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -917,6 +1006,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseAndScalar, Combine(GPU_TYPICAL_MAT_SIZES, V
         {\r
             cv::bitwise_and(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -934,7 +1025,7 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseOrMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(C
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -946,6 +1037,8 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseOrMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(C
         {\r
             cv::gpu::bitwise_or(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -957,6 +1050,8 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseOrMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(C
         {\r
             cv::bitwise_or(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -976,7 +1071,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseOrScalar, Combine(GPU_TYPICAL_MAT_SIZES, Va
 \r
     cv::Scalar s = cv::Scalar::all(100);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -987,6 +1082,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseOrScalar, Combine(GPU_TYPICAL_MAT_SIZES, Va
         {\r
             cv::gpu::bitwise_or(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -998,6 +1095,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseOrScalar, Combine(GPU_TYPICAL_MAT_SIZES, Va
         {\r
             cv::bitwise_or(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1015,7 +1114,7 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseXorMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1027,6 +1126,8 @@ PERF_TEST_P(Sz_Depth, Core_BitwiseXorMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(
         {\r
             cv::gpu::bitwise_xor(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1057,7 +1158,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseXorScalar, Combine(GPU_TYPICAL_MAT_SIZES, V
 \r
     cv::Scalar s = cv::Scalar::all(100);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1068,6 +1169,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseXorScalar, Combine(GPU_TYPICAL_MAT_SIZES, V
         {\r
             cv::gpu::bitwise_xor(d_src, s, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1079,6 +1182,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_BitwiseXorScalar, Combine(GPU_TYPICAL_MAT_SIZES, V
         {\r
             cv::bitwise_xor(src, s, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1098,7 +1203,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_RShift, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
 \r
     const cv::Scalar_<int> val = cv::Scalar_<int>::all(4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1109,10 +1214,12 @@ PERF_TEST_P(Sz_Depth_Cn, Core_RShift, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::gpu::rshift(d_src, val, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -1132,7 +1239,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_LShift, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
 \r
     const cv::Scalar_<int> val = cv::Scalar_<int>::all(4);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1143,10 +1250,12 @@ PERF_TEST_P(Sz_Depth_Cn, Core_LShift, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::gpu::lshift(d_src, val, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -1164,7 +1273,7 @@ PERF_TEST_P(Sz_Depth, Core_MinMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U,
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1176,6 +1285,8 @@ PERF_TEST_P(Sz_Depth, Core_MinMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U,
         {\r
             cv::gpu::min(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1187,6 +1298,8 @@ PERF_TEST_P(Sz_Depth, Core_MinMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U,
         {\r
             cv::min(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1203,7 +1316,7 @@ PERF_TEST_P(Sz_Depth, Core_MinScalar, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
 \r
     const double val = 50.0;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1214,6 +1327,8 @@ PERF_TEST_P(Sz_Depth, Core_MinScalar, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::gpu::min(d_src, val, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1225,6 +1340,8 @@ PERF_TEST_P(Sz_Depth, Core_MinScalar, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::min(src, val, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1242,7 +1359,7 @@ PERF_TEST_P(Sz_Depth, Core_MaxMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U,
     cv::Mat src2(size, depth);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1254,6 +1371,8 @@ PERF_TEST_P(Sz_Depth, Core_MaxMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U,
         {\r
             cv::gpu::max(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1265,6 +1384,8 @@ PERF_TEST_P(Sz_Depth, Core_MaxMat, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8U,
         {\r
             cv::max(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1281,7 +1402,7 @@ PERF_TEST_P(Sz_Depth, Core_MaxScalar, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
 \r
     const double val = 50.0;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1292,6 +1413,8 @@ PERF_TEST_P(Sz_Depth, Core_MaxScalar, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::gpu::max(d_src, val, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1303,6 +1426,8 @@ PERF_TEST_P(Sz_Depth, Core_MaxScalar, Combine(GPU_TYPICAL_MAT_SIZES, Values(CV_8
         {\r
             cv::max(src, val, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1328,7 +1453,7 @@ PERF_TEST_P(Sz_3Depth, Core_AddWeighted, Combine(
     cv::Mat src2(size, depth2);\r
     fillRandom(src2);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1340,6 +1465,8 @@ PERF_TEST_P(Sz_3Depth, Core_AddWeighted, Combine(
         {\r
             cv::gpu::addWeighted(d_src1, 0.5, d_src2, 0.5, 10.0, d_dst, dst_depth);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1351,6 +1478,8 @@ PERF_TEST_P(Sz_3Depth, Core_AddWeighted, Combine(
         {\r
             cv::addWeighted(src1, 0.5, src2, 0.5, 10.0, dst, dst_depth);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1382,7 +1511,7 @@ PERF_TEST_P(Sz_Type_Flags, Core_GEMM, Combine(
     cv::Mat src3(size, type);\r
     fillRandom(src3);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1395,6 +1524,8 @@ PERF_TEST_P(Sz_Type_Flags, Core_GEMM, Combine(
         {\r
             cv::gpu::gemm(d_src1, d_src2, 1.0, d_src3, 1.0, d_dst, flags);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1408,6 +1539,8 @@ PERF_TEST_P(Sz_Type_Flags, Core_GEMM, Combine(
         {\r
             cv::gemm(src1, src2, 1.0, src3, 1.0, dst, flags);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1424,7 +1557,7 @@ PERF_TEST_P(Sz_Type, Core_Transpose, Combine(
     cv::Mat src(size, type);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1435,6 +1568,8 @@ PERF_TEST_P(Sz_Type, Core_Transpose, Combine(
         {\r
             cv::gpu::transpose(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1446,6 +1581,8 @@ PERF_TEST_P(Sz_Type, Core_Transpose, Combine(
         {\r
             cv::transpose(src, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1474,7 +1611,7 @@ PERF_TEST_P(Sz_Depth_Cn_Code, Core_Flip, Combine(
     cv::Mat src(size, type);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1485,6 +1622,8 @@ PERF_TEST_P(Sz_Depth_Cn_Code, Core_Flip, Combine(
         {\r
             cv::gpu::flip(d_src, d_dst, flipCode);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1496,6 +1635,8 @@ PERF_TEST_P(Sz_Depth_Cn_Code, Core_Flip, Combine(
         {\r
             cv::flip(src, dst, flipCode);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1515,7 +1656,7 @@ PERF_TEST_P(Sz_Type, Core_LutOneChannel, Combine(
     cv::Mat lut(1, 256, CV_8UC1);\r
     fillRandom(lut);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1526,6 +1667,8 @@ PERF_TEST_P(Sz_Type, Core_LutOneChannel, Combine(
         {\r
             cv::gpu::LUT(d_src, lut, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1537,6 +1680,8 @@ PERF_TEST_P(Sz_Type, Core_LutOneChannel, Combine(
         {\r
             cv::LUT(src, lut, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1556,7 +1701,7 @@ PERF_TEST_P(Sz_Type, Core_LutMultiChannel, Combine(
     cv::Mat lut(1, 256, CV_MAKE_TYPE(CV_8U, src.channels()));\r
     fillRandom(lut);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1567,6 +1712,8 @@ PERF_TEST_P(Sz_Type, Core_LutMultiChannel, Combine(
         {\r
             cv::gpu::LUT(d_src, lut, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1578,6 +1725,8 @@ PERF_TEST_P(Sz_Type, Core_LutMultiChannel, Combine(
         {\r
             cv::LUT(src, lut, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1591,7 +1740,7 @@ PERF_TEST_P(Sz, Core_MagnitudeComplex, GPU_TYPICAL_MAT_SIZES)
     cv::Mat src(size, CV_32FC2);\r
     fillRandom(src, -100.0, 100.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1602,6 +1751,8 @@ PERF_TEST_P(Sz, Core_MagnitudeComplex, GPU_TYPICAL_MAT_SIZES)
         {\r
             cv::gpu::magnitude(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1616,6 +1767,8 @@ PERF_TEST_P(Sz, Core_MagnitudeComplex, GPU_TYPICAL_MAT_SIZES)
         {\r
             cv::magnitude(xy[0], xy[1], dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1629,7 +1782,7 @@ PERF_TEST_P(Sz, Core_MagnitudeSqrComplex, GPU_TYPICAL_MAT_SIZES)
     cv::Mat src(size, CV_32FC2);\r
     fillRandom(src, -100.0, 100.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -1640,10 +1793,12 @@ PERF_TEST_P(Sz, Core_MagnitudeSqrComplex, GPU_TYPICAL_MAT_SIZES)
         {\r
             cv::gpu::magnitudeSqr(d_src, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -1660,7 +1815,7 @@ PERF_TEST_P(Sz, Core_Magnitude, GPU_TYPICAL_MAT_SIZES)
     cv::Mat src2(size, CV_32FC1);\r
     fillRandom(src2, -100.0, 100.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1672,6 +1827,8 @@ PERF_TEST_P(Sz, Core_Magnitude, GPU_TYPICAL_MAT_SIZES)
         {\r
             cv::gpu::magnitude(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1683,6 +1840,9 @@ PERF_TEST_P(Sz, Core_Magnitude, GPU_TYPICAL_MAT_SIZES)
         {\r
             cv::magnitude(src1, src2, dst);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
+\r
     }\r
 }\r
 \r
@@ -1699,7 +1859,7 @@ PERF_TEST_P(Sz, Core_MagnitudeSqr, GPU_TYPICAL_MAT_SIZES)
     cv::Mat src2(size, CV_32FC1);\r
     fillRandom(src2, -100.0, 100.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1711,10 +1871,12 @@ PERF_TEST_P(Sz, Core_MagnitudeSqr, GPU_TYPICAL_MAT_SIZES)
         {\r
             cv::gpu::magnitudeSqr(d_src1, d_src2, d_dst);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -1734,7 +1896,7 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_Phase, Combine(GPU_TYPICAL_MAT_SIZES, Bool()
     cv::Mat src2(size, CV_32FC1);\r
     fillRandom(src2, -100.0, 100.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1746,6 +1908,8 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_Phase, Combine(GPU_TYPICAL_MAT_SIZES, Bool()
         {\r
             cv::gpu::phase(d_src1, d_src2, d_dst, angleInDegrees);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r
@@ -1757,6 +1921,8 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_Phase, Combine(GPU_TYPICAL_MAT_SIZES, Bool()
         {\r
             cv::phase(src1, src2, dst, angleInDegrees);\r
         }\r
+\r
+        CPU_SANITY_CHECK(dst);\r
     }\r
 }\r
 \r
@@ -1774,7 +1940,7 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_CartToPolar, Combine(GPU_TYPICAL_MAT_SIZES,
     cv::Mat src2(size, CV_32FC1);\r
     fillRandom(src2, -100.0, 100.0);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1787,6 +1953,10 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_CartToPolar, Combine(GPU_TYPICAL_MAT_SIZES,
         {\r
             cv::gpu::cartToPolar(d_src1, d_src2, d_magnitude, d_angle, angleInDegrees);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_magnitude);\r
+        GPU_SANITY_CHECK(d_angle);\r
+\r
     }\r
     else\r
     {\r
@@ -1799,6 +1969,9 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_CartToPolar, Combine(GPU_TYPICAL_MAT_SIZES,
         {\r
             cv::cartToPolar(src1, src2, magnitude, angle, angleInDegrees);\r
         }\r
+\r
+        CPU_SANITY_CHECK(magnitude);\r
+        CPU_SANITY_CHECK(angle);\r
     }\r
 }\r
 \r
@@ -1816,7 +1989,7 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_PolarToCart, Combine(GPU_TYPICAL_MAT_SIZES,
     cv::Mat angle(size, CV_32FC1);\r
     fillRandom(angle, 0.0, angleInDegrees ? 360.0 : 2 * CV_PI);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_magnitude(magnitude);\r
         cv::gpu::GpuMat d_angle(angle);\r
@@ -1829,6 +2002,9 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_PolarToCart, Combine(GPU_TYPICAL_MAT_SIZES,
         {\r
             cv::gpu::polarToCart(d_magnitude, d_angle, d_x, d_y, angleInDegrees);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_x);\r
+        GPU_SANITY_CHECK(d_y);\r
     }\r
     else\r
     {\r
@@ -1841,6 +2017,9 @@ PERF_TEST_P(Sz_AngleInDegrees, Core_PolarToCart, Combine(GPU_TYPICAL_MAT_SIZES,
         {\r
             cv::polarToCart(magnitude, angle, x, y, angleInDegrees);\r
         }\r
+\r
+        CPU_SANITY_CHECK(x);\r
+        CPU_SANITY_CHECK(y);\r
     }\r
 }\r
 \r
@@ -1857,7 +2036,7 @@ PERF_TEST_P(Sz, Core_MeanStdDev, GPU_TYPICAL_MAT_SIZES)
     cv::Scalar mean;\r
     cv::Scalar stddev;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -1878,6 +2057,8 @@ PERF_TEST_P(Sz, Core_MeanStdDev, GPU_TYPICAL_MAT_SIZES)
             cv::meanStdDev(src, mean, stddev);\r
         }\r
     }\r
+\r
+    GPU_SANITY_CHECK(stddev);\r
 }\r
 \r
 //////////////////////////////////////////////////////////////////////\r
@@ -1899,7 +2080,7 @@ PERF_TEST_P(Sz_Depth_Norm, Core_Norm, Combine(
 \r
     double dst;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -1920,7 +2101,8 @@ PERF_TEST_P(Sz_Depth_Norm, Core_Norm, Combine(
             dst = cv::norm(src, normType);\r
         }\r
     }\r
-    (void)dst;\r
+\r
+    SANITY_CHECK(dst);\r
 }\r
 \r
 //////////////////////////////////////////////////////////////////////\r
@@ -1943,7 +2125,7 @@ PERF_TEST_P(Sz_Norm, Core_NormDiff, Combine(
 \r
     double dst;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src1(src1);\r
         cv::gpu::GpuMat d_src2(src2);\r
@@ -1954,6 +2136,7 @@ PERF_TEST_P(Sz_Norm, Core_NormDiff, Combine(
         {\r
             dst = cv::gpu::norm(d_src1, d_src2, normType);\r
         }\r
+\r
     }\r
     else\r
     {\r
@@ -1964,7 +2147,8 @@ PERF_TEST_P(Sz_Norm, Core_NormDiff, Combine(
             dst = cv::norm(src1, src2, normType);\r
         }\r
     }\r
-    (void)dst;\r
+\r
+    SANITY_CHECK(dst);\r
 }\r
 \r
 //////////////////////////////////////////////////////////////////////\r
@@ -1986,7 +2170,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Sum, Combine(
 \r
     cv::Scalar dst;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -2007,6 +2191,8 @@ PERF_TEST_P(Sz_Depth_Cn, Core_Sum, Combine(
             dst = cv::sum(src);\r
         }\r
     }\r
+\r
+    SANITY_CHECK(dst);\r
 }\r
 \r
 //////////////////////////////////////////////////////////////////////\r
@@ -2028,7 +2214,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_SumAbs, Combine(
 \r
     cv::Scalar dst;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -2039,10 +2225,12 @@ PERF_TEST_P(Sz_Depth_Cn, Core_SumAbs, Combine(
         {\r
             dst = cv::gpu::absSum(d_src, d_buf);\r
         }\r
+\r
+        SANITY_CHECK(dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -2065,7 +2253,7 @@ PERF_TEST_P(Sz_Depth_Cn, Core_SumSqr, Combine(
 \r
     cv::Scalar dst;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -2076,10 +2264,12 @@ PERF_TEST_P(Sz_Depth_Cn, Core_SumSqr, Combine(
         {\r
             dst = cv::gpu::sqrSum(d_src, d_buf);\r
         }\r
+\r
+        SANITY_CHECK(dst);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -2098,7 +2288,7 @@ PERF_TEST_P(Sz_Depth, Core_MinMax, Combine(
 \r
     double minVal, maxVal;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -2109,10 +2299,13 @@ PERF_TEST_P(Sz_Depth, Core_MinMax, Combine(
         {\r
             cv::gpu::minMax(d_src, &minVal, &maxVal, cv::gpu::GpuMat(), d_buf);\r
         }\r
+\r
+        SANITY_CHECK(minVal);\r
+        SANITY_CHECK(maxVal);\r
     }\r
     else\r
     {\r
-        FAIL();\r
+        FAIL() << "No such CPU implementation analogy";\r
     }\r
 }\r
 \r
@@ -2132,7 +2325,7 @@ PERF_TEST_P(Sz_Depth, Core_MinMaxLoc, Combine(
     double minVal, maxVal;\r
     cv::Point minLoc, maxLoc;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_valbuf, d_locbuf;\r
@@ -2153,6 +2346,13 @@ PERF_TEST_P(Sz_Depth, Core_MinMaxLoc, Combine(
             cv::minMaxLoc(src, &minVal, &maxVal, &minLoc, &maxLoc);\r
         }\r
     }\r
+\r
+    SANITY_CHECK(minVal);\r
+    SANITY_CHECK(maxVal);\r
+\r
+    // unsupported by peft system\r
+    //SANITY_CHECK(minLoc);\r
+    //SANITY_CHECK(maxLoc);\r
 }\r
 \r
 //////////////////////////////////////////////////////////////////////\r
@@ -2170,7 +2370,7 @@ PERF_TEST_P(Sz_Depth, Core_CountNonZero, Combine(
 \r
     int dst;\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_buf;\r
@@ -2191,7 +2391,8 @@ PERF_TEST_P(Sz_Depth, Core_CountNonZero, Combine(
             dst = cv::countNonZero(src);\r
         }\r
     }\r
-    (void)dst;\r
+\r
+    SANITY_CHECK(dst);\r
 }\r
 \r
 //////////////////////////////////////////////////////////////////////\r
@@ -2224,7 +2425,7 @@ PERF_TEST_P(Sz_Depth_Cn_Code_Dim, Core_Reduce, Combine(
     cv::Mat src(size, type);\r
     fillRandom(src);\r
 \r
-    if (runOnGpu)\r
+    if (PERF_RUN_GPU())\r
     {\r
         cv::gpu::GpuMat d_src(src);\r
         cv::gpu::GpuMat d_dst;\r
@@ -2235,6 +2436,8 @@ PERF_TEST_P(Sz_Depth_Cn_Code_Dim, Core_Reduce, Combine(
         {\r
             cv::gpu::reduce(d_src, d_dst, dim, reduceOp);\r
         }\r
+\r
+        GPU_SANITY_CHECK(d_dst);\r
     }\r
     else\r
     {\r