xref: /aosp_15_r20/external/cronet/base/android/child_process_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2018 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "base/android/jni_android.h"
6*6777b538SAndroid Build Coastguard Worker #include "base/run_loop.h"
7*6777b538SAndroid Build Coastguard Worker #include "base/test/multiprocess_test.h"
8*6777b538SAndroid Build Coastguard Worker #include "base/test/test_timeouts.h"
9*6777b538SAndroid Build Coastguard Worker #include "testing/multiprocess_func_list.h"
10*6777b538SAndroid Build Coastguard Worker 
11*6777b538SAndroid Build Coastguard Worker namespace base {
12*6777b538SAndroid Build Coastguard Worker namespace android {
13*6777b538SAndroid Build Coastguard Worker 
MULTIPROCESS_TEST_MAIN(BasicMain)14*6777b538SAndroid Build Coastguard Worker MULTIPROCESS_TEST_MAIN(BasicMain) {
15*6777b538SAndroid Build Coastguard Worker   return 0;
16*6777b538SAndroid Build Coastguard Worker }
17*6777b538SAndroid Build Coastguard Worker 
MULTIPROCESS_TEST_MAIN(WaitingMain)18*6777b538SAndroid Build Coastguard Worker MULTIPROCESS_TEST_MAIN(WaitingMain) {
19*6777b538SAndroid Build Coastguard Worker   base::RunLoop().Run();
20*6777b538SAndroid Build Coastguard Worker   return 0;
21*6777b538SAndroid Build Coastguard Worker }
22*6777b538SAndroid Build Coastguard Worker 
23*6777b538SAndroid Build Coastguard Worker class ChildProcessTest : public MultiProcessTest {};
24*6777b538SAndroid Build Coastguard Worker 
25*6777b538SAndroid Build Coastguard Worker // Test disabled due to flakiness: https://crbug.com/950772.
TEST_F(ChildProcessTest,DISABLED_ChildHasCleanExit)26*6777b538SAndroid Build Coastguard Worker TEST_F(ChildProcessTest, DISABLED_ChildHasCleanExit) {
27*6777b538SAndroid Build Coastguard Worker   Process process = SpawnChild("BasicMain");
28*6777b538SAndroid Build Coastguard Worker   int exit_code = 0;
29*6777b538SAndroid Build Coastguard Worker   EXPECT_TRUE(WaitForMultiprocessTestChildExit(
30*6777b538SAndroid Build Coastguard Worker       process, TestTimeouts::action_timeout(), &exit_code));
31*6777b538SAndroid Build Coastguard Worker   EXPECT_EQ(exit_code, 0);
32*6777b538SAndroid Build Coastguard Worker   EXPECT_TRUE(MultiProcessTestChildHasCleanExit(process));
33*6777b538SAndroid Build Coastguard Worker }
34*6777b538SAndroid Build Coastguard Worker 
TEST_F(ChildProcessTest,ChildTerminated)35*6777b538SAndroid Build Coastguard Worker TEST_F(ChildProcessTest, ChildTerminated) {
36*6777b538SAndroid Build Coastguard Worker   Process process = SpawnChild("WaitingMain");
37*6777b538SAndroid Build Coastguard Worker   EXPECT_TRUE(TerminateMultiProcessTestChild(process, 0, true));
38*6777b538SAndroid Build Coastguard Worker   EXPECT_FALSE(MultiProcessTestChildHasCleanExit(process));
39*6777b538SAndroid Build Coastguard Worker }
40*6777b538SAndroid Build Coastguard Worker 
41*6777b538SAndroid Build Coastguard Worker }  // namespace android
42*6777b538SAndroid Build Coastguard Worker }  // namespace base
43