[Test/Model] Change the test directory from ./src/test to ./tests
authorDongju Chae <dongju.chae@samsung.com>
Tue, 11 Feb 2020 03:34:47 +0000 (12:34 +0900)
committer송욱/On-Device Lab(SR)/Staff Engineer/삼성전자 <wook16.song@samsung.com>
Wed, 12 Feb 2020 07:50:32 +0000 (16:50 +0900)
This commit changes the test directory from ./src/test to ./tests.
Also, this new directory now includes pre-built model binaries.
(e.g., NPU models from NPU_Compiler)

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
30 files changed:
debian/rules
doc/how_to_use.md
doc/usage_examples.md
meson.build
packaging/npu-engine.spec
src/meson.build
tests/README.md [moved from src/test/README.md with 100% similarity]
tests/apptests/async_callbacks.c [moved from src/test/apptests/async_callbacks.c with 98% similarity]
tests/apptests/dmabuf_buffers.c [moved from src/test/apptests/dmabuf_buffers.c with 98% similarity]
tests/apptests/dmabuf_model.c [moved from src/test/apptests/dmabuf_model.c with 98% similarity]
tests/apptests/dummy_inference.c [moved from src/test/apptests/dummy_inference.c with 99% similarity]
tests/apptests/dummy_inference_asr.c [moved from src/test/apptests/dummy_inference_asr.c with 98% similarity]
tests/apptests/example_visa.c [moved from src/test/apptests/example_visa.c with 99% similarity]
tests/apptests/meson.build [moved from src/test/apptests/meson.build with 100% similarity]
tests/meson.build [new file with mode: 0644]
tests/models/README.md [new file with mode: 0644]
tests/models/tvn_models.tar.gz [new file with mode: 0644]
tests/unittests/meson.build [moved from src/test/unittests/meson.build with 100% similarity]
tests/unittests/ne_core_comm_ip_test.cpp [moved from src/test/unittests/ne_core_comm_ip_test.cpp with 99% similarity]
tests/unittests/ne_core_gem_test.cpp [moved from src/test/unittests/ne_core_gem_test.cpp with 100% similarity]
tests/unittests/ne_core_handler_test.cpp [moved from src/test/unittests/ne_core_handler_test.cpp with 100% similarity]
tests/unittests/ne_core_inf_test.cpp [moved from src/test/unittests/ne_core_inf_test.cpp with 100% similarity]
tests/unittests/ne_core_mem_test.cpp [moved from src/test/unittests/ne_core_mem_test.cpp with 100% similarity]
tests/unittests/ne_core_npu_test.cpp [moved from src/test/unittests/ne_core_npu_test.cpp with 100% similarity]
tests/unittests/ne_core_tlb_test.cpp [moved from src/test/unittests/ne_core_tlb_test.cpp with 100% similarity]
tests/unittests/ne_core_utils_test.cpp [moved from src/test/unittests/ne_core_utils_test.cpp with 100% similarity]
tests/utils/meson.build [moved from src/test/meson.build with 59% similarity]
tests/utils/ne_test_utils.c [moved from src/test/ne_test_utils.c with 100% similarity]
tests/utils/ne_test_utils.h [moved from src/test/ne_test_utils.h with 100% similarity]
tools/unittestcoverage.py [moved from src/test/unittestcoverage.py with 100% similarity]

index e70227f..0364cef 100755 (executable)
@@ -32,18 +32,18 @@ override_dh_auto_build:
 
 override_dh_auto_test:
        # unit tests
-       ./build/src/test/unittests/unittest_ne_core_mem
-       ./build/src/test/unittests/unittest_ne_core_npu
-       ./build/src/test/unittests/unittest_ne_core_gem
-       ./build/src/test/unittests/unittest_ne_core_comm_ip
-       ./build/src/test/unittests/unittest_ne_core_handler
-       ./build/src/test/unittests/unittest_ne_core_inf
-       ./build/src/test/unittests/unittest_ne_core_utils
+       ./build/tests/unittests/unittest_ne_core_mem
+       ./build/tests/unittests/unittest_ne_core_npu
+       ./build/tests/unittests/unittest_ne_core_gem
+       ./build/tests/unittests/unittest_ne_core_comm_ip
+       ./build/tests/unittests/unittest_ne_core_handler
+       ./build/tests/unittests/unittest_ne_core_inf
+       ./build/tests/unittests/unittest_ne_core_utils
        # app tests
-       ./build/src/test/apptests/apptest_dummy_inference
-       ./build/src/test/apptests/apptest_dmabuf_model
-       ./build/src/test/apptests/apptest_dmabuf_buffers
-       ./build/src/test/apptests/apptest_async_callbacks
+       ./build/tests/apptests/apptest_dummy_inference
+       ./build/tests/apptests/apptest_dmabuf_model
+       ./build/tests/apptests/apptest_dmabuf_buffers
+       ./build/tests/apptests/apptest_async_callbacks
 
        # Gen model binaries
        # Single-layer test data
@@ -67,8 +67,8 @@ override_dh_auto_test:
        find $(CURDIR)/multi -type f -name 'program.*' -delete
 
        # single/multi-layer model test
-       ./build/src/test/apptests/apptest_example_visa single > /dev/null
-       ./build/src/test/apptests/apptest_example_visa multi > /dev/null
+       ./build/tests/apptests/apptest_example_visa single > /dev/null
+       ./build/tests/apptests/apptest_example_visa multi > /dev/null
 
 override_dh_auto_install:
        DESTDIR=$(CURDIR)/debian/tmp ninja -C build install
index 1ea25a2..3341195 100644 (file)
@@ -87,4 +87,4 @@ unregisterNPUmodel(): Unregister the finished model and remove it.
 runNPU_sync():        Execute inference with the registered model in sync mode.
 runNPU_async():       Execute inference with the registered model in async mode. Need an output callback.
 ```
-For complete sample codes, please refer to [here](/src/test/apptests).
+For complete sample codes, please refer to [here](/tests/apptests).
index 98d379a..184b343 100644 (file)
@@ -2,7 +2,7 @@
 
 We provide example applications which use the NPU Engline library and its APIs.
 They are good reference codes when you develop your applications using the NPU Engine library.
-Please visit [here](/src/test/apptests) to get full source codes.
+Please visit [here](/tests/apptests) to get full source codes.
 
 NPU Engine's two optional packages, `npu-engine-example` and `npu-engine-testdata`, contain test binaries and data, respectively.
 You may use them to verify the functionality of NPU Engine and obtain some guides for its usage.
@@ -23,7 +23,7 @@ The `npu-engine-testdata` package contains testdata used in some example test pr
 **Ubuntu**: `/opt/trinity/share/npu-engine/testdata`
 
 ## Example: apptest_example_visa
-This application ([example_visa.c](/src/test/apptests/example_visa.c)) executes NPU models (with single or multi layers) and compares outputs with their golden data.
+This application ([example_visa.c](/tests/apptests/example_visa.c)) executes NPU models (with single or multi layers) and compares outputs with their golden data.
 Note that the testdata used here follows the NPU binary format ([npubinfmt.h](/include/common/npubinfmt.h)) agreed with several parts.
 
 Let's assume you are testing the application in Ubuntu 16.04.
index ccd782b..5e63ddb 100644 (file)
@@ -61,6 +61,7 @@ if get_option('enable_data_manip')
 endif
 
 subdir('src')
+subdir('tests')
 subdir('tools')
 
 # Set configuration to install .ini
index b7081ea..efc67ae 100644 (file)
@@ -116,9 +116,10 @@ find %{buildroot} -name multi.tar.gz -delete
 # Perform unit tests
 %check
 %if 0%{?unit_test}
-  pushd build/src
+  pushd build/tests
+
   # Run unittests
-  find test/unittests -maxdepth 1 -type f -perm 0755 -print0 | while IFS= read -r -d $'\0' unittest_exec; do
+  find unittests -maxdepth 1 -type f -perm 0755 -print0 | while IFS= read -r -d $'\0' unittest_exec; do
   %if 0%{?use_valgrind}
     valgrind ./${unittest_exec}
   %else
@@ -126,20 +127,21 @@ find %{buildroot} -name multi.tar.gz -delete
   %endif
   done
   # Run apptests
-  find test/apptests -maxdepth 1 -type f -perm 0755 -print0 | while IFS= read -r -d $'\0' apptest_exec; do
+  find apptests -maxdepth 1 -type f -perm 0755 -print0 | while IFS= read -r -d $'\0' apptest_exec; do
   %if 0%{?use_valgrind}
     valgrind ./${apptest_exec}
   %else
     ./${apptest_exec}
   %endif
   done
-  popd
 
   # Run example_visa
   %ifarch aarch64 x86_64
-  ./build/src/test/apptests/apptest_example_visa %{buildroot}%{testdatadir_out}/single > /dev/null
-  ./build/src/test/apptests/apptest_example_visa %{buildroot}%{testdatadir_out}/multi > /dev/null
+  ./apptests/apptest_example_visa %{buildroot}%{testdatadir_out}/single > /dev/null
+  ./apptests/apptest_example_visa %{buildroot}%{testdatadir_out}/multi > /dev/null
   %endif
+
+  popd
 %endif
 
 # Analyze test coverage
@@ -147,28 +149,24 @@ find %{buildroot} -name multi.tar.gz -delete
   # 'lcov' generates the date format with UTC time zone by default. Let's replace UTC with KST
   TZ='Asia/Seoul'; export TZ
 
-  pushd src
-
-  ./test/unittestcoverage.py module $(pwd)
+  $(pwd)/tools/unittestcoverage.py module $(pwd)/src
 
   # Get commit info
   VCS=`cat ${RPM_SOURCE_DIR}/npu-engine.spec | grep "^VCS:" | sed "s|VCS:\\W*\\(.*\\)|\\1|"`
 
   # Create human readable unit test coverate report web page
-
   # Create null gcda files if gcov didn't create it
-  find .. -name "*.gcno" -exec sh -c 'touch -a "${1%.gcno}.gcda"' _ {} \;
+  find . -name "*.gcno" -exec sh -c 'touch -a "${1%.gcno}.gcda"' _ {} \;
   # Generate report
-  lcov -t 'NPU SystemService Unit Test Coverage' -o unittest.info -c -d .. -b $(pwd) --no-external
-  # Exclude generated files (Orc)
-  lcov -r unittest.info "*/*-orc.*" "*/test/*" -o unittest-filtered.info
+  lcov -t 'NPU SystemService Unit Test Coverage' -o unittest.info -c -d . -b $(pwd)/src --no-external
+  # Exclude generated files
+  lcov -r unittest.info "*/tools/*" "*/tests/*" "*/meson*/*" -o unittest-filtered.info
   # Visualize the report
   genhtml -o result unittest-filtered.info -t "NPU SystemService %{version}-%{release} ${VCS}" --ignore-errors source -p ${RPM_BUILD_DIR}
+
   # Copy unittest results
   mkdir -p %{buildroot}%{_datadir}/unittest/
   cp -r result %{buildroot}%{_datadir}/unittest/
-
-  popd
 %endif
 
 %files
index dc9ed8d..2616470 100644 (file)
@@ -18,6 +18,3 @@ ne_library_shared = shared_library('npu-engine',
   dependencies: ne_dependencies,
   install : true,
   install_dir : ne_libdir)
-
-# Build tests
-subdir('test')
similarity index 100%
rename from src/test/README.md
rename to tests/README.md
similarity index 98%
rename from src/test/apptests/async_callbacks.c
rename to tests/apptests/async_callbacks.c
index d789fbf..74f0825 100644 (file)
@@ -19,8 +19,9 @@
 #include <string.h>
 #include <pthread.h>
 
-#include "../ne_test_utils.h"
-#include "../../core/ne-conf.h"
+#include <ne_test_utils.h>
+
+#include "../../src/core/ne-conf.h"
 
 /** @brief lock for private data */
 #define TEST_LOCK()   pthread_mutex_lock(&priv.mutex)
similarity index 98%
rename from src/test/apptests/dmabuf_buffers.c
rename to tests/apptests/dmabuf_buffers.c
index 5a56c35..e507e17 100644 (file)
@@ -20,9 +20,9 @@
 
 #include <libnpuhost.h>
 #include <npubinfmt.h>
+#include <ne_test_utils.h>
 
-#include "../ne_test_utils.h"
-#include "../../core/ne-conf.h"
+#include "../../src/core/ne-conf.h"
 
 /** @brief compare output result with the golden data */
 static int
similarity index 98%
rename from src/test/apptests/dmabuf_model.c
rename to tests/apptests/dmabuf_model.c
index df0dcd1..752a9c3 100644 (file)
@@ -20,9 +20,9 @@
 
 #include <libnpuhost.h>
 #include <npubinfmt.h>
+#include <ne_test_utils.h>
 
-#include "../ne_test_utils.h"
-#include "../../core/ne-conf.h"
+#include "../../src/core/ne-conf.h"
 
 /** @brief compare output result with the golden data */
 static int
similarity index 99%
rename from src/test/apptests/dummy_inference.c
rename to tests/apptests/dummy_inference.c
index 31574bb..e40005a 100644 (file)
@@ -22,8 +22,7 @@
 
 #include <libnpuhost.h>
 #include <npubinfmt.h>
-
-#include "../ne_test_utils.h"
+#include <ne_test_utils.h>
 
 /** @brief compare output result with the golden data */
 static int
similarity index 98%
rename from src/test/apptests/dummy_inference_asr.c
rename to tests/apptests/dummy_inference_asr.c
index 3613ce8..af3cd35 100644 (file)
@@ -20,8 +20,7 @@
 
 #include <libnpuhost.h>
 #include <npubinfmt.h>
-
-#include "../ne_test_utils.h"
+#include <ne_test_utils.h>
 
 /** @brief compare output result with the golden data */
 static int
similarity index 99%
rename from src/test/apptests/example_visa.c
rename to tests/apptests/example_visa.c
index f0b4d2f..4166854 100644 (file)
@@ -22,8 +22,7 @@
 
 #include <libnpuhost.h>
 #include <npubinfmt.h>
-
-#include "../ne_test_utils.h"
+#include <ne_test_utils.h>
 
 #define MAX_FILE_LEN 256
 
diff --git a/tests/meson.build b/tests/meson.build
new file mode 100644 (file)
index 0000000..8619eb3
--- /dev/null
@@ -0,0 +1,3 @@
+subdir('utils')
+subdir('unittests')
+subdir('apptests')
diff --git a/tests/models/README.md b/tests/models/README.md
new file mode 100644 (file)
index 0000000..ea8e2cd
--- /dev/null
@@ -0,0 +1,31 @@
+## tvn models from [NPU_Compiler](https://github.sec.samsung.net/AIP/NPU_Compiler)
+
+```
+Generated by ./NPU_Compiler/tools/vcc/tests/explain.sh
+
+NAME           SUMMARY
+000            Identity
+001            MaxPool
+NET_0000       MaxPool-MaxPool
+NET_0001       Placeholder-MaxPool-Conv2D-FakeQuant
+NET_0002       Placeholder-MaxPool--Conv2D------------Add-FakeQuant
+NET_0003       Convolution with excessive memory requirement (over 1MB)
+NET_0004       Padded Conv-BiasAdd-Relu with excessive memory requirement (over 1MB)
+NET_0005       First residual block of RefineDet from Pad-MaxPool split to merge of Add-Relu
+NET_0006       First two residual blocks of RefineDet
+NET_0008       MaxPool-MaxPool network with large(1x40x20x512) input
+NET_0009       MaxPool network with large(1x320x320x64) input
+NET_0011       First Conv2DBackpropInput with constant network for input_sizes
+UNI_CONV_000   Conv-FakeQuantWithMinMaxVars
+UNI_CONV_001   Conv2D-BiasAdd
+UNI_CONV_002   Conv2D-BiasAdd-Relu
+UNI_CONV_003   Conv2D-FakeQuantWithMinMaxVars with non-zero weight
+UNI_CONV_004   Pad-Conv2D-BiasAdd-Relu-FakeQuantiWithMinMaxVars with non-zero weight
+UNI_CONV_005   Conv OFM is not a multiple of 64
+UNI_CONVE_000  Conv2D-BiasAdd-Add-Relu
+UNI_MAXP_000   MaxPool
+UNI_MAXP_001   Pad-MaxPool
+UNI_MAXP_002   Small MaxPool (input 2x2x64, filter 2x2, output 1x1x64)
+UNI_TCNV_000   Conv2DBackpropInput
+UNI_TCNV_001   Conv2DBackpropInput + BiasAdd
+```
diff --git a/tests/models/tvn_models.tar.gz b/tests/models/tvn_models.tar.gz
new file mode 100644 (file)
index 0000000..056c9dd
Binary files /dev/null and b/tests/models/tvn_models.tar.gz differ
similarity index 99%
rename from src/test/unittests/ne_core_comm_ip_test.cpp
rename to tests/unittests/ne_core_comm_ip_test.cpp
index 7dbecbc..f8e01e1 100644 (file)
@@ -17,7 +17,7 @@ extern "C"
 {
   #include <libnpuhost.h>
   #include <npubinfmt.h>
-  #include "../ne_test_utils.h"
+  #include <ne_test_utils.h>
 }
 
 enum LOCAL_CONSTANTS {
similarity index 59%
rename from src/test/meson.build
rename to tests/utils/meson.build
index 39630e7..5637f43 100644 (file)
@@ -1,9 +1,8 @@
 # Build library
+ne_test_utils_inc = include_directories('.')
 ne_test_utils_src = ['ne_test_utils.c']
 
 ne_test_utils_dep = declare_dependency(
   sources : ne_test_utils_src,
+  include_directories : ne_test_utils_inc,
 )
-
-subdir('unittests')
-subdir('apptests')