Extract SIGPIPE ignoring code to a common place.
[chromium-blink-merge.git] / base / mac / bind_objc_block_unittest.mm
blob17fbe6ee94a0ab97b158e9449cbb4f08e8086f36
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #import "base/mac/bind_objc_block.h"
7 #include "base/callback.h"
8 #include "base/bind.h"
9 #include "base/bind_helpers.h"
10 #include "testing/gtest/include/gtest/gtest.h"
12 namespace {
14 TEST(BindObjcBlockTest, TestScopedClosureRunnerExitScope) {
15   int run_count = 0;
16   int* ptr = &run_count;
17   {
18     base::ScopedClosureRunner runner(base::BindBlock(^{
19         (*ptr)++;
20     }));
21     EXPECT_EQ(0, run_count);
22   }
23   EXPECT_EQ(1, run_count);
26 TEST(BindObjcBlockTest, TestScopedClosureRunnerRelease) {
27   int run_count = 0;
28   int* ptr = &run_count;
29   base::Closure c;
30   {
31     base::ScopedClosureRunner runner(base::BindBlock(^{
32         (*ptr)++;
33     }));
34     c = runner.Release();
35     EXPECT_EQ(0, run_count);
36   }
37   EXPECT_EQ(0, run_count);
38   c.Run();
39   EXPECT_EQ(1, run_count);
42 }  // namespace