<p><b>@cladmi</b> approved this pull request.</p>

<p>Approved the <code>TERMDEPS</code> addition to <code>TEST_DEPS</code>. It fixes running tests where the term dependencies take a long time.<br>
As we cannot currently really test the in <code>murdock</code> part, I leave you the responsibility for this and I just test the sequence.</p>
<p>My local testing procedure is to define a <code>TERMDEPS</code> that takes 15 seconds on first call.</p>
<p>It can be done from the command line with</p>
<pre><code>export TERMDEPS=info-debug-variable-LONG_TERM_DEPS
export LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })'
</code></pre>
<p>Then I ran a <code>make clean flash test</code> procedure. (I assume no <code>-j</code> as I use <code>clean</code> to remove the <code>termdeps</code> instead of doing a manual removal).</p>
<details><summary>Local success with <code>native</code> in the PR</summary>
<pre><code>RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ clean flash test 
Building application "tests_bloom_bytes" for "native" with MCU "native".

   text    data     bss     dec     hex filename
  34573     648   48468   83689   146e9 /home/harter/work/git/RIOT/tests/bloom_bytes/bin/native/tests_bloom_bytes.elf
true 
termdeps

/home/harter/work/git/RIOT/tests/bloom_bytes/bin/native/tests_bloom_bytes.elf  
RIOT native interrupts/signals initialized.
LED_RED_OFF
LED_GREEN_ON
RIOT native board initialized.
RIOT native hardware initialization complete.

main(): This is RIOT! (Version: buildtest)
Testing Bloom filter.

m: 4096 k: 8

adding 512 elements took 2ms
checking 10000 elements took 26ms

267 elements probably in the filter.
9733 elements not in the filter.
0.026699 false positive rate.

All done!

</code></pre>
</details>
<details><summary>Local success with <code>iotlab-m3</code> in the PR</summary>
<pre><code>RIOT_CI_BUILD=1 BOARD=iotlab-m3 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ clean flash test 
Building application "tests_bloom_bytes" for "iotlab-m3" with MCU "stm32f1".

   text    data     bss     dec     hex filename
  14220     152    3352   17724    453c /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf
/home/harter/work/git/RIOT/dist/tools/openocd/openocd.sh flash /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf
### Flashing Target ###
GNU MCU Eclipse 64-bit Open On-Chip Debugger 0.10.0+dev-00462-gdd1d90111 (2019-01-18-11:37)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
trst_and_srst separate srst_nogate trst_push_pull srst_open_drain connect_assert_srst
Info : clock speed 1000 kHz
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : Listening on port 42759 for gdb connections
    TargetName         Type       Endian TapName            State       
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32f1x.cpu       cortex_m   little stm32f1x.cpu       reset
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
target halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0x08000460 msp: 0x20000200
auto erase enabled
Info : device id = 0x10016414
Info : flash size = 512kbytes
wrote 16384 bytes from file /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf in 0.727082s (22.006 KiB/s)
verified 14372 bytes in 0.236501s (59.345 KiB/s)
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
shutdown command invoked
Done flashing
termdeps

/home/harter/work/git/RIOT/dist/tools/pyterm/pyterm -p "/dev/ttyUSB1" -b "500000"
Twisted not available, please install it if you want to use pyterm's JSON capabilities
2019-07-04 11:46:54,319 - INFO # Connect to serial port /dev/ttyUSB1
Welcome to pyterm!
Type '/exit' to exit.
2019-07-04 11:46:57,765 - INFO # �main(): This is RIOT! (Version: buildtest)
2019-07-04 11:46:57,766 - INFO # Testing Bloom filter.
2019-07-04 11:46:57,766 - INFO # 
2019-07-04 11:46:57,767 - INFO # m: 4096 k: 8
2019-07-04 11:46:57,768 - INFO # 
2019-07-04 11:46:57,940 - INFO # adding 512 elements took 182ms
2019-07-04 11:46:59,444 - INFO # checking 10000 elements took 1494ms
2019-07-04 11:46:59,445 - INFO # 
2019-07-04 11:46:59,447 - INFO # 267 elements probably in the filter.
2019-07-04 11:46:59,448 - INFO # 9733 elements not in the filter.
2019-07-04 11:46:59,450 - INFO # 0.026700 false positive rate.
2019-07-04 11:46:59,450 - INFO # 
2019-07-04 11:46:59,451 - INFO # All done!
</code></pre>
</details>
<p>From master, it fails as the <code>TERM_DEPS</code> is done during the test:</p>
<details><summary>Failure with <code>native</code> in master</summary>
<pre><code>RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ clean flash test 
Building application "tests_bloom_bytes" for "native" with MCU "native".

   text    data     bss     dec     hex filename
  34573     648   48468   83689   146e9 /home/harter/work/git/RIOT/tests/bloom_bytes/bin/native/tests_bloom_bytes.elf
true 
Timeout in expect script at "child.expect_exact("Testing Bloom filter.")" (tests/bloom_bytes/tests/01-run.py:17)

/home/harter/work/git/RIOT/tests/bloom_bytes/../../Makefile.include:592: recipe for target 'test' failed
</code></pre>
</details>
<details><summary>Failure with <code>iotlab-m3</code> in master</summary>
<pre><code>RIOT_CI_BUILD=1 BOARD=iotlab-m3 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ clean flash test 
Building application "tests_bloom_bytes" for "iotlab-m3" with MCU "stm32f1".

   text    data     bss     dec     hex filename
  14220     152    3352   17724    453c /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf
/home/harter/work/git/RIOT/dist/tools/openocd/openocd.sh flash /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf
### Flashing Target ###
GNU MCU Eclipse 64-bit Open On-Chip Debugger 0.10.0+dev-00462-gdd1d90111 (2019-01-18-11:37)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
trst_and_srst separate srst_nogate trst_push_pull srst_open_drain connect_assert_srst
Info : clock speed 1000 kHz
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : Listening on port 36213 for gdb connections
    TargetName         Type       Endian TapName            State       
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32f1x.cpu       cortex_m   little stm32f1x.cpu       reset
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
target halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0x08000460 msp: 0x20000200
auto erase enabled
Info : device id = 0x10016414
Info : flash size = 512kbytes
wrote 16384 bytes from file /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf in 0.724787s (22.075 KiB/s)
verified 14372 bytes in 0.236192s (59.423 KiB/s)
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
shutdown command invoked
Done flashing
Timeout in expect script at "child.expect_exact("Testing Bloom filter.")" (tests/bloom_bytes/tests/01-run.py:17)

/home/harter/work/git/RIOT/tests/bloom_bytes/../../Makefile.include:592: recipe for target 'test' failed
make: *** [test] Error 1
</code></pre>
</details>
<p>The test sequence done by the <code>.murdock</code> script</p>
<details><summary>Separate steps with `native`</summary><code>RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/  clean


RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/  all
Building application "tests_bloom_bytes" for "native" with MCU "native".

   text    data     bss     dec     hex filename
  34573     648   48468   83689   146e9 /home/harter/work/git/RIOT/tests/bloom_bytes/bin/native/tests_bloom_bytes.elf


RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/  -j2 flash-only termdeps
true 
termdeps


RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/  test


/home/harter/work/git/RIOT/tests/bloom_bytes/bin/native/tests_bloom_bytes.elf  
RIOT native interrupts/signals initialized.
LED_RED_OFF
LED_GREEN_ON
RIOT native board initialized.
RIOT native hardware initialization complete.

main(): This is RIOT! (Version: buildtest)
Testing Bloom filter.

m: 4096 k: 8

adding 512 elements took 3ms
checking 10000 elements took 27ms

267 elements probably in the filter.
9733 elements not in the filter.
0.026699 false positive rate.

All done!
</code>
</details>
<details><summary>Separate steps with `iotlab-m3`</summary>
```
BOARD=iotlab-m3 RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ clean
<p>BOARD=iotlab-m3 RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/  all<br>
Building application "tests_bloom_bytes" for "iotlab-m3" with MCU "stm32f1".</p>
<p>text    data     bss     dec     hex filename<br>
14220     152    3352   17724    453c /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf</p>
<p>BOARD=iotlab-m3 RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ -j2 flash-only termdeps<br>
/home/harter/work/git/RIOT/dist/tools/openocd/openocd.sh flash /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf</p>
<h3>Flashing Target</h3>
<p>GNU MCU Eclipse 64-bit Open On-Chip Debugger 0.10.0+dev-00462-gdd1d90111 (2019-01-18-11:37)<br>
Licensed under GNU GPL v2<br>
For bug reports, read<br>
<a href="http://openocd.org/doc/doxygen/bugs.html" rel="nofollow">http://openocd.org/doc/doxygen/bugs.html</a><br>
Info : auto-selecting first available session transport "jtag". To override use 'transport select '.<br>
adapter speed: 1000 kHz<br>
adapter_nsrst_delay: 100<br>
jtag_ntrst_delay: 100<br>
none separate<br>
cortex_m reset_config sysresetreq<br>
trst_and_srst separate srst_nogate trst_push_pull srst_open_drain connect_assert_srst<br>
Info : clock speed 1000 kHz<br>
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)<br>
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)<br>
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints<br>
Info : Listening on port 38243 for gdb connections<br>
TargetName         Type       Endian TapName            State</p>
<hr>
<p>0* stm32f1x.cpu       cortex_m   little stm32f1x.cpu       reset<br>
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)<br>
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)<br>
target halted due to debug-request, current mode: Thread<br>
xPSR: 0x01000000 pc: 0x08000460 msp: 0x20000200<br>
auto erase enabled<br>
Info : device id = 0x10016414<br>
Info : flash size = 512kbytes<br>
wrote 16384 bytes from file /home/harter/work/git/RIOT/tests/bloom_bytes/bin/iotlab-m3/tests_bloom_bytes.elf in 0.726811s (22.014 KiB/s)<br>
verified 14372 bytes in 0.236981s (59.225 KiB/s)<br>
Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x3)<br>
Info : JTAG tap: stm32f1x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)<br>
shutdown command invoked<br>
Done flashing<br>
termdeps</p>
<p>BOARD=iotlab-m3 RIOT_CI_BUILD=1 TERMDEPS=info-debug-variable-LONG_TERM_DEPS LONG_TERM_DEPS='$$(test -f $(BINDIR)/termdeps || { echo termdeps; sleep 15; touch $(BINDIR)/termdeps; })' make --no-print-directory -C tests/bloom_bytes/ test</p>
<p>/home/harter/work/git/RIOT/dist/tools/pyterm/pyterm -p "/dev/ttyUSB1" -b "500000"<br>
Twisted not available, please install it if you want to use pyterm's JSON capabilities<br>
2019-07-04 11:54:55,065 - INFO # Connect to serial port /dev/ttyUSB1<br>
Welcome to pyterm!<br>
Type '/exit' to exit.<br>
2019-07-04 11:54:58,573 - INFO # �main(): This is RIOT! (Version: buildtest)<br>
2019-07-04 11:54:58,588 - INFO # Testing Bloom filter.<br>
2019-07-04 11:54:58,589 - INFO #<br>
2019-07-04 11:54:58,589 - INFO # m: 4096 k: 8<br>
2019-07-04 11:54:58,590 - INFO #<br>
2019-07-04 11:54:58,764 - INFO # adding 512 elements took 182ms<br>
2019-07-04 11:55:00,253 - INFO # checking 10000 elements took 1494ms<br>
2019-07-04 11:55:00,253 - INFO #<br>
2019-07-04 11:55:00,267 - INFO # 267 elements probably in the filter.<br>
2019-07-04 11:55:00,269 - INFO # 9733 elements not in the filter.<br>
2019-07-04 11:55:00,270 - INFO # 0.026700 false positive rate.<br>
2019-07-04 11:55:00,270 - INFO #<br>
2019-07-04 11:55:00,271 - INFO # All done!</p>
<pre><code></details>
</code></pre></details>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/11762?email_source=notifications&email_token=ABE7WYFIEU4WPVEW3TQ6SU3P5XCMLA5CNFSM4H4GQHOKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB5P7UEA#pullrequestreview-257948176">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYERUJNF4Q7OO75MHFDP5XCMLANCNFSM4H4GQHOA">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABE7WYCYOLB3PYJKH6Q6CTLP5XCMLA5CNFSM4H4GQHOKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB5P7UEA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/11762?email_source=notifications\u0026email_token=ABE7WYFIEU4WPVEW3TQ6SU3P5XCMLA5CNFSM4H4GQHOKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB5P7UEA#pullrequestreview-257948176",
"url": "https://github.com/RIOT-OS/RIOT/pull/11762?email_source=notifications\u0026email_token=ABE7WYFIEU4WPVEW3TQ6SU3P5XCMLA5CNFSM4H4GQHOKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB5P7UEA#pullrequestreview-257948176",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>