thesofproject / sof-test

BSD 3-Clause "New" or "Revised" License
13 stars 46 forks source link

Add new Expect script `tools/apause.exp` #1218

Closed marc-hb closed 4 months ago

marc-hb commented 4 months ago

This all started as an effort to solve test failures caused by "MAX" volume. See #931 and others linked from there for more context.

Another obvious issue was the duplication of expect code across two tests (check-pause-resume.sh and multiple-pause-resume.sh)

After a bit of time actually "testing the tests" I realized the original author did not really understand expect or the problem. So I rewrote the entire expect part. The list of previous issues is a bit too long not to forget any but here are some:

cc:

marc-hb commented 4 months ago

stable-v2.2 results look good https://sof-ci.01.org/softestpr/PR1218/build598/devicetest/index.html

LNL failures in https://sof-ci.01.org/softestpr/PR1218/build600/devicetest/index.html are unrelated

marc-hb commented 4 months ago

NOCODEC timeouts in https://sof-ci.01.org/softestpr/PR1218/build597/devicetest/index.html :-( HDA is OK. Test just taking too long? More than 1h each time!

Same in https://sof-ci.01.org/softestpr/PR1218/build599/devicetest/index.html: only NOCODEC+multiple is timing out after 1+h, everything else is OK

Combinatorial explosion... already discussed in

declare -a pipeline_idx_lst=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5" [6]="6" [7]="7" [8]="8" [9]="9" [10]="10")

declare -a pipeline_combine_lst=([0]="0 1" [1]="0 2" [2]="0 3" [3]="0 4" [4]="0 5" [5]="0 6" [6]="0 7" [7]="0 8" [8]="0 9" [9]="0 10" [10]="1 2" [11]="1 3" [12]="1 4" [13]="1 5" [14]="1 6" [15]="1 7" [16]="1 8" [17]="1 9" [18]="1 10" [19]="2 3" [20]="2 4" [21]="2 5" [22]="2 6" [23]="2 7" [24]="2 8" [25]="2 9" [26]="2 10" [27]="3 4" [28]="3 5" [29]="3 6" [30]="3 7" [31]="3 8" [32]="3 9" [33]="3 10" [34]="4 5" [35]="4 6" [36]="4 7" [37]="4 8" [38]="4 9" [39]="4 10" [40]="5 6" [41]="5 7" [42]="5 8" [43]="5 9" [44]="5 10" [45]="6 7" [46]="6 8" [47]="6 9" [48]="6 10" [49]="7 8" [50]="7 9" [51]="7 10" [52]="8 9" [53]="8 10" [54]="9 10")

marc-hb commented 4 months ago

With the loop count reduced to 1 by default (also submitted separately at #1219), everything now passes:

https://sof-ci.01.org/softestpr/PR1218/build601/devicetest/index.html and https://sof-ci.01.org/softestpr/PR1218/build602/devicetest/index.html and https://sof-ci.01.org/softestpr/PR1218/build603/devicetest/index.html are all 100% green!

https://sof-ci.01.org/softestpr/PR1218/build604/devicetest/index.html?model=LNLM_RVP_HDA&testcase=check-pause-resume-playback-100 failed but it looks like an actual bug, not an issue with the test.

LNLM_SDW_AIOC failed because https://github.com/thesofproject/linux/issues/5098

marc-hb commented 4 months ago

https://sof-ci.01.org/softestpr/PR1218/build632/devicetest/index.html?model=LNLM_RVP_NOCODEC&testcase=multiple-pause-resume-50 ends in some infinite loop of overruns (which are not firmware errors?) but that seems like a real issue, not a problem with the test.

Everything else is 100% green https://sof-ci.01.org/softestpr/PR1218/build631/devicetest/index.html https://sof-ci.01.org/softestpr/PR1218/build629/devicetest/index.html https://sof-ci.01.org/softestpr/PR1218/build630/devicetest/index.html

marc-hb commented 4 months ago

Good example of MAX saturation timeout that would be addressed by this:

https://sof-ci.01.org/softestpr/PR1220/build633/devicetest/index.html?model=LNLM_RVP_HDA&testcase=check-pause-resume-capture-100