OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/tests/test_broker.h" | 5 #include "ppapi/tests/test_broker.h" |
6 | 6 |
7 #if defined(_MSC_VER) | 7 #if defined(_MSC_VER) |
8 #define OS_WIN 1 | 8 #define OS_WIN 1 |
9 #include <windows.h> | 9 #include <windows.h> |
10 #else | 10 #else |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
113 bool success = ReadMessage(file, message_len, message_received) && | 113 bool success = ReadMessage(file, message_len, message_received) && |
114 !::strcmp(message_received, message); | 114 !::strcmp(message_received, message); |
115 delete [] message_received; | 115 delete [] message_received; |
116 return success; | 116 return success; |
117 } | 117 } |
118 | 118 |
119 bool ClosePlatformFile(PlatformFile file) { | 119 bool ClosePlatformFile(PlatformFile file) { |
120 #if defined(OS_WIN) | 120 #if defined(OS_WIN) |
121 return !!::CloseHandle(file); | 121 return !!::CloseHandle(file); |
122 #elif defined(OS_POSIX) | 122 #elif defined(OS_POSIX) |
123 return !::close(file); | 123 return !HANDLE_EINTR(::close(file)); |
124 #endif | 124 #endif |
125 } | 125 } |
126 | 126 |
127 bool VerifyIsUnsandboxed() { | 127 bool VerifyIsUnsandboxed() { |
128 #if defined(OS_WIN) | 128 #if defined(OS_WIN) |
129 FILE* file = NULL; | 129 FILE* file = NULL; |
130 wchar_t temp_path[MAX_PATH] = {'\0'}; | 130 wchar_t temp_path[MAX_PATH] = {'\0'}; |
131 wchar_t file_name[MAX_PATH] = {'\0'}; | 131 wchar_t file_name[MAX_PATH] = {'\0'}; |
132 if (!::GetTempPath(MAX_PATH, temp_path) || | 132 if (!::GetTempPath(MAX_PATH, temp_path) || |
133 !::GetTempFileName(temp_path, L"test_pepper_broker", 0, file_name) || | 133 !::GetTempFileName(temp_path, L"test_pepper_broker", 0, file_name) || |
134 ::_wfopen_s(&file, file_name, L"w")) | 134 ::_wfopen_s(&file, file_name, L"w")) |
135 return false; | 135 return false; |
136 | 136 |
137 if (::fclose(file)) { | 137 if (::fclose(file)) { |
138 ::DeleteFile(file_name); | 138 ::DeleteFile(file_name); |
139 return false; | 139 return false; |
140 } | 140 } |
141 | 141 |
142 return !!::DeleteFile(file_name); | 142 return !!::DeleteFile(file_name); |
143 #elif defined(OS_POSIX) | 143 #elif defined(OS_POSIX) |
144 char file_name[] = "/tmp/test_pepper_broker_XXXXXX"; | 144 char file_name[] = "/tmp/test_pepper_broker_XXXXXX"; |
145 int fd = ::mkstemp(file_name); | 145 int fd = ::mkstemp(file_name); |
xhwang
2011/11/17 01:25:16
I saw examples of using HANDLE_EINTR for mkstemp()
ddorwin
2011/11/21 22:41:14
Maybe double check on Ubuntu's man page. I concur
xhwang
2011/11/21 23:15:16
Checked man page of Ubuntu and mkstemp doesn't tri
piman
2011/11/21 23:23:45
Usually, libc functions deal internally with the r
| |
146 if (-1 == fd) | 146 if (-1 == fd) |
147 return false; | 147 return false; |
148 | 148 |
149 if (::close(fd)) { | 149 if (HANDLE_EINTR(::close(fd))) { |
150 ::remove(file_name); | 150 ::remove(file_name); |
151 return false; | 151 return false; |
152 } | 152 } |
153 | 153 |
154 return !::remove(file_name); | 154 return !::remove(file_name); |
155 #endif | 155 #endif |
156 } | 156 } |
157 | 157 |
158 // Callback in the broker when a new broker connection occurs. | 158 // Callback in the broker when a new broker connection occurs. |
159 int32_t OnInstanceConnected(PP_Instance instance, int32_t handle) { | 159 int32_t OnInstanceConnected(PP_Instance instance, int32_t handle) { |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
281 | 281 |
282 PlatformFile file = IntToPlatformFile(handle); | 282 PlatformFile file = IntToPlatformFile(handle); |
283 ASSERT_TRUE(VerifyMessage(file, sizeof(kHelloMessage), kHelloMessage)); | 283 ASSERT_TRUE(VerifyMessage(file, sizeof(kHelloMessage), kHelloMessage)); |
284 ASSERT_TRUE(VerifyMessage(file, sizeof(kBrokerUnsandboxed), | 284 ASSERT_TRUE(VerifyMessage(file, sizeof(kBrokerUnsandboxed), |
285 kBrokerUnsandboxed)); | 285 kBrokerUnsandboxed)); |
286 | 286 |
287 ASSERT_TRUE(ClosePlatformFile(file)); | 287 ASSERT_TRUE(ClosePlatformFile(file)); |
288 | 288 |
289 PASS(); | 289 PASS(); |
290 } | 290 } |
OLD | NEW |