Remove android dependency in TestValidation (#1316)
author김수진/동작제어Lab(SR)/Engineer/삼성전자 <sjsujin.kim@samsung.com>
Thu, 24 May 2018 02:15:22 +0000 (11:15 +0900)
committer서상민/동작제어Lab(SR)/Senior Engineer/삼성전자 <sangmin7.seo@samsung.com>
Thu, 24 May 2018 02:15:22 +0000 (11:15 +0900)
* Remove android dependency in TestValidation

This commit removes android dependency in TestValidation test.

Signed-off-by: sjsujinkim <sjsujin.kim@samsung.com>
runtimes/tests/neural_networks_test/TestValidation.cpp

index 55be266..36d1f0c 100644 (file)
  * limitations under the License.
  */
 #include "NeuralNetworks.h"
-#if 0 // TODO-NNRT : Enable if we support OEM, shared memory
+#if 0 // TODO-NNRT : Enable if we support OEM
 #include "NeuralNetworksOEM.h"
-#include <android/sharedmem.h>
 #endif
-#include <cutils/ashmem.h>
 #include <gtest/gtest.h>
 #include <string>
 #include <sys/mman.h>
+#include <stdio.h>
+#include <stdlib.h>
 // This file tests all the validations done by the Neural Networks API.
 namespace {
+
+#define PATH_MAX 256
+
+static int shmem_num = 0;
+static int shmem_create_region(size_t size)
+{
+    char temp[PATH_MAX];
+    snprintf(temp, sizeof(temp), "/tmp/nn-shmem-%d-%d-XXXXXXXXX", getpid(), shmem_num++);
+    int fd = mkstemp(temp);
+    if (fd == -1) return -1;
+
+    unlink(temp);
+
+    if (TEMP_FAILURE_RETRY(ftruncate(fd, size)) == -1) {
+      close(fd);
+      return -1;
+    }
+
+    return fd;
+}
+
 class ValidationTest : public ::testing::Test {
 protected:
     virtual void SetUp() {}
@@ -185,7 +206,7 @@ TEST_F(ValidationTestModel, SetOperandValueFromMemory) {
                 .dimensions = dimensions};
     EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &floatType), ANEURALNETWORKS_NO_ERROR);
     const size_t memorySize = 20;
-    int memoryFd = ashmem_create_region("nnMemory", memorySize);
+    int memoryFd = shmem_create_region(memorySize);
     ASSERT_GT(memoryFd, 0);
     ANeuralNetworksMemory* memory;
     EXPECT_EQ(ANeuralNetworksMemory_createFromFd(memorySize, PROT_READ | PROT_WRITE,
@@ -401,7 +422,7 @@ TEST_F(ValidationTestExecution, SetInputFromMemory) {
     ANeuralNetworksExecution* execution;
     EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
     const size_t memorySize = 20;
-    int memoryFd = ashmem_create_region("nnMemory", memorySize);
+    int memoryFd = shmem_create_region(memorySize);
     ASSERT_GT(memoryFd, 0);
     ANeuralNetworksMemory* memory;
     EXPECT_EQ(ANeuralNetworksMemory_createFromFd(memorySize, PROT_READ | PROT_WRITE,
@@ -438,7 +459,7 @@ TEST_F(ValidationTestExecution, SetOutputFromMemory) {
     ANeuralNetworksExecution* execution;
     EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
     const size_t memorySize = 20;
-    int memoryFd = ashmem_create_region("nnMemory", memorySize);
+    int memoryFd = shmem_create_region(memorySize);
     ASSERT_GT(memoryFd, 0);
     ANeuralNetworksMemory* memory;
     EXPECT_EQ(ANeuralNetworksMemory_createFromFd(memorySize, PROT_READ | PROT_WRITE,