Index: util/test/multiprocess.h |
diff --git a/util/test/multiprocess.h b/util/test/multiprocess.h |
index c3a7949e4ceb447311ae4f6333480cf642fc5e61..be70694796d073f251820cc50859bacb6c12b969 100644 |
--- a/util/test/multiprocess.h |
+++ b/util/test/multiprocess.h |
@@ -15,9 +15,11 @@ |
#ifndef CRASHPAD_UTIL_TEST_MULTIPROCESS_H_ |
#define CRASHPAD_UTIL_TEST_MULTIPROCESS_H_ |
-#include <unistd.h> |
+#include <sys/types.h> |
#include "base/basictypes.h" |
+#include "build/build_config.h" |
+#include "util/file/file_io.h" |
namespace crashpad { |
namespace test { |
@@ -33,6 +35,9 @@ struct MultiprocessInfo; |
//! |
//! Subclasses are expected to implement the parent and child by overriding the |
//! appropriate methods. |
+//! |
+//! On Windows, this class is only an internal implementation detail of |
+//! MultiprocessExec and all tests must use that class. |
class Multiprocess { |
public: |
//! \brief The termination type for a child process. |
@@ -103,47 +108,52 @@ class Multiprocess { |
//! gtest assertions. |
virtual void PreFork(); |
+#if !defined(OS_WIN) |
//! \brief Returns the child process’ process ID. |
//! |
//! This method may only be called by the parent process. |
pid_t ChildPID() const; |
+#endif // !OS_WIN |
- //! \brief Returns the read pipe’s file descriptor. |
+ //! \brief Returns the read pipe’s file handle. |
//! |
//! This method may be called by either the parent or the child process. |
//! Anything written to the write pipe in the partner process will appear |
- //! on the this file descriptor in this process. |
+ //! on this file handle in this process. |
//! |
//! It is an error to call this after CloseReadPipe() has been called. |
//! |
- //! \return The read pipe’s file descriptor. |
- int ReadPipeFD() const; |
+ //! \return The read pipe’s file handle. |
+ FileHandle ReadPipeHandle() const; |
- //! \brief Returns the write pipe’s file descriptor. |
+ //! \brief Returns the write pipe’s file handle. |
//! |
//! This method may be called by either the parent or the child process. |
- //! Anything written to this file descriptor in this process will appear on |
+ //! Anything written to this file handle in this process will appear on |
//! the read pipe in the partner process. |
//! |
//! It is an error to call this after CloseWritePipe() has been called. |
//! |
- //! \return The write pipe’s file descriptor. |
- int WritePipeFD() const; |
+ //! \return The write pipe’s file handle. |
+ FileHandle WritePipeHandle() const; |
//! \brief Closes the read pipe. |
//! |
//! This method may be called by either the parent or the child process. An |
//! attempt to write to the write pipe in the partner process will fail with |
- //! `EPIPE` or `SIGPIPE`. ReadPipeFD() must not be called after this. |
+ //! `EPIPE` or `SIGPIPE`. ReadPipeHandle() must not be called after this. |
void CloseReadPipe(); |
//! \brief Closes the write pipe. |
//! |
//! This method may be called by either the parent or the child process. An |
//! attempt to read from the read pipe in the partner process will indicate |
- //! end-of-file. WritePipeFD() must not be called after this. |
+ //! end-of-file. WritePipeHandle() must not be called after this. |
void CloseWritePipe(); |
+ void set_info(internal::MultiprocessInfo* info) { info_ = info; } |
+ internal::MultiprocessInfo* info() const { return info_; } |
+ |
private: |
//! \brief Runs the parent side of the test. |
//! |