ozone: evdev: Sync caps lock LED state to evdev
[chromium-blink-merge.git] / sandbox / linux / tests / test_utils.cc
blob6000b8aa64f207ded7e326200567a4fb4b800e25
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "sandbox/linux/tests/test_utils.h"
7 #include <errno.h>
8 #include <sys/stat.h>
9 #include <sys/types.h>
10 #include <sys/wait.h>
11 #include <unistd.h>
13 #include "base/basictypes.h"
14 #include "base/logging.h"
15 #include "base/posix/eintr_wrapper.h"
17 namespace sandbox {
19 bool TestUtils::CurrentProcessHasChildren() {
20 siginfo_t process_info;
21 int ret = HANDLE_EINTR(
22 waitid(P_ALL, 0, &process_info, WEXITED | WNOHANG | WNOWAIT));
23 if (-1 == ret) {
24 PCHECK(ECHILD == errno);
25 return false;
26 } else {
27 return true;
31 void TestUtils::HandlePostForkReturn(pid_t pid) {
32 const int kChildExitCode = 1;
33 if (pid > 0) {
34 int status = 0;
35 PCHECK(pid == HANDLE_EINTR(waitpid(pid, &status, 0)));
36 CHECK(WIFEXITED(status));
37 CHECK_EQ(kChildExitCode, WEXITSTATUS(status));
38 } else if (pid == 0) {
39 _exit(kChildExitCode);
43 } // namespace sandbox