MBed Greentea testing framework resulting in SYNC_FAILED for all unit tests

Board: In-house designed/assemble board using the STM32F767ZIT6 microchip.

I’m facing similar issues with my custom STM32 NUCLEO Board. Pins are 1 to 1 compatible, so . I doubt its a hardware issue? I’m running my greentea on macOS 10.14.6. Thoughts?

We’ve seen the same issue before here: https://github.com/ARMmbed/mbed-os/issues/4301

This seems to happen only on Mac and it’s somehow be related to greentea client running on the device.
Would you be able to try a few things for us?

Thanks

Marcelo,

Already tried the following recommendation, no improvements are seen. Furthermore, NUCLEO_F767ZI also faces sync_fail issue in 5.14.2 and 5.15.0 on Ubutun 18.04.

Build successes:
  * NUCLEO_F767ZI::GCC_ARM::MBED-BUILD
  * NUCLEO_F767ZI::GCC_ARM::SRC-DATASTRUCTCONVERSION-TESTS-DATASTRUCTCONVERSION-UNIT_TEST
[mbed-777] Exec "mbedgt --test-spec ./BUILD/tests/NUCLEO_F767ZI/GCC_ARM-TINY_DEBUG/test_spec.json -n src-datastructconversion-* -V" in "/home/yapziqi/Documents/REPOSITORIES/manuca-core"
[1579591825.70][root]Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt
[1579591825.72][root]Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt
mbedgt: greentea test automation tool ver. 1.7.4
mbedgt: test specification file './BUILD/tests/NUCLEO_F767ZI/GCC_ARM-TINY_DEBUG/test_spec.json' (specified with --test-spec option)
mbedgt: using './BUILD/tests/NUCLEO_F767ZI/GCC_ARM-TINY_DEBUG/test_spec.json' from current directory!
mbedgt: detecting connected mbed-enabled devices...
mbedgt: detected 1 device
	| platform_name | platform_name_unique | serial_port  | mount_point                | target_id                |
	|---------------|----------------------|--------------|----------------------------|--------------------------|
	| NUCLEO_F767ZI | NUCLEO_F767ZI[0]     | /dev/ttyACM0 | /media/yapziqi/NODE_F767ZI | 08180221012469363E60F013 |
mbedgt: processing target 'NUCLEO_F767ZI' toolchain 'GCC_ARM' compatible platforms... (note: switch set to --parallel 1)
	| platform_name | platform_name_unique | serial_port         | mount_point                | target_id                |
	|---------------|----------------------|---------------------|----------------------------|--------------------------|
	| NUCLEO_F767ZI | NUCLEO_F767ZI[0]     | /dev/ttyACM0:115200 | /media/yapziqi/NODE_F767ZI | 08180221012469363E60F013 |
mbedgt: test case filter (specified with -n option)
	src-datastructconversion-*
	test filtered in 'src-datastructconversion-tests-datastructconversion-unit_test'
mbedgt: running 1 test for platform 'NUCLEO_F767ZI' and toolchain 'GCC_ARM'
	use 1 instance of execution threads for testing
mbedgt: checking for 'host_tests' directory above image directory structure
	'host_tests' directory not found: two directory levels above image path checked
mbedgt: selecting test case observer...
	calling mbedhtrun: mbedhtrun -m NUCLEO_F767ZI -p /dev/ttyACM0:115200 -f "BUILD/tests/NUCLEO_F767ZI/GCC_ARM-TINY_DEBUG/src/DatastructConversion/TESTS/DatastructConversion/unit_test/unit_test.bin" -d /media/yapziqi/NODE_F767ZI -c default -t 08180221012469363E60F013 -r default -C 4 --sync 5 -P 60
mbedgt: mbed-host-test-runner: started
[1579591826.31][HTST][INF] host test executor ver. 0.0.12
[1579591826.31][HTST][INF] copy image onto target...
[1579591826.31][COPY][INF] Waiting up to 60 sec for '08180221012469363E60F013' mount point (current is '/media/yapziqi/NODE_F767ZI')...
[1579591842.97][HTST][INF] starting host test process...
[1579591842.97][CONN][INF] starting connection process...
[1579591842.97][CONN][INF] notify event queue about extra 60 sec timeout for serial port pooling
[1579591842.97][CONN][INF] initializing serial port listener...
[1579591842.97][PLGN][INF] Waiting up to 60 sec for '08180221012469363E60F013' serial port (current is '/dev/ttyACM0')...
[1579591842.97][HTST][INF] setting timeout to: 60 sec
[1579591842.98][SERI][INF] serial(port=/dev/ttyACM0, baudrate=115200, read_timeout=0.01, write_timeout=5)
[1579591842.98][SERI][INF] reset device using 'default' plugin...
[1579591843.09][SERI][INF] waiting 1.00 sec after reset
[1579591844.09][SERI][INF] wait for it...
[1579591844.10][SERI][TXD] mbedmbedmbedmbedmbedmbedmbedmbedmbedmbed
[1579591844.10][CONN][INF] sending up to 5 __sync packets (specified with --sync=5)
[1579591844.10][CONN][INF] sending preamble 'b329c46a-8541-40ff-9c8d-9a7533bd3914'
[1579591844.10][SERI][TXD] {{__sync;b329c46a-8541-40ff-9c8d-9a7533bd3914}}
[1579591844.11][CONN][WRN] UnicodeDecodeError encountered!
[1579591844.12][CONN][RXD]  Mbed Bootloader
[1579591844.12][CONN][RXD] [BOOT] ARM: 00000000000000000000
[1579591844.12][CONN][RXD] [BOOT] OEM: 00000000000000000000
[1579591844.12][CONN][RXD] [BOOT] Layout: 0 8009568
[1579591844.12][CONN][RXD] [BOOT] Application's start address: 0x8010400
[1579591844.12][CONN][RXD] [BOOT] Application's jump address: 0x8021265
[1579591844.12][CONN][RXD] [BOOT] Application's stack address: 0x20080000
[1579591844.12][CONN][RXD] [BOOT] Forwarding to application...
[1579591849.11][CONN][INF] Reset the part and send in new preamble...
[1579591849.11][SERI][INF] reset device using 'default' plugin...
[1579591849.22][SERI][INF] waiting 1.00 sec after reset
[1579591850.22][SERI][INF] wait for it...
[1579591850.22][CONN][INF] resending new preamble 'ac06031c-0176-400a-890f-7cdc67d33fb0' after 5.00 sec
[1579591850.22][SERI][TXD] {{__sync;ac06031c-0176-400a-890f-7cdc67d33fb0}}
[1579591855.22][CONN][INF] Reset the part and send in new preamble...
[1579591855.22][SERI][INF] reset device using 'default' plugin...
[1579591855.33][SERI][INF] waiting 1.00 sec after reset
[1579591856.33][SERI][INF] wait for it...
[1579591856.33][CONN][INF] resending new preamble 'a54ff5d0-c304-49d9-86e9-0082ee31bbae' after 5.00 sec
[1579591856.34][SERI][TXD] {{__sync;a54ff5d0-c304-49d9-86e9-0082ee31bbae}}
[1579591861.34][CONN][INF] Reset the part and send in new preamble...
[1579591861.34][SERI][INF] reset device using 'default' plugin...
[1579591861.45][SERI][INF] waiting 1.00 sec after reset
[1579591862.45][SERI][INF] wait for it...
[1579591862.45][CONN][INF] resending new preamble '972a4cdb-d34f-4507-b605-716d2c3fe645' after 5.01 sec
[1579591862.46][SERI][TXD] {{__sync;972a4cdb-d34f-4507-b605-716d2c3fe645}}
[1579591867.47][CONN][INF] Reset the part and send in new preamble...
[1579591867.47][SERI][INF] reset device using 'default' plugin...
[1579591867.58][SERI][INF] waiting 1.00 sec after reset
[1579591868.58][SERI][INF] wait for it...
[1579591868.58][CONN][INF] resending new preamble '98ead0a9-7e4e-44b8-82e9-a3ed62784671' after 5.01 sec
[1579591868.58][SERI][TXD] {{__sync;98ead0a9-7e4e-44b8-82e9-a3ed62784671}}
[1579591868.59][HTST][ERR] None
[1579591868.59][HTST][WRN] stopped to consume events due to __notify_sync_failed event
[1579591868.60][HTST][INF] __exit_event_queue received
[1579591868.60][HTST][INF] test suite run finished after 25.62 sec...
[1579591868.60][HTST][INF] CONN exited with code: 0
[1579591868.60][HTST][INF] No events in queue
[1579591868.60][HTST][INF] host test result() call skipped, received: sync_failed
[1579591868.60][HTST][WRN] missing __exit event from DUT
[1579591868.60][HTST][INF] calling blocking teardown()
[1579591868.60][HTST][INF] teardown() finished
[1579591868.60][HTST][INF] {{result;sync_failed}}
mbedgt: retry mbedhtrun 1/1
mbedgt: ['mbedhtrun', '-m', u'NUCLEO_F767ZI', '-p', '/dev/ttyACM0:115200', '-f', u'"BUILD/tests/NUCLEO_F767ZI/GCC_ARM-TINY_DEBUG/src/DatastructConversion/TESTS/DatastructConversion/unit_test/unit_test.bin"', '-d', u'/media/yapziqi/NODE_F767ZI', '-c', 'default', '-t', u'08180221012469363E60F013', '-r', 'default', '-C', '4', '--sync', '5', '-P', '60'] failed after 1 count
mbedgt: checking for GCOV data...
mbedgt: mbed-host-test-runner: stopped and returned 'SYNC_FAILED'
mbedgt: test case summary event not found
	no test case report present, assuming test suite to be a single test case!
	test suite: src-datastructconversion-tests-datastructconversion-unit_test
	test case: src-datastructconversion-tests-datastructconversion-unit_test
mbedgt: test on hardware with target id: 08180221012469363E60F013
mbedgt: test suite 'src-datastructconversion-tests-datastructconversion-unit_test' ................... SYNC_FAILED in 42.60 sec
	test case: 'src-datastructconversion-tests-datastructconversion-unit_test' ................... ERROR in 42.60 sec
mbedgt: test case summary: 0 passes, 1 failure
mbedgt: all tests finished!
mbedgt: shuffle seed: 0.5253413871
mbedgt: test suite report:
| target                | platform_name | test suite                                                    | result      | elapsed_time (sec) | copy_method |
|-----------------------|---------------|---------------------------------------------------------------|-------------|--------------------|-------------|
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | src-datastructconversion-tests-datastructconversion-unit_test | SYNC_FAILED | 42.6               | default     |
mbedgt: test suite results: 1 SYNC_FAILED
mbedgt: test case report:
| target                | platform_name | test suite                                                    | test case                                                     | passed | failed | result | elapsed_time (sec) |
|-----------------------|---------------|---------------------------------------------------------------|---------------------------------------------------------------|--------|--------|--------|--------------------|
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | src-datastructconversion-tests-datastructconversion-unit_test | src-datastructconversion-tests-datastructconversion-unit_test | 0      | 1      | ERROR  | 42.6               |
mbedgt: test case results: 1 ERROR
mbedgt: completed in 42.93 sec
mbedgt: exited with code 1
[mbed-777] ERROR: "mbedgt" returned error.
       Code: 1
       Path: "/home/yapziqi/Documents/REPOSITORIES/manuca-core"
       Command: "mbedgt --test-spec ./BUILD/tests/NUCLEO_F767ZI/GCC_ARM-TINY_DEBUG/test_spec.json -n src-datastructconversion-* -V"
       Tip: You could retry the last command with "-v" flag for verbose output

In mbed-os release notes, stating the release is tested to the boards listed, which OS is/are the test ran with?

This shows MBed Greentea testing framework resulting in SYNC. JSON which stands for Javascript Object Notation used to store data structures and their objects in JSON format. It is a standard data interchange format. Basically, it is used for transmitting data between a web application and server. file extension json is similar to the xml files.