Uh oh!
There was an error while loading. Please reload this page.
add test_scheduler to support marble tests - #1665
Open
kirkshoop wants to merge 55 commits into
Open
Conversation
- add `__debug_sequence_sender` - add `__well_formed_sequence_sender` - add static-member-fn support to `get_item_types` - add static-member-fn support to `subscribe` - add support for `STDEXEC_ENABLE_EXTRA_TYPE_CHECKING`
…nd `get_item_types`
- add `__well_formed_sequence_sender` constraint - add `__mexception` overloads for `get_item_types` - remove constraints that were causing SFINAE that would skip the debug info
each input sequence may be on a different scheduler. The merged items will invoke `set_next` on the receiver from all of the contexts. Depending on the schedulers in play, the calls to `set_next` may overlap in parallel.
merge_each is a sequence adaptor that takes a sequence of nested sequences and merges all the nested values from all the nested sequences into a single output sequence. the first error encountered will trigger a stop request for all active operations. The error is stored and is emitted only after all the active operations have completed. If the error was emitted from an item, a new item is emitted at the end to deliver the stored error. any nested sequence or nested value that completes with set_stopped will not cause any other operations to be stopped. This allows individual nested sequences to be stopped without breaking the merge of the remaining sequences.
…signatures, and get_item_types to SFINAE away. This helps compiler errors to have better information
This is needed in tests that use the test_scheduler
ericniebler
commented
Oct 19, 2025
Collaborator
/ok to test 84b041f |
…ows builds that build cleanly.
…pool causes TSAN warnings. static_thread_pool examples also cause TSAN warnings
ericniebler
commented
Nov 1, 2025
Collaborator
/ok to test 0fc8423 |
ericniebler
commented
Nov 2, 2025
Collaborator
/ok to test 850a25c |
ericniebler
commented
Nov 11, 2025
Collaborator
/ok to test 307ead3 |
ericniebler
approved these changes
Nov 11, 2025
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ericniebler
approved these changes
Nov 11, 2025
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ericniebler
commented
Nov 11, 2025
Collaborator
/ok to test ce4b544 |
kirkshoop
commented
Nov 12, 2025
ContributorAuthor
This is ready to try the CI again |
ericniebler
commented
Nov 13, 2025
Collaborator
/ok to test 0e3c0c4 |
ericniebler
commented
Nov 16, 2025
Collaborator
/ok to test 8e54b92 |
ericniebler
commented
Dec 2, 2025
Collaborator
/ok to test 92cf09d |
ericniebler
commented
Dec 2, 2025
Collaborator
/ok to test d8d63a7 |
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 freeto 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.
test_contextimplements a time-scheduler with additional test features.test_contextis used to build tests using marble sequence sendersand marble recorders
test_clock_context&test_clockare used to represent time for the teststest_scheduleris used to queue tasks on thetest_contextat virtual-time pointsOne or more
__test_sequence(s) are constructed from marblediagrams and each schedules marbles on the
test_schedulerwhen connected and started
Once one or more
__test_sequence(s) have been composed into an expression,the
test_contextis used to record the expression results as aset of marbles. To support the testing of infinite sequences
the recording will be requested to stop at a default of 1000ms from
start()if the expression has not completed.The expression result marbles are then compared to an expected
set of marbles generated from a separate marble diagram
An example of usage:
with output:
Marbles:
marble_t<_Clock>represents a signal for a sequencesender and the frame at which the signal occurs/occured
a marble diagram is a string that is parsed into a
vector<marble_t<_Clock>>Example:
this marble diagram
"--a--b--c|"is equivalent to this set of marble_t
which is displayed as
Diagram reference:
Time:
Value:
Sequence:
record_marbles()will record a set of marbles from the signals of the specified sequence sender