blob: e77f14021e5589ba8e5a742e6172f8dfa3bbfe0b [file] [log] [blame]
#include "aos/realtime.h"
#include "gtest/gtest.h"
namespace aos {
namespace testing {
// Tests that ScopedRealtime handles the simple case.
TEST(RealtimeTest, ScopedRealtime) {
CheckNotRealtime();
{
ScopedRealtime rt;
CheckRealtime();
}
CheckNotRealtime();
}
// Tests that ScopedRealtime handles nesting.
TEST(RealtimeTest, DoubleScopedRealtime) {
CheckNotRealtime();
{
ScopedRealtime rt;
CheckRealtime();
{
ScopedRealtime rt2;
CheckRealtime();
}
CheckRealtime();
}
CheckNotRealtime();
}
// Tests that ScopedRealtime handles nesting with ScopedNotRealtime.
TEST(RealtimeTest, ScopedNotRealtime) {
CheckNotRealtime();
{
ScopedRealtime rt;
CheckRealtime();
{
ScopedNotRealtime nrt;
CheckNotRealtime();
}
CheckRealtime();
}
CheckNotRealtime();
}
// Tests that ScopedRealtimeRestorer works both when starting RT and nonrt.
TEST(RealtimeTest, ScopedRealtimeRestorer) {
CheckNotRealtime();
{
ScopedRealtime rt;
CheckRealtime();
{
ScopedRealtimeRestorer restore;
CheckRealtime();
MarkRealtime(false);
CheckNotRealtime();
}
CheckRealtime();
}
CheckNotRealtime();
{
ScopedRealtimeRestorer restore;
CheckNotRealtime();
MarkRealtime(true);
CheckRealtime();
}
CheckNotRealtime();
}
} // namespace testing
} // namespace aos