1 // Copyright 2014 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. 4 5 #include "mojo/core/test/test_utils.h" 6 7 #include <fcntl.h> 8 #include <stddef.h> 9 #include <unistd.h> 10 11 #include "base/posix/eintr_wrapper.h" 12 13 namespace mojo { 14 namespace core { 15 namespace test { 16 PlatformHandleFromFILE(base::ScopedFILE fp)17PlatformHandle PlatformHandleFromFILE(base::ScopedFILE fp) { 18 CHECK(fp); 19 int rv = HANDLE_EINTR(dup(fileno(fp.get()))); 20 PCHECK(rv != -1) << "dup"; 21 return PlatformHandle(base::ScopedFD(rv)); 22 } 23 FILEFromPlatformHandle(PlatformHandle h,const char * mode)24base::ScopedFILE FILEFromPlatformHandle(PlatformHandle h, const char* mode) { 25 CHECK(h.is_valid()); 26 base::ScopedFILE rv(fdopen(h.ReleaseFD(), mode)); 27 PCHECK(rv) << "fdopen"; 28 return rv; 29 } 30 31 } // namespace test 32 } // namespace core 33 } // namespace mojo 34