sencha robots: add soundstream sanity check
Checks the output of the soundstream dmeo. This assumes the demo is setup
to run one iteration of the input loop with a 2000 sample audio buffer.
Bypass-Presubmit-Reason: no CI tests (but soon)
Change-Id: If313611dd932c8beda8231feb4a7dd4a30c4dc35
diff --git a/resources/sencha.resource b/resources/sencha.resource
index eb68338..d5b8705 100644
--- a/resources/sencha.resource
+++ b/resources/sencha.resource
@@ -9,3 +9,18 @@
Execute Command showAnalyzer "smc-uart-analyzer" ${SMC_UART} Antmicro.Renode.Analyzers.LoggingUartAnalyzer
# Add SMC_UART virtual time so we can check the machine execution time
Execute Command smc-uart-analyzer TimestampFormat Virtual
+ Execute Command sysbus.cpu1 IsHalted false
+
+Prepare SenchaMachine
+ Execute Command path set @${ROOTDIR}
+ Execute Command $repl_file=@sim/config/platforms/sencha.repl
+ Execute Command $tar=@out/cheriot/sencha/release/ext_flash.tar
+ Execute Command $cheriot_elf=@${CHERIOT_OUTDIR}/soundstream-firmware
+ Set Default Uart Timeout 20
+ Create Log Tester ${LOG_TIMEOUT}
+ Execute Script sim/config/sencha.resc
+ Execute Command showAnalyzer "smc-uart-analyzer" ${SMC_UART} Antmicro.Renode.Analyzers.LoggingUartAnalyzer
+ # Add SMC_UART virtual time so we can check the machine execution time
+ Execute Command smc-uart-analyzer TimestampFormat Virtual
+ Execute Command cpu0 IsHalted false
+
diff --git a/sencha_soundstream.robot b/sencha_soundstream.robot
new file mode 100644
index 0000000..fb39d24
--- /dev/null
+++ b/sencha_soundstream.robot
@@ -0,0 +1,42 @@
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Comments ***
+Tests for sencha system from bootup to running one iteration of the soundstream demo.
+
+*** Settings ***
+Resource resources/sencha.resource
+Variables variables/common.py
+Variables variables/${PLATFORM}_${BUILD_TYPE}.py
+
+*** Test Cases ***
+Test Soundstream
+ Prepare SenchaMachine
+ Start Emulation
+ Create Terminal Tester ${SMC_UART}
+
+ Wait For Line On Uart SOUNDSTREAM: soundstream (Thread 0x1)
+ Wait For Line On Uart SOUNDSTREAM: Setup complete
+ Wait For Line On Uart SOUNDSTREAM: Start recording
+ Wait For Line On Uart SOUNDSTREAM: Done recording
+ Wait For Line On Uart SOUNDSTREAM: Processing recorded audio
+
+ # NB: one audio collection generates 6 ML ops
+ FOR ${iter} IN RANGE 5
+ Wait For Line On Uart SOUNDSTREAM: Iteration ${iter}
+ Wait For Line On Uart SOUNDSTREAM: [sound]::ENCODER:
+ END
+ Wait For Line On Uart SOUNDSTREAM: [sound]::ENCODER: done
+
+ Wait For Line On Uart SOUNDSTREAM: Done with processing