-
Notifications
You must be signed in to change notification settings - Fork 206
add test_scheduler to support marble tests #1665
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
kirkshoop
wants to merge
18
commits into
NVIDIA:main
Choose a base branch
from
kirkshoop:marbletesting
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
- 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.
…hecking in connect
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
/ok to test 84b041f |
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.
test_context
implements a time-scheduler with additional test features.test_context
is used to build tests using marble sequence sendersand marble recorders
test_clock_context
&test_clock
are used to represent time for the teststest_scheduler
is used to queue tasks on thetest_context
at virtual-time pointsOne or more
__test_sequence
(s) are constructed from marblediagrams and each schedules marbles on the
test_scheduler
when connected and started
Once one or more
__test_sequence
(s) have been composed into an expression,the
test_context
is 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