Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 23, 2026

This changes visible behavior

GoogleTest failure output in Test Results panel now shows clickable file paths. Previously, only compiler error formats (file:line: error:) were hyperlinked; GoogleTest's file:line: Failure format was rendered as plain text.

The following changes are proposed:

  • Add pattern (.*?):(\\d+): *(.*) to default cmake.ctest.failurePatterns in package.json
  • Add test case for GoogleTest output format in ctest.test.ts

Implementation

The existing searchOutputForFailures() function already parses patterns and creates vscode.TestMessage objects with location properties for hyperlinking. The new pattern captures GoogleTest's output format:

D:/path/to/test.cpp:135: Failure
Value of: expr
  Actual: true
Expected: false

Extracts: file path, line 135 (→134 in 0-based VSCode Position), message "Failure".

The pattern is intentionally general (file:line: anything) to support GoogleTest and similar frameworks. May create duplicate matches for error lines that match multiple patterns, but this doesn't affect functionality.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 0psvsblobprodwus2145.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/npm install (dns block)
  • 2wrvsblobprodwus2180.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • 40vvsblobprodwus2135.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
    • Triggering command: /usr/local/bin/node node /usr/local/bin/npm install (dns block)
  • b15vsblobprodwus2164.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • b53vsblobprodwus2154.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • d94vsblobprodwus2119.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • ezcvsblobprodwus2170.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/npm install (dns block)
  • k4pvsblobprodwus2140.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • n6wvsblobprodwus2123.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • p2tvsblobprodwus2189.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)
  • v41vsblobprodwus2175.vsblob.vsassets.io
    • Triggering command: /usr/local/bin/node node /usr/local/bin/yarn install (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>[Bug] Test Results panel doesn't hyperlink file paths</issue_title>
<issue_description>### Brief Issue Summary

When running GoogleTest-based tests using CTest via Test Explorer, the Test Results panel shows the results of each test. However, the file paths in the test results are not hyperlinked, so I cannot navigate to failure points logged by the tests.

Image

CMake Tools Diagnostics

{
  "os": "win32",
  "vscodeVersion": "1.104.3",
  "cmtVersion": "1.22.14",
  "configurations": [
    {
      "folder": "d:\\dev\\Synaptive\\ModusV\\embeddedfirmware",
      "cmakeVersion": "3.31.5",
      "configured": true,
      "generator": "Ninja Multi-Config",
      "usesPresets": true,
      "compilers": {
        "C": "C:/Tools/gcc-arm-none-eabi-6-2017-q1-update/bin/arm-none-eabi-gcc.exe",
        "CXX": "C:/Tools/gcc-arm-none-eabi-6-2017-q1-update/bin/arm-none-eabi-g++.exe"
      }
    },
    {
      "folder": "d:\\dev\\Synaptive\\ModusV\\embeddedfirmware",
      "cmakeVersion": "3.31.5",
      "configured": true,
      "generator": "Ninja",
      "usesPresets": false,
      "compilers": {
        "C": "C:/msys64/mingw32/bin/gcc.exe",
        "CXX": "C:/msys64/mingw32/bin/g++.exe"
      }
    }
  ],
  "cpptoolsIntegration": {
    "isReady": true,
    "hasCodeModel": true,
    "activeBuildType": "Debug",
    "buildTypesSeen": [
      "Debug"
    ],
    "requests": [
      "file:///d%3A/dev/Synaptive/ModusV/embeddedfirmware/test/projects/pwrcon/src/TestLedMgr.cpp",
      "file:///d%3A/dev/Synaptive/ModusV/embeddedfirmware/projects/pwrcon/src/hw/led_mgr.c"
    ],
    "responses": [
      {
        "uri": "file:///d%3A/dev/Synaptive/ModusV/embeddedfirmware/test/projects/pwrcon/src/TestLedMgr.cpp",
        "configuration": {
          "includePath": [
            "d:/dev/synaptive/modusv/embeddedfirmware/test/projects/pwrcon/inc/config",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/pwrcon/inc",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/pwrcon/inc/config",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/core/inc",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/core/inc/config",
            "d:/dev/synaptive/modusv/embeddedfirmware/dependencies/jsmn",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/mock",
            "d:/dev/synaptive/modusv/embeddedfirmware/test",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googlemock/include",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googlemock",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googletest/include",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googletest"
          ],
          "defines": [
            "APPLICATION_NAME=\"UNIT-TEST\"",
            "BUILD_AUTHOR=\"TEST-AUTHOR\"",
            "BUILD_COMMIT=\"0xdeadbeef\"",
            "BUILD_DIRTY=0",
            "FIRMWARE_PARTNUM=\"UNIT-TEST\"",
            "JSON_ENABLED=1",
            "PWRCON",
            "_FILE_OFFSET_BITS=64",
            "_POSIX_C_SOURCE",
            "__UNIT_TEST__"
          ],
          "compilerPath": "c:/msys64/mingw32/bin/g++.exe",
          "compilerArgs": [],
          "compilerFragments": [
            "-g",
            "-m32",
            "-Wall",
            "-Werror",
            "-Wno-unused-function"
          ]
        }
      },
      {
        "uri": "file:///d%3A/dev/Synaptive/ModusV/embeddedfirmware/projects/pwrcon/src/hw/led_mgr.c",
        "configuration": {
          "includePath": [
            "d:/dev/synaptive/modusv/embeddedfirmware/test/projects/pwrcon/inc/config",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/pwrcon/inc",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/pwrcon/inc/config",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/core/inc",
            "d:/dev/synaptive/modusv/embeddedfirmware/projects/core/inc/config",
            "d:/dev/synaptive/modusv/embeddedfirmware/dependencies/jsmn",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/mock",
            "d:/dev/synaptive/modusv/embeddedfirmware/test",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googlemock/include",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googlemock",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googletest/include",
            "d:/dev/synaptive/modusv/embeddedfirmware/test/build/_deps/googletest-src/googletest"
          ],
          "defines": [
            "APPLICATION_NAME=\"UNIT-TEST\"",
            "BUILD_AUTHOR=\"TEST-AUTHOR\"",
           ...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

- Fixes microsoft/vscode-cmake-tools#4589

<!-- START COPILOT CODING AGENT TIPS -->
---

✨ Let Copilot coding agent [set things up for you](https://github.com/microsoft/vscode-cmake-tools/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.
Copilot AI and others added 2 commits January 23, 2026 15:11
Co-authored-by: hanniavalera <90047725+hanniavalera@users.noreply.github.com>
Co-authored-by: hanniavalera <90047725+hanniavalera@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix file paths hyperlinking in Test Results panel Jan 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants