blob: 0f0fa563695494f5103e23fc1f13acde4b2644aa [file] [log] [blame]
//===- unittests/Basic/SerialQueueTest.cpp --------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#include "llbuild/Basic/SerialQueue.h"
#include "gtest/gtest.h"
using namespace llbuild;
using namespace llbuild::basic;
namespace {
TEST(SerialQueueTest, basic) {
// Check that we can execute async and sync ops.
int a = 0;
int b = 0;
int c = 0;
{
SerialQueue q;
q.async([&]() {
printf("a = 1\n");
a = 1;
});
q.async([&]() {
printf("b = 1\n");
b = 1;
});
q.sync([&]() {
printf("c = 1\n");
c = 1;
});
}
EXPECT_EQ(a, 1);
EXPECT_EQ(b, 1);
EXPECT_EQ(c, 1);
}
}