%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
# for testdata generation
BuildRequires: libnpuvision-testdata
+BuildRequires: libnpuvision-devel
+BuildRequires: npu-encoder
BuildRequires: npu-encoder-testdata
BuildRequires: python
# 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)
# 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
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}
%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
# 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,