* fix: CTest Test Suite Delimiter prevents running all tests (#4092)
* Introduces type alias (DriverMapT) to factorize type declaration
* Introduces the getProjectDriver method
* Adds comments
* Adds entry in the CHANGELOG
* Fix wrong object initialization
* Takes into account code review remarks.
Do not return CMakeDriver | String but do return CMakeDriver and throw error in case of problem
* Fix lint issue
---------
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
* Move the presets tests to integration tests.
These tests aren't true 'unit' tests by definition, so moving them to
integration.
Also, added include and CMakePresets/CMakeUserPresets tests.
* add inheritance and expansion and override tests
* fix formatting of test file
* fix linter issues
* fix lint issues
* fix path
* make tests better across platform
* fix lint
* gcc.ts: Replace single regex pattern with array
* CHANGELOG.md: Add GCC parsing fix
* Change parser from gnuLD to gcc for linker error diagnostics unit test
* Fix GNU LD diagnostics parser not being enabled due to inconsistency in config and in build.ts by_source strings
* Improve GCC and GNU LD diagnostics parsers
* Remove obsolete french linker error unit test
* Add gcc and gnuld diagnostics unit tests
* Clean up regexes, add unit tests
* Make gcc and gnuld parsers execution order agnostic
* Share the RegexPattern interface and the MatchType interface rather than doubly defining it
* Remove C++ template compiler error detection from gnu-ld, move common data types to util.ts
* fix extra line
* update changelog
* Remove obsolete return statement
* Add comments
---------
Co-authored-by: 0xemgy <0xemgy>
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
Co-authored-by: Garrett Campbell <gcampbell@microsoft.com>
* renamed to end-to-end-tests and moved backend unit tests to unit-tests folder
* create folder for kits code, refactor imports to use @cmt and @test
* move variants into the kits folder
* refactor into better folder structure, still more to go
* Initial refactor making presets validation unit testing possible.
This seems to work well so far, I have v1-v3 presets tested, with some
more refactors regarding error reporting to come. However, the
design/infrastructure refactor seems to be allowing us to unit test
validation.
* implemented Presets version validation automated testing
* Added version testing for presets v1-9.
This adds testing for our version validation for all Presets versions
currently supported.
It creates presets on the fly and ensures that we correctly get errors,
or don't, depending on the setup and what fields are present with what
versions.
* fix workflows
* Ensure that we correctly initialize the presetsParser class
* refactor imports
* refactor imports
* more import fixes
* imports in projectStatus
* missed one
* workflow imports
* added comment about definite assignment
* add comments
* fix launch file to make sure breakpoints happen
* fix syntax error
* Use product icons instead of 'hardcoded' icons
- Add a product icon font instead of icons that are unchangable by product icon themes
- Add a script using FontForge scripting API for generating product icon font for future use
- Remove redundant icons that are already part of codicons
* Revert accidental addition of 'languages' contribution entry
* determine shell for .cmd, .bat, .ps1
* update changelog
* only apply fix on windows, as necessary
* undefined -> false
* use concrete if statement
* update changelog and change if statement order
* nit: remove extra space
* support additional macros for include field for presets v9
* use expandString and adhere to interface requirements
* revert unneeded change
* remove unnecessary change from tempErrorList to errorList
* add option for ExpansionOptions for vars to be preset contextual but not preset specific interface
* now that we've added the appropriate required preset fields, refer to them explicitly
* remove unused import
* remove unused imports
* update hosted-git-info version
* add npmrc and update yarn lock
* we were hitting an issue with eslint getting updated, I think it's with eslint >= 8.31.0
* attempt to fix cfs and get from our feed without updating versions
* try without hosted-git-info resolution
* revert to base
* updating yarnpkg to our feed
* add comment to npmrc
* Update CONTRIBUTING.md
* Update .npmrc
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
---------
Co-authored-by: Garrett Campbell <gcampbell@microsoft.com>
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
* xml2js cg
* update tests as well
* try update partial
* switch kit?
* ninja is added to path so it should work, still investigating
* update action version with same tool versions
* changes to test
* test output
* more testing
* test macos-13
* remove logging
* remove logging
* try explicit macos-14
* go back to macos-13
* remove static version of vscode
* need to use 13
* comment
* fix binary dir
* fixes the issue, but more testing and possible improvement to come
* set expandedPreset.binaryDir if already set too
* properly update caches, ensure we correctly store cached presets
* remove some unnecessary comments
* fix linter errors
* update envOverride with expandedPreset env
* update the changelog
* update parent environment when never
* In short, with our recent updates, we are attempting to expand every
string in the environment. This isn't a problem in most cases, but it
exposed a bug in certain linux distros that use aliasing (environment
variables).
Therefore, we should be wiser about what we attempt to expand and only
expand the presets environment variables the user has in their files.
To do this, we need to be smarter about what we save in our cache and
update by reference.
* updated the other presets so they dont always have to reexpand configure preset. when they do, use plusIncludes which has the dev env cached if its been expanded before. also include the inherited parent envs
* Fix environment expansion so we don't expand unnecessary variables - don't save the process.env or parent environment to the environment field of the cache.
* Don't re-expand configure presets in the associated build/test/etc presets.
* Fix expansion reporting issues with reporting an invalid config preset, and changing for each loop to a traditional for loop to make sure we dont have async issues with reporting.
* fix validation bug for not being able to find a null config preset
---------
Co-authored-by: Garrett Campbell <gcampbell@microsoft.com>