Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Side by Side Diff: mojo/edk/system/data_pipe_unittest.cc

Issue 2725133002: Mojo: Armed Watchers (Closed)
Patch Set: . Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1914 matching lines...) Expand 10 before | Expand all | Expand 10 after
1925 { 1925 {
1926 base::RunLoop run_loop; 1926 base::RunLoop run_loop;
1927 int count = 0; 1927 int count = 0;
1928 auto callback = base::Bind( 1928 auto callback = base::Bind(
1929 [] (base::RunLoop* loop, int* count, MojoResult result) { 1929 [] (base::RunLoop* loop, int* count, MojoResult result) {
1930 EXPECT_EQ(MOJO_RESULT_OK, result); 1930 EXPECT_EQ(MOJO_RESULT_OK, result);
1931 if (++*count == 2) 1931 if (++*count == 2)
1932 loop->Quit(); 1932 loop->Quit();
1933 }, 1933 },
1934 &run_loop, &count); 1934 &run_loop, &count);
1935 Watcher producer_watcher(FROM_HERE), consumer_watcher(FROM_HERE); 1935 Watcher producer_watcher(FROM_HERE, Watcher::ArmingPolicy::AUTOMATIC);
1936 Watcher consumer_watcher(FROM_HERE, Watcher::ArmingPolicy::AUTOMATIC);
1936 producer_watcher.Start( 1937 producer_watcher.Start(
1937 Handle(producers[1]), MOJO_HANDLE_SIGNAL_PEER_CLOSED, callback); 1938 Handle(producers[1]), MOJO_HANDLE_SIGNAL_PEER_CLOSED, callback);
1938 consumer_watcher.Start( 1939 consumer_watcher.Start(
1939 Handle(consumers[1]), MOJO_HANDLE_SIGNAL_PEER_CLOSED, callback); 1940 Handle(consumers[1]), MOJO_HANDLE_SIGNAL_PEER_CLOSED, callback);
1940 run_loop.Run(); 1941 run_loop.Run();
1942 EXPECT_EQ(2, count);
1941 } 1943 }
1942 1944
1943 // Wait on producer 2 by polling with MojoWriteData. 1945 // Wait on producer 2 by polling with MojoWriteData.
1944 MojoResult result; 1946 MojoResult result;
1945 do { 1947 do {
1946 uint32_t num_bytes = 0; 1948 uint32_t num_bytes = 0;
1947 result = MojoWriteData( 1949 result = MojoWriteData(
1948 producers[2], nullptr, &num_bytes, MOJO_WRITE_DATA_FLAG_NONE); 1950 producers[2], nullptr, &num_bytes, MOJO_WRITE_DATA_FLAG_NONE);
1949 } while (result == MOJO_RESULT_OK); 1951 } while (result == MOJO_RESULT_OK);
1950 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); 1952 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
(...skipping 30 matching lines...) Expand all
1981 for (size_t i = 3; i < 6; ++i) 1983 for (size_t i = 3; i < 6; ++i)
1982 CloseHandle(producers[i]); 1984 CloseHandle(producers[i]);
1983 END_CHILD() 1985 END_CHILD()
1984 } 1986 }
1985 1987
1986 #endif // !defined(OS_IOS) 1988 #endif // !defined(OS_IOS)
1987 1989
1988 } // namespace 1990 } // namespace
1989 } // namespace edk 1991 } // namespace edk
1990 } // namespace mojo 1992 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698