Syncing from internal gitlab
[#21] Fix issue with mismatch in NN and NN conformance results
[#21,#17] Fixes cmake issues for both issues
- #21, Needed to disable Network folder build when NN_16 is not
being enabled
- #17, Need to add appropriate posix definitions in order to allow
proper access to usleep within unistd.h
diff --git a/test_conformance/CMakeLists.txt b/test_conformance/CMakeLists.txt
index 8f1fbef..0b2e247 100644
--- a/test_conformance/CMakeLists.txt
+++ b/test_conformance/CMakeLists.txt
@@ -1,4 +1,4 @@
-#
+#
# Copyright (c) 2012-2017 The Khronos Group Inc.
#
@@ -21,7 +21,10 @@
file(GLOB SOURCES "./*.c")
file(GLOB HEADERS "./*.h")
+
+if(OPENVX_USE_NN_16)
file(GLOB NETWORK_SOURCES "./Networks/src/*")
+endif(OPENVX_USE_NN_16)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/test_conformance/Networks/src/common.c b/test_conformance/Networks/src/common.c
index 96c6604..c1a2108 100644
--- a/test_conformance/Networks/src/common.c
+++ b/test_conformance/Networks/src/common.c
@@ -1,7 +1,9 @@
/** @file common.c
- * @brief
- * This file contains the implementation of the generated utility functions
+ * @brief
+ * This file contains the implementation of the generated utility functions
*/
+#ifdef OPENVX_CONFORMANCE_NEURAL_NETWORKS
+#ifdef OPENVX_USE_NN_16
#include "common.h"
#include <stdio.h>
@@ -23,12 +25,15 @@
if(pObj->ref)
{
- if(pObj->type == VX_TYPE_IMAGE)
+ if(pObj->type == VX_TYPE_TENSOR)
+ vxReleaseTensor((vx_tensor*)&(pObj->ref));
+ else if(pObj->type == VX_TYPE_SCALAR)
+ vxReleaseScalar((vx_scalar*)&(pObj->ref));
+#if defined OPENVX_USE_ENHANCED_VISION || OPENVX_CONFORMANCE_VISION
+ else if(pObj->type == VX_TYPE_IMAGE)
vxReleaseImage((vx_image*)&(pObj->ref));
else if(pObj->type == VX_TYPE_ARRAY)
vxReleaseArray((vx_array*)&(pObj->ref));
- else if(pObj->type == VX_TYPE_SCALAR)
- vxReleaseScalar((vx_scalar*)&(pObj->ref));
else if(pObj->type == VX_TYPE_REMAP)
vxReleaseRemap((vx_remap*)&(pObj->ref));
else if(pObj->type == VX_TYPE_CONVOLUTION)
@@ -45,10 +50,9 @@
vxReleaseLUT((vx_lut*)&(pObj->ref));
else if(pObj->type == VX_TYPE_OBJECT_ARRAY)
vxReleaseObjectArray((vx_object_array*)&(pObj->ref));
- else if(pObj->type == VX_TYPE_TENSOR)
- vxReleaseTensor((vx_tensor*)&(pObj->ref));
else if(pObj->type == VX_TYPE_DELAY)
vxReleaseDelay((vx_delay*)&(pObj->ref));
+#endif
}
else if(pObj->pMem)
{
@@ -156,7 +160,7 @@
{
if(0 == strcmp(nodeName, filteredNodesList[i]))
{
- bCreateNode = true;
+ bCreateNode = true;
break;
}
}
@@ -173,12 +177,12 @@
return status;
}
AddVXObject(pObjectContainer, (vx_reference)*node, VX_TYPE_NODE, nodeName);
- }
+ }
else
{
*node = NULL;
}
- return VX_SUCCESS;
+ return VX_SUCCESS;
}
int WriteLog(const char* format, ...)
@@ -196,9 +200,9 @@
{
static char allVxStatusEnumsContainer[1024];
static char* statusArray[VX_SUCCESS - VX_STATUS_MIN + 1];
- static bool firstTime = true;
- if (firstTime)
- {
+ static bool firstTime = true;
+ if (firstTime)
+ {
size_t index = 0;
for (int i = VX_STATUS_MIN; i <= VX_SUCCESS; ++i)
{
@@ -209,7 +213,7 @@
else if (i == VX_ERROR_INVALID_SCOPE) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_SCOPE");
else if (i == VX_ERROR_INVALID_NODE) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_NODE");
else if (i == VX_ERROR_INVALID_GRAPH) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_GRAPH");
- else if (i == VX_ERROR_INVALID_TYPE) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_TYPE");
+ else if (i == VX_ERROR_INVALID_TYPE) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_TYPE");
else if (i == VX_ERROR_INVALID_VALUE) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_VALUE");
else if (i == VX_ERROR_INVALID_DIMENSION) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_DIMENSION");
else if (i == VX_ERROR_INVALID_FORMAT) strcpy(allVxStatusEnumsContainer + index, "VX_ERROR_INVALID_FORMAT");
@@ -230,8 +234,8 @@
else strcpy(allVxStatusEnumsContainer + index, "Unknown error");
statusArray[i - VX_STATUS_MIN] = allVxStatusEnumsContainer + index;
index += strlen(allVxStatusEnumsContainer + index) + 1;
- }
- firstTime = false;
+ }
+ firstTime = false;
}
return statusArray;
}
@@ -247,3 +251,6 @@
}
return statusContainer[vxStatus - VX_STATUS_MIN];
}
+
+#endif
+#endif
diff --git a/test_engine/CMakeLists.txt b/test_engine/CMakeLists.txt
index 5ab87db..fda2415 100644
--- a/test_engine/CMakeLists.txt
+++ b/test_engine/CMakeLists.txt
@@ -1,4 +1,4 @@
-#
+#
# Copyright (c) 2012-2017 The Khronos Group Inc.
#
@@ -22,6 +22,9 @@
file(GLOB SOURCES "./*.c")
file(GLOB HEADERS "./*.h")
+# Following is added for accessing prototype of usleep() in unistd.h
+add_definitions( -D_XOPEN_SOURCE=700 -D_GNU_SOURCE=1 )
+
add_library(${target} STATIC ${SOURCES} ${HEADERS})
target_include_directories(${target} PUBLIC ${CMAKE_SOURCE_DIR})
target_link_libraries(${target} PUBLIC openvx-interface)
diff --git a/test_engine/test_engine.c b/test_engine/test_engine.c
index c9538c3..b3bb51e 100644
--- a/test_engine/test_engine.c
+++ b/test_engine/test_engine.c
@@ -919,15 +919,25 @@
if (strncmp(enhanced_vision_test[i], test_name, sizeof(enhanced_vision_test[i]) - 1) == 0) {
conformance_enhanced_vision_status = 1;
i = enhance_vision_num;
- }
- }
+ }
+ }
#endif
+#ifdef OPENVX_CONFORMANCE_NEURAL_NETWORKS
#ifdef OPENVX_USE_NN
if (strncmp("TensorNN", test_name, sizeof("TensorNN") - 1) == 0) {
total_openvx_failed_nn_tests ++;
+ total_openvx_failed_neural_networks_tests ++;
}
else
#endif
+#ifdef OPENVX_USE_NN_16
+ if (strncmp("TensorNetworks", test_name, sizeof("TensorNetworks") - 1) == 0) {
+ total_openvx_failed_nn_tests ++;
+ total_openvx_failed_neural_networks_tests ++;
+ }
+ else
+#endif
+#endif
#ifdef OPENVX_USE_IX
if (strncmp("ExtensionObject", test_name, sizeof("ExtensionObject") - 1) == 0) {
total_openvx_failed_ix_tests ++;
@@ -958,20 +968,6 @@
}
else
#endif
-#ifdef OPENVX_CONFORMANCE_NEURAL_NETWORKS
-#ifdef OPENVX_USE_NN
- if (strncmp("TensorNN", test_name, sizeof("TensorNN") - 1) == 0) {
- total_openvx_failed_neural_networks_tests ++;
- }
- else
-#endif
-#ifdef OPENVX_USE_NN_16
- if (strncmp("TensorNetworks", test_name, sizeof("TensorNetworks") - 1) == 0) {
- total_openvx_failed_neural_networks_tests ++;
- }
- else
-#endif
-#endif
#ifdef OPENVX_CONFORMANCE_NNEF_IMPORT
if (strncmp("TensorNNEFImport", test_name, sizeof("TensorNNEFImport") - 1) == 0) {
total_openvx_failed_nnef_tests ++;