diff options
Diffstat (limited to 'gfx/angle/src/libANGLE/signal_utils_unittest.cpp')
-rwxr-xr-x | gfx/angle/src/libANGLE/signal_utils_unittest.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gfx/angle/src/libANGLE/signal_utils_unittest.cpp b/gfx/angle/src/libANGLE/signal_utils_unittest.cpp new file mode 100755 index 000000000..fac9b67df --- /dev/null +++ b/gfx/angle/src/libANGLE/signal_utils_unittest.cpp @@ -0,0 +1,38 @@ +// +// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// signal_utils_unittest: +// Unit tests for signals and related utils. + +#include <gtest/gtest.h> + +#include "libANGLE/signal_utils.h" + +using namespace angle; +using namespace testing; + +namespace +{ + +struct SignalThing : public SignalReceiver +{ + void signal(SignalToken token) override { wasSignaled = true; } + bool wasSignaled = false; +}; + +// Test that broadcast signals work. +TEST(SignalTest, BroadcastSignals) +{ + BroadcastChannel channel; + SignalThing thing; + ChannelBinding binding(&thing, 0u); + + binding.bind(&channel); + ASSERT_FALSE(thing.wasSignaled); + channel.signal(); + ASSERT_TRUE(thing.wasSignaled); +} + +} // anonymous namespace |