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 WorkerMULTIPROCESS_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 WorkerMULTIPROCESS_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 WorkerTEST_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 WorkerTEST_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