1 // Copyright 2018 The Chromium Authors 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 "base/android/jni_android.h" 6 #include "base/run_loop.h" 7 #include "base/test/multiprocess_test.h" 8 #include "base/test/test_timeouts.h" 9 #include "testing/multiprocess_func_list.h" 10 11 namespace base { 12 namespace android { 13 MULTIPROCESS_TEST_MAIN(BasicMain)14MULTIPROCESS_TEST_MAIN(BasicMain) { 15 return 0; 16 } 17 MULTIPROCESS_TEST_MAIN(WaitingMain)18MULTIPROCESS_TEST_MAIN(WaitingMain) { 19 base::RunLoop().Run(); 20 return 0; 21 } 22 23 class ChildProcessTest : public MultiProcessTest {}; 24 25 // Test disabled due to flakiness: https://crbug.com/950772. TEST_F(ChildProcessTest,DISABLED_ChildHasCleanExit)26TEST_F(ChildProcessTest, DISABLED_ChildHasCleanExit) { 27 Process process = SpawnChild("BasicMain"); 28 int exit_code = 0; 29 EXPECT_TRUE(WaitForMultiprocessTestChildExit( 30 process, TestTimeouts::action_timeout(), &exit_code)); 31 EXPECT_EQ(exit_code, 0); 32 EXPECT_TRUE(MultiProcessTestChildHasCleanExit(process)); 33 } 34 TEST_F(ChildProcessTest,ChildTerminated)35TEST_F(ChildProcessTest, ChildTerminated) { 36 Process process = SpawnChild("WaitingMain"); 37 EXPECT_TRUE(TerminateMultiProcessTestChild(process, 0, true)); 38 EXPECT_FALSE(MultiProcessTestChildHasCleanExit(process)); 39 } 40 41 } // namespace android 42 } // namespace base 43