-
Notifications
You must be signed in to change notification settings - Fork 611
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
Make Command tests use command factories and decorators. #7006
base: main
Are you sure you want to change the base?
Make Command tests use command factories and decorators. #7006
Conversation
command1 and command2 are mock Commands that don't actually implement Command decorators
This PR modifies commands. Please open a corresponding PR in Python Commands and include a link to this PR. |
/format |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me but needs C++ and Python ports
/format |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay, but overall, great work! Unfortunately, some usages of There's some spots in C++ that should be adjusted, but they involve replacing command types with new RunCommand()
were added to CommandDecoratorTest
since the issue was opened, so those will also need to be converted.CommandPtr
, which is a little more complicated. If you want to learn a little bit of C++ and work on doing it, go ahead! If you want help, just let us know (in this issue or on Discord) and we'll be happy to help too.
Here's the missing spots in C++ (that I've noticed, I might've missed some):
AddRequirementsTest
CommandDecoratorTest.WithName
InstantCommandTest
ParallelCommandGroupTest.ParallelGroupNotScheduledCancel
ParallelCommandGroupTest.ParallelGroupCopy
ParallelCommandGroupTest.ParallelGroupRequirement
ParallelDeadlineGroupTest.DeadlineGroupNotScheduledCancel
ParallelDeadlineGroupTest.ParallelDeadlineCopy
ParallelDeadlineGroupTest.ParallelDeadlineRequirement
ParallelRaceGroupTest.ParallelRaceNotScheduledCancel
ParallelRaceGroupTest.ParallelRaceCopy
ParallelRaceGroupTest.RaceGroupRequirement
ParallelRaceGroupTest.ParallelRaceOnlyCallsEndOnce
PrintCommandTest
ProxyCommandTest.OwningCommandSchedule
ProxyCommandTest.OwningCommandEnd
POVButtonTest.SetPOV
RunCommandTest.RunCommandSchedule
ScheduleCommandTest.ScheduleCommandSchedule
SchedulerTest.SchedulerLambdaInterruptCause
SchedulerTest.SchedulerLambdaInterruptCauseInRunLoop
SchedulingRecursionTest.ScheduleFromEndCancel
SchedulingRecursionTest.ScheduleFromEndInterrupt
SchedulingRecursionTest.ScheduleFromEndInterruptAction
SchedulingRecursionTest.CancelDefaultCommandFromEnd
SelectCommandTest.SelectCommandRequirement
SequentialCommandGroupTest.SequentialGroupCopy
SequentialCommandGroupTest.SequentialGroupRequirement
Some of the tests are going to be better kept as-is, don't try to force them to work with decorators. |
4fb7c92
to
8d936c7
Compare
8d936c7
to
4e14491
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a bit iffy about using factories instead of the command constructors in tests that are specifically testing those command types, but the command constructors also don't support CommandPtr
. I could see either way (replacing command constructors in command type tests with factories or not using any factories in command type tests) being fine. @rzblue thoughts?
wpilibNewCommands/src/test/native/cpp/frc2/command/DefaultCommandTest.cpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Submitted before I meant to, whoops. I've also updated my comment with a list of what needs to be changed.
Closes #6652.