Commit Graph

45 Commits

Author SHA1 Message Date
Keyon Jie 4572a5a59d test: topology: includes utils.m4 first
Move the including of utils.m4 to first as it is needed by other
component m4 files.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2020-08-13 20:58:38 +08:00
Pin-chih Lin 3b5447b379 tools: topology: Support multi-output playback topology
Support up to 4 output pipelines for test/topology/test-playback.m4, where
argument TEST_PIPE_AMOUNT is added for identifying the number of pipelines
while generating test topologies.

Multi-output component should be added in ALG_MULTI_MODE_TESTS and
ALG_MULTI_SIMPLE_TESTS to generate test topologies with multiple output
pipelines in the future.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2020-08-06 12:25:14 +01:00
Marc Herbert 11ee3b872b tplg-build.sh: invoke m4 with --fatal-warnings
Also use || exit 255 to stop xargs from burying the error message(s).

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2020-05-20 22:16:52 +01:00
Marc Herbert cff1bb62b0 tplg-build.sh: add NO_PROCESSORS, use VERBOSE more.
Zero functional change and 100% identical outputs.

Also add some comments.

Interestingly, -P$(nproc) is a tiny bit faster than -P0 on my
system. Thrashing?

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2020-05-20 22:16:52 +01:00
Marc Herbert 19745de6e3 scripts/testbench: add set -e
Let's stop ignoring build and test failures. Start gradually with the
scripts involved in testbench, more files later.

Follow-up to to bug #2752 "host-testbench.sh ignores errors" and commit
ab421466af ("CI: Travis: enable host testbnech again") and
ab421466aff826~1

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2020-05-18 13:41:01 +01:00
Seppo Ingalsuo 167d0a0667 Tools: Test: Improve processing components objective quality tests
The main change in this patch is to allow process_test to use
frequency dependent masks for frequency response and THD+N. It
allows tests with pass/fail criteria for components like EQs
and DCblock. SRC test not really changed but the small changes
in passing test controls are updated there as well.

In EQs tests the process test can decode the theoretical response
from setup blob. The measured frequency response is compared to
that.

The test print and plot output look is improved for nicer reports.
The runtime plots opening is disabled for batch mode operation
but the plots now appear to test output directory in png format.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-07 17:30:40 +01:00
Seppo Ingalsuo 31a6a27ece Tools: Test: Relax signal level pass criteria in quick chirp test
The criteria of overall -3 dB RMS attenuation was too tight
for sample EQ responses to pass. With new -6 dB criteria the
used EQ loudness responses do not trigger error.

The chirp test is only a quick generic component health check so this
is not critical. The other AES17 tests will catch minor characteristic
changes.

The other changes are cosmetic and improve result print and plot
output look.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-07 17:30:40 +01:00
Seppo Ingalsuo 6f8a15bcfd Tools: Test: Fix mistake with multi-channel gain result print
This fixes a messy looking print line in the test output.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-07 17:30:40 +01:00
Seppo Ingalsuo 509a906426 Tools: Test: Improve Matlab compatibility
The function getpid() is only available in Octave. Instead use
a random integer number as identification to avoid conflict with
possible several simultaneous simulations with temporary files.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-07 17:30:40 +01:00
Seppo Ingalsuo 0f878a7312 Tools: Test: Change IIR and FIR response in playback test topologies
This patch changes the response for both EQ types into loudness
shape (bass boost, mid attenuate, high boost) that is a useful
in validating EQs functionality. The previous flat response does
not exercise thoroughly the processing functions.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-07 17:30:40 +01:00
Seppo Ingalsuo 80f6e0698f Tools: Test: Add objective quality tests for processing components
This patch adds an Octave test script process_test.m to audio processing
components like FIR and IIR EQ.

Parts of src_test.m are moved to common functions to ease printing of
test results matrix.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-16 11:48:22 +01:00
Marc Herbert 5e3bc9c11c tools/test: silence alsatplg in tlpg-build.sh unless VERBOSE=1
With this commit:
                  ./scripts/build-tools.sh -t -f | wc -l
     525
VERBOSE=anything  ./scripts/build-tools.sh -t -f | wc -l
  137030

This a followup to commit aa6c0f2ad1 ("topology: cmake: silence super
chatty alsatplg unless VERBOSE=1")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2020-04-08 10:02:27 +01:00
Pan Xiuli a2ac3c3197 sripts: update host-testbench to work with latest code
Enable 3 simple test with host-testbench:
volume, src and eqiir
Usage:
./scripts/build-tools.sh -t
./scripts/host-build-all.sh
./scripts/host-testbench.sh

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-04-03 09:13:03 +01:00
Sebastiano Carlucci 0cf80e2d32 tools: test: Add DC Block test case to tplg-build
This commit includes a new test case in tplg-build.sh. It also includes
the new simple pipelines pipe-dcblock-capture/playback. Those new
pipelines are used by tplg-build.sh to generate the test pipelines.

Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
2020-03-26 16:49:37 +00:00
Seppo Ingalsuo 3ce54df7b8 Tools: Test: Audio: Add double quotes to shell scripts
This patch adds the double quotes to shell scripts to avoid fails
with arguments or shell variables when there are space characters.

The processing components run scripts are all edited for better
structure with functions usage() and main() and with local variables
within functions.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-03-26 10:03:16 +00:00
Seppo Ingalsuo ce1401f62a Tools: Test: Cleanup component run scripts
The src_run.sh is converted into a generic component run script
that is called by new simple component specific scripts asrc_run.sh,
eqfir_run.sh, eqiir_run.sh, src_run.sh, and volume_run.sh.

Note: The testbench does not yet have fully working capture support
so the direction is not exposed yet.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-03-20 13:29:00 +00:00
Seppo Ingalsuo 109450e6fd Tools: Test: Update SRC testbench run script
This patch updates the SRC to run with the updated test topologies
set. The script is also cleaned up a bit.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-26 22:29:10 +00:00
Seppo Ingalsuo fc167f5e56 Tools: Test: Clean up test topologies build and update pipeline macros
This patch updates the tplg-build.sh script by omitting DMIC capture
test topologies generation, tone topolgies generation due to no
use and no maintenance. They can be fixed later.

The all DAI permutations are generated only for volume pipeline. The
src is removed. Instead a new algorithms topologies generation loop
is added for UP2 (APL) compatible topologies. The algorithms are
ASRC, FIR, IIR, and SRC.

The test-all, capture, playback macros are updated to use
PIPELINE_PCM_ADD and set up DAI for SCHEDULE_TIME_DOMAIN_TIMER. The
duplication of TEST_DAI_PORT in macro call is replaced by 0 to
prevent topology load fail on device.

The test-equalizer-playback-ssp.m4 is removed as obsolete.

Pipelines are added for FIR and IIR playback and capture. SRC playback
pipeline is improved by making tokens instance specific. The SRC
capture pipeline macro is only cosmetically improved.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-26 22:29:10 +00:00
Pan Xiuli 92ccbe2bfb tools: test: remove qa test cases
test cases used by CI and QA is now in sof-test
https://github.com/thesofproject/sof-test

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-01-20 16:32:50 +00:00
Seppo Ingalsuo a62f562378 ASRC: Add topology files
This patch adds all the topology files related parts and two complete
test topologies to test ASRC playback and capture with APL platform.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-11-27 09:49:48 +00:00
Seppo Ingalsuo 1dbd14b30d Testbench: Improve test begin and end marker tones find
Chirp test signals confused the test signal begin marker position
seek and caused false test fails. The test stimulus may produce
stronger cross correlation level than the actual marker. Also
the check omitted that the cross correlation max could be negative
so the test was changed into power domain and use first/last
cross correlation peak above threshold as test begin/end position.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-10-21 21:20:11 +02:00
Seppo Ingalsuo 0324516ec3 Testbench: SRC: Relax gain test tolerance
Gain of SRC varies by 1 dB due built-in attenuation in the filter
coefficients. It was added to avoid signal overshoots to distort
with some challenging music content. When a converter consists of
two filters in series the attenuation duplicates. While SRC is
missing the gain compensation the test criteria needs to be relaxed.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-10-21 21:20:11 +02:00
Seppo Ingalsuo 81f8de93c5 Tools: Test: Updates for testbench to match other changes in SOF
This patch updates the locations of "make install" libraries default
install locations into shell script to run SRC test cases. The script
also now prints the used LD_LIBRARY path to ease setting up code
debugging.

The segfault of testbench executable is fixed by returning a valid
pointer reference instead of a NULL from test dummy function
arch_schedulers_get().  The rest of testbench version of schedule.c
was also updated to be like the current real version module.

Finally in the testbench.c main the file names string pointers are
initilizated to null as well as the word length parameter to avoid
a segfault if executable is started without command line arguments
to see the usage help text.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-09-18 20:50:50 +02:00
Seppo Ingalsuo 573e0b17b3 Tools: Audio quality test for ssh accessible device
This patch adds a shell script sof_test_perf.sh that measures
gain, frequency response, and total harmonic distortion plus
noise for a remote device.

Matlab or Octave is needed. The shell script launches by default
Octave to process the signal generation and test results analysis
scripts.

The remote device must be set to be accessible by ssh without
passwords. An external high quality USB sound card is recommended
as analog interface to connect to test device's analog interface.

The configuration file sof_test_perf_config.m must be edited for
the remote device's user account, audio device, audio format, and
capture sound card audio device, and audio format.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-09-17 15:40:29 +01:00
Jaska Uimonen 77b6db8894 topology: enable pcm range and pipeline rate and remove frame count
Enable setting pcm min and max rate from top level m4 pipeline macro.
This way it is possible to configure the whole pipeline to correct
samplerate range in 1 file. Previously you needed to modify the pipeline
macros where the rate was hardcoded. As the frame count is calculated
from pcm/dai rate and scheduling time the frame count is obsolete.

Introduce pipeline rate parameter to help configuring components with
fixed output rate. We can't deduce this from pcm range since for example
src might accept bigger max rate than the following dai. Even though the
parameter is named "pipeline rate" it essentially means the "final"
output rate to which this pipeline is connected to (dai or other
pipeline). In capture pipelines it means the originating fixed dai rate.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-08-15 14:29:22 +02:00
Seppo Ingalsuo 909b790235 Topology: Add SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS token
This patch adds to all DMIC related topologies the new token
SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS. The value is set to 400
to correspond to 400 milliseconds long unmute ramp time. The
topology defined unmute will override the firmware internal
hard coded value if it is set in topology.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-06-17 21:47:31 +01:00
Janusz Jankowski ba2fefb172 license: use spdx identifier in shell scripts
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-06-02 16:38:17 +01:00
Janusz Jankowski e99bae6187 tools: fix sh-bang in scripts
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-06-02 16:38:17 +01:00
Janusz Jankowski c6064624f6 cmake: add spdx license identifier
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-06-02 16:38:17 +01:00
Seppo Ingalsuo 31e67a227c Testbench: Update SRC tests criteria for lower 16 bit quality data
The tests created lot of unnecessary fails when testing with S16_LE
format. The test pass criteria for THD+N, DR is relaxed for tests
with 16 bit data.

Since the gain of SRC conversions was lowered to -1 dB the test
case for gain need to be updated. The gain is retrieved from
src_param() function. An exception is added for FS1 == FS2 case
when data is passed through. In that case expected gain is 0 dB.

The frequency response measurement grid does not necessarily cover
the exact upper frequency of pass-band. Therefore the min. upper
passband frequency is scaled by 0.99. This avoids measurement
technique related fails in test.

The chirp spectra test case was updated to use for RMS level criteria
for testing the level of signal. The peak level was less robust and
caused unnecessary test fails.

The option to not open plot windows during test is set. It improves
speed of test and avoids display clutter.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-11 09:28:44 +02:00
Seppo Ingalsuo dea1f82b2a Testbench: Update SRC run script
This patch updates the testbench binary path into current default
install location when built with scripts/host-build-all.sh.

The path to test topologies is updated also.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-11 09:28:44 +02:00
Janusz Jankowski 3caeefd824 tools: scripts: update host installation path
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-04-05 15:01:44 +01:00
Xun Zhang cbbc6afd35 tools: test: topology: add argument to fix build error in test tplg
Add one argument in test-tone-playback.m4 to fix the building error
of insufficient PIPELINE_ADD arguments.

Signed-off-by: Xun Zhang <xun2.zhang@intel.com>
2019-04-03 21:39:42 +01:00
Guennadi Liakhovetski 01f1a4aeae tools: fix a typo
"Formate" and "format" are two different words, in this case it's
"format" that is meant.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2019-03-14 10:13:22 +00:00
Zhang Keqiao 95e762f835 test: add a script for pause/release stress test
This script is used to test pause/release audio stream

Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
2019-03-01 18:14:44 +00:00
Zhang Keqiao 0097215afc test: fix a typo, Add a colon to option that have parameter
Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
2019-03-01 18:10:15 +00:00
Jiangxinx 82d29e099c Fix issue 1039: Kernel QA scripts are broken.
Signed-off-by: Jiangxinx <xinx.jiang@intel.com>
2019-02-25 16:36:30 +00:00
Janusz Jankowski dff70c4490 cmake: tools: remove autotools
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-02-14 18:00:26 +00:00
Janusz Jankowski 1704bfcb95 cmake: tools: test
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-02-14 18:00:26 +00:00
Janusz Jankowski 67597453ec tools: tplg-build custom output dir
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-02-14 18:00:26 +00:00
Zhang Keqiao eca416ad79 test: add a script for xrun injection test
This script is used to check the ability of alsa xrun handling

Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
2019-01-21 21:41:22 +00:00
Seppo Ingalsuo 81e0333e19 Testbench: Add S16_LE format test for SRC
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-01-09 16:30:58 +00:00
Zhang Keqiao 0a57440a35 test: add a script for multiplex pipeline stress test
This script is used for simultaneous playback/capture test on
arbitrary multiple pipelines.

Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
2019-01-08 15:32:31 +00:00
Seppo Ingalsuo 0526077c87 Tools: Update SRC tool for 50 kHz modes, SRC testbench, add topology
This patch adds 50 kHz into SRC generator script for std and tiny
profiles. The src generator script is cleaned up and the default
conversion matrix is moved into caller script for easier maintenance.
The plots appearance is improved and the generated coefficients code
look is improved to pass the git pre- and post-commit script
requirements.

The SRC test bench scripts are updated for changed locations. A SRC
playback topology is used for test bench and real device usage.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-12-18 11:29:32 +00:00
Curtis Malainey 5b5888ce07 Move SOFT into sub folder for SOF merge
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
2018-11-24 23:27:24 -08:00