[Dist/Tizen] Generate multi-layer data for application test
authorWook Song <wook16.song@samsung.com>
Wed, 27 Nov 2019 02:07:01 +0000 (11:07 +0900)
committer임근식/On-Device Lab(SR)/Principal Engineer/삼성전자 <geunsik.lim@samsung.com>
Wed, 27 Nov 2019 07:31:43 +0000 (16:31 +0900)
This patch removes the tarball containing multi-layer test data and
makes those test data be generated at build time.

Signed-off-by: Wook Song <wook16.song@samsung.com>
packaging/npu-engine.spec
tools/gen-testdata/meson.build

index a51cb64..67c38d9 100644 (file)
@@ -1,5 +1,5 @@
 %define   neexampledir %{_libdir}/npu-engine/bin
-%define   testdatadir_raw   %{_datadir}/npuvision/testdata
+%define   testdatadir_single_raw   %{_datadir}/npuvision/testdata
 %define   testdatadir_out   %{_datadir}/npu-engine/testdata
 
 Name:          npu-engine
@@ -29,6 +29,8 @@ BuildRequires:  gtest-devel
 
 # for testdata generation
 BuildRequires:  libnpuvision-testdata
+BuildRequires:  libnpuvision-devel
+BuildRequires:  npu-encoder
 BuildRequires:  npu-encoder-testdata
 BuildRequires:  python
 
@@ -39,8 +41,6 @@ BuildRequires:  lcov
 
 # NPU emulation dependency (used in unittests only)
 %if 0%{?unit_test}
-BuildRequires:  libnpuvision-devel
-
 %define enable_npu_emul true
 
 # valgrind requires the same arch with host (x86_64)
@@ -82,17 +82,33 @@ ninja -C build %{?_smp_mflags}
 
 # Install Core (NPU-Engine)
 DESTDIR=%{buildroot} ninja install -C build %{?_smp_mflags}
-find %{buildroot} -name gen-testdata -delete
-find %{buildroot} -name model_gen.py -delete
-find %{buildroot} -name single.tar.gz -delete
 
 # Install Test Data
 mkdir -p %{buildroot}%{testdatadir_out}/single
-find %{testdatadir_raw} -name 'core*' -type d -exec basename {} .asm \; | \
+# single layer
+find %{testdatadir_single_raw} -name 'core*' -type d -exec basename {} .asm \; | \
     xargs -I{} mkdir -p %{buildroot}%{testdatadir_out}/single/{}
-find %{testdatadir_raw} -name 'core*' -type d -exec basename {} .asm \; | \
+find %{testdatadir_single_raw} -name 'core*' -type d -exec basename {} .asm \; | \
     xargs -I{} ./tools/gen-testdata/model_gen.py -s -o %{buildroot}%{testdatadir_out}/single/{} \
-    %{testdatadir_raw}/{}
+    %{testdatadir_single_raw}/{}
+
+# multi layer
+mkdir -p multi-intermediate
+pushd multi-intermediate
+find %{_builddir} -name gen-testdata -type f -exec {} \;
+find . -name 'testcase*' -type d -exec basename {} \; | \
+    xargs -I{} %{_bindir}/encoder {}/program.asm {}/program.bin
+find . -name 'testcase*' -type d -exec basename {} \; | \
+    xargs -I{} mkdir -p %{buildroot}%{testdatadir_out}/multi/{}
+popd
+find ./multi-intermediate -name 'testcase*' -type d -exec basename {} \; | \
+    xargs -I{} ./tools/gen-testdata/model_gen.py -o %{buildroot}%{testdatadir_out}/multi/{} \
+    ./multi-intermediate/{}
+
+# clean up
+find %{buildroot} -name gen-testdata -delete
+find %{buildroot} -name model_gen.py -delete
+find %{buildroot} -name multi.tar.gz -delete
 
 # Perform unit tests
 %check
@@ -117,10 +133,8 @@ find %{testdatadir_raw} -name 'core*' -type d -exec basename {} .asm \; | \
   popd
 
   # Run example_visa
-  tar zxf tools/gen-testdata/multi.tar.gz
   ./build/src/test/apptests/apptest_example_visa %{buildroot}%{testdatadir_out}/single
-  ./build/src/test/apptests/apptest_example_visa multi
-  rm -rf multi
+  ./build/src/test/apptests/apptest_example_visa %{buildroot}%{testdatadir_out}/multi
 %endif
 # Analyze test coverage
 %if 0%{?test_coverage}
@@ -186,7 +200,7 @@ Note that the npu-example package (especailly, the application tests) requires t
 %files testdata
 %%defattr(-,root,root,-)
 %{_datadir}/npu-engine/testdata/single/*
-%{_datadir}/npu-engine/testdata/multi.tar.gz
+%{_datadir}/npu-engine/testdata/multi/*
 
 %package unittest-coverage
 Summary:  NPU Engine UnitTest Coverage Analysis Result
index 0f00c43..136a668 100644 (file)
@@ -1,15 +1,13 @@
 # Build tools
 
-if get_option('enable_npu_emul') and npuvision_dep.found()
-  gen_testdata_tool = executable('gen-testdata',
-      'testdata_gen.cpp',
-      dependencies : npuvision_dep,
-      install : true,
-      install_dir : ne_bindir)
+gen_testdata_tool = executable('gen-testdata',
+    'testdata_gen.cpp',
+    dependencies : dependency('libnpuvision'),
+    install : true,
+    install_dir : ne_bindir)
 
-  install_data('model_gen.py',
-      install_dir : ne_bindir)
-endif
+install_data('model_gen.py',
+    install_dir : ne_bindir)
 
 testdata_archives = ['multi.tar.gz']
 install_data(testdata_archives,