[wpilib] Shuffleboard: Keep duplicates on SelectTab() (#5198)

This commit is contained in:
Starlight220
2023-03-27 06:12:55 +03:00
committed by GitHub
parent 63512bbbb8
commit aa34aacf6e
4 changed files with 57 additions and 3 deletions

View File

@@ -7,6 +7,8 @@
#include <string_view>
#include <networktables/NetworkTableInstance.h>
#include <networktables/NetworkTableListener.h>
#include <networktables/StringTopic.h>
#include "frc/shuffleboard/ShuffleboardInstance.h"
#include "gtest/gtest.h"
@@ -106,3 +108,22 @@ TEST(ShuffleboardInstanceTest, NestedActuatorWidgetsAreDisabled) {
EXPECT_FALSE(controllable)
<< "The nested actuator widget should have been disabled";
}
TEST(ShuffleboardInstanceTest, DuplicateSelectTabs) {
NTWrapper ntInst;
frc::detail::ShuffleboardInstance shuffleboardInst{ntInst.inst};
std::atomic_int counter = 0;
auto listener = nt::NetworkTableListener::CreateListener(
ntInst.inst.GetStringTopic("/Shuffleboard/.metadata/Selected"),
nt::EventFlags::kValueAll | nt::EventFlags::kImmediate,
[&counter](auto& event) { counter++; });
// There shouldn't be anything there
EXPECT_EQ(0, counter);
shuffleboardInst.SelectTab("tab1");
shuffleboardInst.SelectTab("tab1");
EXPECT_TRUE(ntInst.inst.WaitForListenerQueue(0.005))
<< "Listener queue timed out!";
EXPECT_EQ(2, counter);
}