Release/1.0.0#45
Merged
Merged
Conversation
## Scope - create core test files (`test`) - setup CMake to build and install tests - each test has its own target as well as targets for test kind, and target for all tests - each test kind group is its own component and can be installed per component - all tests can also be installed together - path is automatically set for tests run with ctest on windows (unless disabled via option) - file containing path for test dependencies can be created on windows if option is enabled - tests can be built as a completely independent project - user can choose which tests to build using regex option --------- Signed-off-by: doodspav <doodspav@gmail.com>
## Scope - make `patomic_` options all-caps - make `patomic_test_` options all-caps, rename slightly, and remove `test` from prefix - make project scope variables snake-case and remove `patomic_` prefix - prefix argument names with `ARG_` - move all options to the relevant `OptionVariables.cmake` --------- Signed-off-by: doodspav <doodspav@gmail.com>
The few visible changes made:
- renamed `create_test(...)` to `_create_test(...)`
- added `create_bt(...)` and `create_ut(...)`
- BTs are skipped if `patomic::patomic` isn't available and can't be
found
- UTs are skipped if `patomic_test` isn't build as a sub-project of
`patomic` (because `patomic` sets `PATOMIC_{BINARY, SOURCE}_DIR`
variables for the UTs to find the required files)
- `gmock` currently not linked because it breaks automatic test lookup
(might add later once there's a pipeline)
---------
Signed-off-by: doodspav <doodspav@gmail.com>
- created CMake presets for compiling with the following flags (on supported platforms) - ansi - coverage - warning - sanitize - improved tests: - tests now reside in their own `kind` directory - tests in CMake now have a label corresponding to their kind (to make it easier to run just one kind of test) - added a new kind, System Test (ST), currently used to check that sanitisers work - add pipeline steps that: - run tests on all possible platforms, both natively and with QEMU, check that all tests succeed, and display results in GitHub summary and PR - check that we have achieved our minimum coverage goals, and display results in GitHub summary and PR - check that there are no fixmes/todos in code without an open GitHub issue linked - update option variables: - `PATOMIC_BUILD_TESTING` now works properly, and depends on `PROJECT_IS_TOP_LEVEL` - `PATOMIC_INSTALL_CMAKEDIR` is now versioned
- added logic binary tests for all operations - improved transaction api - split status into exit code, exit info, and abort reason - added fp_tdepth - if fp_tdepth is supported, fp_ttest must also be supported and behave identically to fp_tdepth - if any raw operation is supported, both fp_tbegin and fp_tcommit must be supported too - if any non-flag operation is supported, all flag operations must be supported, otherwise no flag operations may be supported - split fp_tabort into fp_tabort_single and fp_tabort_all - fp_tabort_all must be supported if fp_tabort_single is supported
- add `wrapped/tsx.h` to easily create transactional operations from `tbegin` and `tcommit` - remove `patomic_transaction_recommended_t` - add `patomic_transaction_exit_info_t` - change `PATOMIC_TRANSACTION_STATUS_ABORT_REASON` and corresponding function to omit explicit abort check - all transaction operations now abort without retry if flag is set
- add death tests - assert on invalid orders in patomic_create
- license under LGPL3.0+ with linking exception - add license and copyright notice to all files (except LICENSE.txt, README.md, CHANGELOG.md, and json files) - add a changelog - rename .yml files to .yaml - add pipeline check to ensure all files contain license and copyright notice
amaanq
approved these changes
Dec 25, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[1.0.0] - 2024-12-25
Added
<stdatomic.h>(no transaction operations are supported)