summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_multiprocess_test.cc
diff options
context:
space:
mode:
authorepenner@chromium.org <epenner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-19 06:34:52 +0000
committerepenner@chromium.org <epenner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-19 06:34:52 +0000
commite097b93086bf7be065d7400aece5edad6aca1bd6 (patch)
treea7cb6a09bd23cc4be97952689147fed2892a713e /ipc/ipc_multiprocess_test.cc
parent5408dd86637ca2a5d90b65d32d5bd3bc54c8bbbd (diff)
downloadchromium_src-e097b93086bf7be065d7400aece5edad6aca1bd6.zip
chromium_src-e097b93086bf7be065d7400aece5edad6aca1bd6.tar.gz
chromium_src-e097b93086bf7be065d7400aece5edad6aca1bd6.tar.bz2
IPC: Make ipc_perftests run on Android.
There was several minor issues: - Base perf logging file location was off-limits on Android - Printf needs to be flushed to be visible on Android. - Android needs to reset the 'PipeMap' manually since we can't 'exec' after forking a test process. If we don't do this the Channel thinks we are in a single- process test and tries to open an FD which was closed during forking. - Android's base file descriptor needs to be increased to prevent stomping the android native logging file-descriptor with the default pipe. - The test took too long, so the 'exponent' is reduced from 5 to 3 - We need an APK With this patch the test runs like on other platforms, and lots of testing code is fixed such that it works the same way on all platforms. BUG=345471 Review URL: https://codereview.chromium.org/196343019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257877 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_multiprocess_test.cc')
-rw-r--r--ipc/ipc_multiprocess_test.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/ipc/ipc_multiprocess_test.cc b/ipc/ipc_multiprocess_test.cc
index 8e3c03a..8da67b2 100644
--- a/ipc/ipc_multiprocess_test.cc
+++ b/ipc/ipc_multiprocess_test.cc
@@ -4,6 +4,7 @@
#include "build/build_config.h"
+#include "ipc/ipc_channel.h"
#include "ipc/ipc_multiprocess_test.h"
#if defined(OS_POSIX)
@@ -14,6 +15,12 @@
namespace internal {
void MultiProcessTestIPCSetUp() {
+#if defined(OS_ANDROID)
+ // On Android we can't 'exec'. So for simple multi-process tests
+ // we need to reset some global data after forking to get the same
+ // behavior in simple multi-process tests.
+ IPC::Channel::NotifyProcessForkedForTesting();
+#endif
#if defined(OS_POSIX)
base::GlobalDescriptors::GetInstance()->Set(kPrimaryIPCChannel,
kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor);