I’ve recently starting a project with VisualGDB and was looking to have it integrate with Continuous Integration. I’ve done CI with a previous C++ project so I’m comfortable with using the command line to build and run unit test exes however, embedded work adds a different level of difficulty!
I’ve been trying to get VisualGDB to build via the cmd line by using “VisualGDB.exe /solution Solution.sln” but keep getting “Build/launch failed: Data at the root level is invalid. Line 1, position 1.” so unsure what’s happening here. And secondly with regards to running unit tests on the embedded system, STM32F4 in my case. Once again, I’m fine with running code on the board through the debugger and stepping through in visual studio but just curious how to integrate this in with CI? Am I able to flash and run the board via OpenOCD? or VisualGDB? This bit is some what out of my depth! I’ve looked through your tutorials regarding Improving Firmware through Unit Tests and was able to run the unit tests on board but struggling to do so via the cmd line! Once I’m able to run these via cmd line then CI comes naturally!
Hopefully, you’ll be able to answer these and I hope I’m not missing something simple!
Please try setting the VISUALGDB_VERBOSE_OUTPUT and VISUALGDB_SHOW_DIAGNOSTIC_OUTPUT variables to 1 before running VisualGDB. This should produce a much more detailed error message, that should help us pinpoint the root cause (likely one of the XML files being corrupt).
VisualGDB runs unit tests on the hardware by automatically programming the target with OpenOCD (or J-Link depending on the project configuration), reading structured test reports via semihosting and reporting the results to VS. Normally all you need to do is run VisualGDB.exe /runtests <test container file> on a machine/user account where you would be normally able to debug the project (i.e. that has all the necessary packages installed) and VisualGDB will do everything automatically and will generate a report file (see output from running VisualGDB without arguments for a detailed list of the supported switches).
Let us know if you have any further questions and we will be happy to help.