Intellisense configuration provider 'nordic-semiconductor.nrf-connect' does not provide completions for unit test projects

Completions for symbols in unity.h and custom, common include files (e.g. test_main.h) are not found by intellisense.

c_cpp_properties.json:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "cl.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64",
            "configurationProvider": "nordic-semiconductor.nrf-connect"
        }
    ],
    "version": 4
}

Tried and didn't work:

  • adding the test project as a separate application
  • adding ${workspaceFolder}/test/inc (location of test_main.h) to includePath or browse.path
  • searched for location of unity.h in SDK and toolchain folders came up with no results. Is it a generated file?

    1258.test.zip

Test project attached ^

  • Interesting.. I've been building the tests separately using twister on the command line.

    I just tried adding a test module as a separate "application" + build configuration using the extension. I get the following assembler error when trying to build with the extension. It builds successfully with twister.

    * Executing task: nRF Connect: Generate config native_posix for test/mod1 Building mod1 C:\WINDOWS\system32\cmd.exe /d /s /c "west build --build-dir c:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build c:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1 --pristine --board native_posix --no-sysbuild -- -DNCS_TOOLCHAIN_VERSION:STRING="NONE"" -- west build: generating a build system Loading Zephyr default modules (Zephyr base). -- Application: C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1 -- CMake version: 3.20.5 -- Found Python3: C:/Users/TylerGrunenwald/ncs/toolchains/31f4403e35/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter -- Cache files will be written to: C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/.cache -- Zephyr version: 3.3.99 (C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr) -- Found west (found suitable version "1.0.0", minimum required is "0.7.1") -- Board: native_posix -- Found host-tools: zephyr 0.16.0 (C:/Users/TylerGrunenwald/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found toolchain: host (gcc/ld) -- Found Dtc: C:/Users/TylerGrunenwald/ncs/toolchains/31f4403e35/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/boards/posix/native_posix/native_posix.dts -- Generated zephyr.dts: C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/zephyr/zephyr.dts -- Generated devicetree_generated.h: C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/zephyr/include/generated/devicetree_generated.h -- Including generated dts.cmake file: C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/zephyr/dts.cmake Parsing C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/Kconfig Loaded configuration 'C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/boards/posix/native_posix/native_posix_defconfig' Merged configuration 'C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/prj.conf' Configuration saved to 'C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/zephyr/.config' Kconfig header saved to 'C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/zephyr/include/generated/autoconf.h' -- Found GnuLd: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.bfd.exe (found version "2.37") -- The C compiler identification is GNU 11.2.0 -- The CXX compiler identification is GNU 11.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/msys64/mingw64/bin/gcc.exe -- Generating test runner C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/runner/runner_test_mod1.c -- Configuring done -- Generating done -- Build files have been written to: C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build -- west build: building application [1/98] Generating include/generated/version.h -- Zephyr version: 3.3.99 (C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr), build: v3.3.99-ncs1 [2/98] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json [3/98] Generating include/generated/syscall_dispatch.c, include/generated/syscall_list.h [4/98] Generating include/generated/kobj-types-enum.h, include/generated/otype-to-str.h, include/generated/otype-to-size.h [5/98] Generating include/generated/driver-validation.h [6/98] Building C object zephyr/CMakeFiles/offsets.dir/arch/posix/core/offsets/offsets.c.obj FAILED: zephyr/CMakeFiles/offsets.dir/arch/posix/core/offsets/offsets.c.obj C:\msys64\mingw64\bin\gcc.exe -DKERNEL -DUNITY_INCLUDE_CONFIG_H -DUSE_PARTITION_MANAGER=0 -D_POSIX_C_SOURCE=200809 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D__ZEPHYR__=1 -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/kernel/include -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/arch/posix/include -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/include -Izephyr/include/generated -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/soc/posix/inf_clock -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/boards/posix/native_posix -IC:/Users/TylerGrunenwald/ncs/v2.4.0/nrf/include -IC:/Users/TylerGrunenwald/ncs/v2.4.0/nrf/tests/include -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/../test/cmock/vendor/unity/src -IC:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/../test/cmock/src -IC:/Users/TylerGrunenwald/ncs/v2.4.0/nrf/tests/unity -fno-strict-aliasing -Os -imacros C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1/build/zephyr/include/generated/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-pic -fno-pie -fno-asynchronous-unwind-tables -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/Users/TylerGrunenwald/git/devzone/unity-include-errors/test/mod1=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/Users/TylerGrunenwald/ncs/v2.4.0=WEST_TOPDIR -ffunction-sections -fdata-sections -m32 -include C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/arch/posix/include/posix_cheats.h -fno-freestanding -std=c11 -MD -MT zephyr/CMakeFiles/offsets.dir/arch/posix/core/offsets/offsets.c.obj -MF zephyr\CMakeFiles\offsets.dir\arch\posix\core\offsets\offsets.c.obj.d -o zephyr/CMakeFiles/offsets.dir/arch/posix/core/offsets/offsets.c.obj -c C:/Users/TylerGrunenwald/ncs/v2.4.0/zephyr/arch/posix/core/offsets/offsets.c C:\Users\TYLERG~1\AppData\Local\Temp\ccxT5ZSu.s: Assembler messages: C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:16: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:16: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:22: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:22: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:28: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:28: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:34: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:34: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:40: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:40: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:46: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:46: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:52: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:52: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:58: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:58: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:64: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:64: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:70: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:70: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:76: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:76: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:82: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:82: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:88: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:88: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:94: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:94: Error: junk at end of line, first unrecognized character is `K' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:100: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:100: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:106: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:106: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:112: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:112: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:118: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:118: Error: junk at end of line, first unrecognized character is `_' C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:124: Warning: .type pseudo-op used outside of .def/.endef: ignored. C:\Users\TYLERG~c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build\1\AppData\Local\Temp\ccxT5ZSu.s:124: Error: junk at end of line, first unrecognized character is `_' ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: 'C:\Users\TylerGrunenwald\ncs\toolchains\31f4403e35\opt\bin\cmake.EXE' --build 'c:\Users\TylerGrunenwald\git\devzone\unity-include-errors\test\mod1\build' * The terminal process terminated with exit code: 1. * Terminal will be reused by tasks, press any key to close it.

  • From this log it seems like there are some unrecognized "junk" in your projects ccxT5ZSu.s file. I don't recognize this file as one of ours, but there seem to be some under-scores "_" that aren't recognized here. I'm not familiar with Twister I'm afraid, so I don't have any clever ideas to why it builds for Twister in this case.

    Best regards,

    Simon

Related