| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 // The linux host build of nacl_io can't do wrapping of syscalls so all | 5 // The linux host build of nacl_io can't do wrapping of syscalls so all |
| 6 // these tests must be disabled. | 6 // these tests must be disabled. |
| 7 #if !defined(__linux__) | 7 #if !defined(__linux__) |
| 8 | 8 |
| 9 #include <unistd.h> | 9 #include <unistd.h> |
| 10 | 10 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 statbuf->st_nlink = 4; | 84 statbuf->st_nlink = 4; |
| 85 statbuf->st_uid = 5; | 85 statbuf->st_uid = 5; |
| 86 statbuf->st_gid = 6; | 86 statbuf->st_gid = 6; |
| 87 statbuf->st_rdev = 7; | 87 statbuf->st_rdev = 7; |
| 88 statbuf->st_size = 8; | 88 statbuf->st_size = 8; |
| 89 statbuf->st_atime = 9; | 89 statbuf->st_atime = 9; |
| 90 statbuf->st_mtime = 10; | 90 statbuf->st_mtime = 10; |
| 91 statbuf->st_ctime = 11; | 91 statbuf->st_ctime = 11; |
| 92 } | 92 } |
| 93 | 93 |
| 94 const mode_t kDummyMode = 0xbeef; |
| 94 const int kDummyInt = 0xdedbeef; | 95 const int kDummyInt = 0xdedbeef; |
| 95 const int kDummyInt2 = 0xcabba6e; | 96 const int kDummyInt2 = 0xcabba6e; |
| 96 const int kDummyInt3 = 0xf00ba4; | 97 const int kDummyInt3 = 0xf00ba4; |
| 97 const int kDummyInt4 = 0xabacdba; | 98 const int kDummyInt4 = 0xabacdba; |
| 98 const size_t kDummySizeT = 0x60067e; | 99 const size_t kDummySizeT = 0x60067e; |
| 99 const char* kDummyConstChar = "foobar"; | 100 const char* kDummyConstChar = "foobar"; |
| 100 const char* kDummyConstChar2 = "g00gl3"; | 101 const char* kDummyConstChar2 = "g00gl3"; |
| 101 const char* kDummyConstChar3 = "fr00gl3"; | 102 const char* kDummyConstChar3 = "fr00gl3"; |
| 102 const void* kDummyVoidPtr = "blahblah"; | 103 const void* kDummyVoidPtr = "blahblah"; |
| 103 const uid_t kDummyUid = 1001; | 104 const uid_t kDummyUid = 1001; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 | 145 |
| 145 TEST_F(KernelWrapTest, chdir) { | 146 TEST_F(KernelWrapTest, chdir) { |
| 146 EXPECT_CALL(mock, chdir(kDummyConstChar)).WillOnce(Return(-1)); | 147 EXPECT_CALL(mock, chdir(kDummyConstChar)).WillOnce(Return(-1)); |
| 147 EXPECT_EQ(-1, chdir(kDummyConstChar)); | 148 EXPECT_EQ(-1, chdir(kDummyConstChar)); |
| 148 | 149 |
| 149 EXPECT_CALL(mock, chdir(kDummyConstChar)).WillOnce(Return(0)); | 150 EXPECT_CALL(mock, chdir(kDummyConstChar)).WillOnce(Return(0)); |
| 150 EXPECT_EQ(0, chdir(kDummyConstChar)); | 151 EXPECT_EQ(0, chdir(kDummyConstChar)); |
| 151 } | 152 } |
| 152 | 153 |
| 153 TEST_F(KernelWrapTest, chmod) { | 154 TEST_F(KernelWrapTest, chmod) { |
| 154 EXPECT_CALL(mock, chmod(kDummyConstChar, kDummyInt)) | 155 EXPECT_CALL(mock, chmod(kDummyConstChar, kDummyMode)) |
| 155 .WillOnce(Return(kDummyInt2)); | 156 .WillOnce(Return(kDummyInt2)); |
| 156 EXPECT_EQ(kDummyInt2, chmod(kDummyConstChar, kDummyInt)); | 157 EXPECT_EQ(kDummyInt2,chmod(kDummyConstChar, kDummyMode)); |
| 157 } | 158 } |
| 158 | 159 |
| 159 TEST_F(KernelWrapTest, chown) { | 160 TEST_F(KernelWrapTest, chown) { |
| 160 EXPECT_CALL(mock, chown(kDummyConstChar, kDummyUid, kDummyGid)) | 161 EXPECT_CALL(mock, chown(kDummyConstChar, kDummyUid, kDummyGid)) |
| 161 .WillOnce(Return(kDummyInt)); | 162 .WillOnce(Return(kDummyInt)); |
| 162 EXPECT_EQ(kDummyInt, chown(kDummyConstChar, kDummyUid, kDummyGid)); | 163 EXPECT_EQ(kDummyInt, chown(kDummyConstChar, kDummyUid, kDummyGid)); |
| 163 } | 164 } |
| 164 | 165 |
| 165 TEST_F(KernelWrapTest, close) { | 166 TEST_F(KernelWrapTest, close) { |
| 166 // The way we wrap close does not support returning arbitrary values, so we | 167 // The way we wrap close does not support returning arbitrary values, so we |
| (...skipping 21 matching lines...) Expand all Loading... |
| 188 EXPECT_EQ(-1, dup2(kDummyInt, kDummyInt2)); | 189 EXPECT_EQ(-1, dup2(kDummyInt, kDummyInt2)); |
| 189 } | 190 } |
| 190 | 191 |
| 191 TEST_F(KernelWrapTest, fchdir) { | 192 TEST_F(KernelWrapTest, fchdir) { |
| 192 EXPECT_CALL(mock, fchdir(kDummyInt)) | 193 EXPECT_CALL(mock, fchdir(kDummyInt)) |
| 193 .WillOnce(Return(-1)); | 194 .WillOnce(Return(-1)); |
| 194 EXPECT_EQ(-1, fchdir(kDummyInt)); | 195 EXPECT_EQ(-1, fchdir(kDummyInt)); |
| 195 } | 196 } |
| 196 | 197 |
| 197 TEST_F(KernelWrapTest, fchmod) { | 198 TEST_F(KernelWrapTest, fchmod) { |
| 198 EXPECT_CALL(mock, fchmod(kDummyInt, kDummyInt2)) .WillOnce(Return(-1)); | 199 EXPECT_CALL(mock, fchmod(kDummyInt, kDummyMode)) |
| 199 EXPECT_EQ(-1, fchmod(kDummyInt, kDummyInt2)); | 200 .WillOnce(Return(-1)); |
| 201 EXPECT_EQ(-1, fchmod(kDummyInt, kDummyMode)); |
| 200 | 202 |
| 201 EXPECT_CALL(mock, fchmod(kDummyInt, kDummyInt2)) .WillOnce(Return(0)); | 203 EXPECT_CALL(mock, fchmod(kDummyInt, kDummyMode)) .WillOnce(Return(0)); |
| 202 EXPECT_EQ(0, fchmod(kDummyInt, kDummyInt2)); | 204 EXPECT_EQ(0, fchmod(kDummyInt, kDummyMode)); |
| 203 } | 205 } |
| 204 | 206 |
| 205 TEST_F(KernelWrapTest, fchown) { | 207 TEST_F(KernelWrapTest, fchown) { |
| 206 EXPECT_CALL(mock, fchown(kDummyInt, kDummyUid, kDummyGid)) | 208 EXPECT_CALL(mock, fchown(kDummyInt, kDummyUid, kDummyGid)) |
| 207 .WillOnce(Return(kDummyInt)); | 209 .WillOnce(Return(kDummyInt)); |
| 208 EXPECT_EQ(kDummyInt, fchown(kDummyInt, kDummyUid, kDummyGid)); | 210 EXPECT_EQ(kDummyInt, fchown(kDummyInt, kDummyUid, kDummyGid)); |
| 209 } | 211 } |
| 210 | 212 |
| 211 TEST_F(KernelWrapTest, fcntl) { | 213 TEST_F(KernelWrapTest, fcntl) { |
| 212 char buffer[] = "fcntl"; | 214 char buffer[] = "fcntl"; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 } | 251 } |
| 250 | 252 |
| 251 TEST_F(KernelWrapTest, getcwd) { | 253 TEST_F(KernelWrapTest, getcwd) { |
| 252 char result[] = "getcwd_result"; | 254 char result[] = "getcwd_result"; |
| 253 char buffer[] = "getcwd"; | 255 char buffer[] = "getcwd"; |
| 254 EXPECT_CALL(mock, getcwd(buffer, kDummySizeT)).WillOnce(Return(result)); | 256 EXPECT_CALL(mock, getcwd(buffer, kDummySizeT)).WillOnce(Return(result)); |
| 255 EXPECT_EQ(result, getcwd(buffer, kDummySizeT)); | 257 EXPECT_EQ(result, getcwd(buffer, kDummySizeT)); |
| 256 } | 258 } |
| 257 | 259 |
| 258 TEST_F(KernelWrapTest, getdents) { | 260 TEST_F(KernelWrapTest, getdents) { |
| 259 #ifndef __GLIBC__ | 261 #if !defined( __GLIBC__) && !defined(__BIONIC__) |
| 260 // TODO(sbc): Find a way to test the getdents wrapper under glibc. | 262 // TODO(sbc): Find a way to test the getdents wrapper under glibc. |
| 261 // It looks like the only way to exercise it is to call readdir(2). | 263 // It looks like the only way to exercise it is to call readdir(2). |
| 262 // There is an internal glibc function __getdents that will call the | 264 // There is an internal glibc function __getdents that will call the |
| 263 // IRT but that cannot be accessed from here as glibc does not export it. | 265 // IRT but that cannot be accessed from here as glibc does not export it. |
| 264 int dummy_val; | 266 int dummy_val; |
| 265 void* void_ptr = &dummy_val; | 267 void* void_ptr = &dummy_val; |
| 266 EXPECT_CALL(mock, getdents(kDummyInt, void_ptr, kDummyInt2)) | 268 EXPECT_CALL(mock, getdents(kDummyInt, void_ptr, kDummyInt2)) |
| 267 .WillOnce(Return(kDummyInt2)); | 269 .WillOnce(Return(kDummyInt2)); |
| 268 EXPECT_EQ(kDummyInt2, getdents(kDummyInt, void_ptr, kDummyInt2)); | 270 EXPECT_EQ(kDummyInt2, getdents(kDummyInt, void_ptr, kDummyInt2)); |
| 269 #endif | 271 #endif |
| (...skipping 13 matching lines...) Expand all Loading... |
| 283 #pragma GCC diagnostic warning "-Wdeprecated-declarations" | 285 #pragma GCC diagnostic warning "-Wdeprecated-declarations" |
| 284 #endif | 286 #endif |
| 285 | 287 |
| 286 TEST_F(KernelWrapTest, ioctl) { | 288 TEST_F(KernelWrapTest, ioctl) { |
| 287 char buffer[] = "ioctl"; | 289 char buffer[] = "ioctl"; |
| 288 EXPECT_CALL(mock, ioctl(kDummyInt, kDummyInt2, _)) | 290 EXPECT_CALL(mock, ioctl(kDummyInt, kDummyInt2, _)) |
| 289 .WillOnce(Return(kDummyInt3)); | 291 .WillOnce(Return(kDummyInt3)); |
| 290 EXPECT_EQ(kDummyInt3, ioctl(kDummyInt, kDummyInt2, buffer)); | 292 EXPECT_EQ(kDummyInt3, ioctl(kDummyInt, kDummyInt2, buffer)); |
| 291 } | 293 } |
| 292 | 294 |
| 295 #if !defined(__BIONIC__) |
| 293 TEST_F(KernelWrapTest, isatty) { | 296 TEST_F(KernelWrapTest, isatty) { |
| 294 EXPECT_CALL(mock, isatty(kDummyInt)).WillOnce(Return(kDummyInt2)); | 297 EXPECT_CALL(mock, isatty(kDummyInt)).WillOnce(Return(kDummyInt2)); |
| 295 EXPECT_EQ(kDummyInt2, isatty(kDummyInt)); | 298 EXPECT_EQ(kDummyInt2, isatty(kDummyInt)); |
| 296 } | 299 } |
| 300 #endif |
| 297 | 301 |
| 298 TEST_F(KernelWrapTest, kill) { | 302 TEST_F(KernelWrapTest, kill) { |
| 299 EXPECT_CALL(mock, kill(kDummyInt, kDummyInt2)).WillOnce(Return(kDummyInt3)); | 303 EXPECT_CALL(mock, kill(kDummyInt, kDummyInt2)).WillOnce(Return(kDummyInt3)); |
| 300 EXPECT_EQ(kDummyInt3, kill(kDummyInt, kDummyInt2)); | 304 EXPECT_EQ(kDummyInt3, kill(kDummyInt, kDummyInt2)); |
| 301 } | 305 } |
| 302 | 306 |
| 303 TEST_F(KernelWrapTest, lchown) { | 307 TEST_F(KernelWrapTest, lchown) { |
| 304 EXPECT_CALL(mock, lchown(kDummyConstChar, kDummyUid, kDummyGid)) | 308 EXPECT_CALL(mock, lchown(kDummyConstChar, kDummyUid, kDummyGid)) |
| 305 .WillOnce(Return(kDummyInt)); | 309 .WillOnce(Return(kDummyInt)); |
| 306 EXPECT_EQ(kDummyInt, lchown(kDummyConstChar, kDummyUid, kDummyGid)); | 310 EXPECT_EQ(kDummyInt, lchown(kDummyConstChar, kDummyUid, kDummyGid)); |
| 307 } | 311 } |
| 308 | 312 |
| 309 TEST_F(KernelWrapTest, link) { | 313 TEST_F(KernelWrapTest, link) { |
| 310 EXPECT_CALL(mock, link(kDummyConstChar, kDummyConstChar2)) | 314 EXPECT_CALL(mock, link(kDummyConstChar, kDummyConstChar2)) |
| 311 .WillOnce(Return(kDummyInt)); | 315 .WillOnce(Return(kDummyInt)); |
| 312 EXPECT_EQ(kDummyInt, link(kDummyConstChar, kDummyConstChar2)); | 316 EXPECT_EQ(kDummyInt, link(kDummyConstChar, kDummyConstChar2)); |
| 313 } | 317 } |
| 314 | 318 |
| 315 TEST_F(KernelWrapTest, lseek) { | 319 TEST_F(KernelWrapTest, lseek) { |
| 316 EXPECT_CALL(mock, lseek(kDummyInt, kDummyInt2, kDummyInt3)) | 320 EXPECT_CALL(mock, lseek(kDummyInt, kDummyInt2, kDummyInt3)) |
| 317 .WillOnce(Return(kDummyInt4)); | 321 .WillOnce(Return(kDummyInt4)); |
| 318 EXPECT_EQ(kDummyInt4, lseek(kDummyInt, kDummyInt2, kDummyInt3)); | 322 EXPECT_EQ(kDummyInt4, lseek(kDummyInt, kDummyInt2, kDummyInt3)); |
| 319 } | 323 } |
| 320 | 324 |
| 321 TEST_F(KernelWrapTest, mkdir) { | 325 TEST_F(KernelWrapTest, mkdir) { |
| 322 #if defined(WIN32) | 326 #if defined(WIN32) |
| 323 EXPECT_CALL(mock, mkdir(kDummyConstChar, 0777)).WillOnce(Return(kDummyInt2)); | 327 EXPECT_CALL(mock, mkdir(kDummyConstChar, 0777)).WillOnce(Return(kDummyInt2)); |
| 324 EXPECT_EQ(kDummyInt2, mkdir(kDummyConstChar)); | 328 EXPECT_EQ(kDummyInt2, mkdir(kDummyConstChar)); |
| 325 #else | 329 #else |
| 326 EXPECT_CALL(mock, mkdir(kDummyConstChar, kDummyInt)) | 330 EXPECT_CALL(mock, mkdir(kDummyConstChar, kDummyMode)) |
| 327 .WillOnce(Return(kDummyInt2)); | 331 .WillOnce(Return(kDummyInt2)); |
| 328 EXPECT_EQ(kDummyInt2, mkdir(kDummyConstChar, kDummyInt)); | 332 EXPECT_EQ(kDummyInt2, mkdir(kDummyConstChar, kDummyMode)); |
| 329 #endif | 333 #endif |
| 330 } | 334 } |
| 331 | 335 |
| 332 TEST_F(KernelWrapTest, mmap) { | 336 TEST_F(KernelWrapTest, mmap) { |
| 333 // We only wrap mmap if |flags| has the MAP_ANONYMOUS bit unset. | 337 // We only wrap mmap if |flags| has the MAP_ANONYMOUS bit unset. |
| 334 int flags = kDummyInt2 & ~MAP_ANONYMOUS; | 338 int flags = kDummyInt2 & ~MAP_ANONYMOUS; |
| 335 | 339 |
| 336 const size_t kDummySizeT2 = 0xbadf00d; | 340 const size_t kDummySizeT2 = 0xbadf00d; |
| 337 int dummy1 = 123; | 341 int dummy1 = 123; |
| 338 int dummy2 = 456; | 342 int dummy2 = 456; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 // one. The result returned is from the "real" mmap. | 378 // one. The result returned is from the "real" mmap. |
| 375 int dummy1 = 123; | 379 int dummy1 = 123; |
| 376 void* kDummyVoidPtr = &dummy1; | 380 void* kDummyVoidPtr = &dummy1; |
| 377 size_t kDummySizeT = sizeof(kDummyVoidPtr); | 381 size_t kDummySizeT = sizeof(kDummyVoidPtr); |
| 378 EXPECT_CALL(mock, munmap(kDummyVoidPtr, kDummySizeT)); | 382 EXPECT_CALL(mock, munmap(kDummyVoidPtr, kDummySizeT)); |
| 379 munmap(kDummyVoidPtr, kDummySizeT); | 383 munmap(kDummyVoidPtr, kDummySizeT); |
| 380 } | 384 } |
| 381 | 385 |
| 382 | 386 |
| 383 TEST_F(KernelWrapTest, open) { | 387 TEST_F(KernelWrapTest, open) { |
| 384 EXPECT_CALL(mock, open(kDummyConstChar, kDummyInt)) | 388 // We pass O_RDONLY because we do not want an error in flags translation |
| 389 EXPECT_CALL(mock, open(kDummyConstChar, 0)) |
| 385 .WillOnce(Return(kDummyInt2)); | 390 .WillOnce(Return(kDummyInt2)); |
| 386 EXPECT_EQ(kDummyInt2, open(kDummyConstChar, kDummyInt)); | 391 EXPECT_EQ(kDummyInt2, open(kDummyConstChar, 0)); |
| 387 | 392 |
| 388 EXPECT_CALL(mock, open(kDummyConstChar, kDummyInt)) | 393 EXPECT_CALL(mock, open(kDummyConstChar, 0)) |
| 389 .WillOnce(Return(kDummyInt2)); | 394 .WillOnce(Return(kDummyInt2)); |
| 390 EXPECT_EQ(kDummyInt2, open(kDummyConstChar, kDummyInt)); | 395 EXPECT_EQ(kDummyInt2, open(kDummyConstChar, 0)); |
| 391 } | 396 } |
| 392 | 397 |
| 393 TEST_F(KernelWrapTest, pipe) { | 398 TEST_F(KernelWrapTest, pipe) { |
| 394 int fds[] = {1, 2}; | 399 int fds[] = {1, 2}; |
| 395 EXPECT_CALL(mock, pipe(fds)).WillOnce(Return(kDummyInt)); | 400 EXPECT_CALL(mock, pipe(fds)).WillOnce(Return(kDummyInt)); |
| 396 EXPECT_EQ(kDummyInt, pipe(fds)); | 401 EXPECT_EQ(kDummyInt, pipe(fds)); |
| 397 } | 402 } |
| 398 | 403 |
| 399 TEST_F(KernelWrapTest, read) { | 404 TEST_F(KernelWrapTest, read) { |
| 400 int dummy_value; | 405 int dummy_value; |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 EXPECT_THAT(&in_statbuf, IsEqualToStatbuf(&out_statbuf)); | 481 EXPECT_THAT(&in_statbuf, IsEqualToStatbuf(&out_statbuf)); |
| 477 EXPECT_EQ(-1, stat(kDummyConstChar, &out_statbuf)); | 482 EXPECT_EQ(-1, stat(kDummyConstChar, &out_statbuf)); |
| 478 } | 483 } |
| 479 | 484 |
| 480 TEST_F(KernelWrapTest, symlink) { | 485 TEST_F(KernelWrapTest, symlink) { |
| 481 EXPECT_CALL(mock, symlink(kDummyConstChar, kDummyConstChar2)) | 486 EXPECT_CALL(mock, symlink(kDummyConstChar, kDummyConstChar2)) |
| 482 .WillOnce(Return(kDummyInt)); | 487 .WillOnce(Return(kDummyInt)); |
| 483 EXPECT_EQ(kDummyInt, symlink(kDummyConstChar, kDummyConstChar2)); | 488 EXPECT_EQ(kDummyInt, symlink(kDummyConstChar, kDummyConstChar2)); |
| 484 } | 489 } |
| 485 | 490 |
| 491 #ifndef __BIONIC__ |
| 486 TEST_F(KernelWrapTest, tcflush) { | 492 TEST_F(KernelWrapTest, tcflush) { |
| 487 EXPECT_CALL(mock, tcflush(kDummyInt, kDummyInt2)) | 493 EXPECT_CALL(mock, tcflush(kDummyInt, kDummyInt2)) |
| 488 .WillOnce(Return(kDummyInt3)); | 494 .WillOnce(Return(kDummyInt3)); |
| 489 EXPECT_EQ(kDummyInt3, tcflush(kDummyInt, kDummyInt2)); | 495 EXPECT_EQ(kDummyInt3, tcflush(kDummyInt, kDummyInt2)); |
| 490 } | 496 } |
| 491 | 497 |
| 492 TEST_F(KernelWrapTest, tcgetattr) { | 498 TEST_F(KernelWrapTest, tcgetattr) { |
| 493 struct termios term; | 499 struct termios term; |
| 494 EXPECT_CALL(mock, tcgetattr(kDummyInt, &term)).WillOnce(Return(kDummyInt2)); | 500 EXPECT_CALL(mock, tcgetattr(kDummyInt, &term)).WillOnce(Return(kDummyInt2)); |
| 495 EXPECT_EQ(kDummyInt2, tcgetattr(kDummyInt, &term)); | 501 EXPECT_EQ(kDummyInt2, tcgetattr(kDummyInt, &term)); |
| 496 } | 502 } |
| 497 | 503 |
| 498 TEST_F(KernelWrapTest, tcsetattr) { | 504 TEST_F(KernelWrapTest, tcsetattr) { |
| 499 struct termios term; | 505 struct termios term; |
| 500 EXPECT_CALL(mock, tcsetattr(kDummyInt, kDummyInt2, &term)) | 506 EXPECT_CALL(mock, tcsetattr(kDummyInt, kDummyInt2, &term)) |
| 501 .WillOnce(Return(kDummyInt3)); | 507 .WillOnce(Return(kDummyInt3)); |
| 502 EXPECT_EQ(kDummyInt3, tcsetattr(kDummyInt, kDummyInt2, &term)); | 508 EXPECT_EQ(kDummyInt3, tcsetattr(kDummyInt, kDummyInt2, &term)); |
| 503 } | 509 } |
| 510 #endif |
| 504 | 511 |
| 505 TEST_F(KernelWrapTest, umount) { | 512 TEST_F(KernelWrapTest, umount) { |
| 506 EXPECT_CALL(mock, umount(kDummyConstChar)).WillOnce(Return(kDummyInt)); | 513 EXPECT_CALL(mock, umount(kDummyConstChar)).WillOnce(Return(kDummyInt)); |
| 507 EXPECT_EQ(kDummyInt, umount(kDummyConstChar)); | 514 EXPECT_EQ(kDummyInt, umount(kDummyConstChar)); |
| 508 } | 515 } |
| 509 | 516 |
| 510 TEST_F(KernelWrapTest, truncate) { | 517 TEST_F(KernelWrapTest, truncate) { |
| 511 EXPECT_CALL(mock, truncate(kDummyConstChar, kDummyInt3)).WillOnce(Return(-1)); | 518 EXPECT_CALL(mock, truncate(kDummyConstChar, kDummyInt3)).WillOnce(Return(-1)); |
| 512 EXPECT_EQ(-1, truncate(kDummyConstChar, kDummyInt3)); | 519 EXPECT_EQ(-1, truncate(kDummyConstChar, kDummyInt3)); |
| 513 | 520 |
| 514 EXPECT_CALL(mock, truncate(kDummyConstChar, kDummyInt3)).WillOnce(Return(0)); | 521 EXPECT_CALL(mock, truncate(kDummyConstChar, kDummyInt3)).WillOnce(Return(0)); |
| 515 EXPECT_EQ(0, truncate(kDummyConstChar, kDummyInt3)); | 522 EXPECT_EQ(0, truncate(kDummyConstChar, kDummyInt3)); |
| 516 } | 523 } |
| 517 | 524 |
| 525 #ifndef __BIONIC__ |
| 518 TEST_F(KernelWrapTest, lstat) { | 526 TEST_F(KernelWrapTest, lstat) { |
| 519 struct stat buf; | 527 struct stat buf; |
| 520 EXPECT_CALL(mock, lstat(kDummyConstChar, &buf)).WillOnce(Return(-1)); | 528 EXPECT_CALL(mock, lstat(kDummyConstChar, &buf)).WillOnce(Return(-1)); |
| 521 EXPECT_EQ(-1, lstat(kDummyConstChar, &buf)); | 529 EXPECT_EQ(-1, lstat(kDummyConstChar, &buf)); |
| 522 | 530 |
| 523 EXPECT_CALL(mock, lstat(kDummyConstChar, &buf)).WillOnce(Return(0)); | 531 EXPECT_CALL(mock, lstat(kDummyConstChar, &buf)).WillOnce(Return(0)); |
| 524 EXPECT_EQ(0, lstat(kDummyConstChar, &buf)); | 532 EXPECT_EQ(0, lstat(kDummyConstChar, &buf)); |
| 525 } | 533 } |
| 534 #endif |
| 526 | 535 |
| 527 TEST_F(KernelWrapTest, unlink) { | 536 TEST_F(KernelWrapTest, unlink) { |
| 528 EXPECT_CALL(mock, unlink(kDummyConstChar)).WillOnce(Return(kDummyInt)); | 537 EXPECT_CALL(mock, unlink(kDummyConstChar)).WillOnce(Return(kDummyInt)); |
| 529 EXPECT_EQ(kDummyInt, unlink(kDummyConstChar)); | 538 EXPECT_EQ(kDummyInt, unlink(kDummyConstChar)); |
| 530 } | 539 } |
| 531 | 540 |
| 532 TEST_F(KernelWrapTest, utime) { | 541 TEST_F(KernelWrapTest, utime) { |
| 533 const struct utimbuf* times = NULL; | 542 const struct utimbuf* times = NULL; |
| 534 EXPECT_CALL(mock, utime(kDummyConstChar, times)).WillOnce(Return(kDummyInt)); | 543 EXPECT_CALL(mock, utime(kDummyConstChar, times)).WillOnce(Return(kDummyInt)); |
| 535 EXPECT_EQ(kDummyInt, utime(kDummyConstChar, times)); | 544 EXPECT_EQ(kDummyInt, utime(kDummyConstChar, times)); |
| 536 } | 545 } |
| 537 | 546 |
| 538 TEST_F(KernelWrapTest, utimes) { | 547 TEST_F(KernelWrapTest, utimes) { |
| 539 struct timeval* times = NULL; | 548 struct timeval* times = NULL; |
| 540 EXPECT_CALL(mock, utimes(kDummyConstChar, times)).WillOnce(Return(-1)); | 549 EXPECT_CALL(mock, utimes(kDummyConstChar, times)).WillOnce(Return(-1)); |
| 541 EXPECT_EQ(-1, utimes(kDummyConstChar, times)); | 550 EXPECT_EQ(-1, utimes(kDummyConstChar, times)); |
| 542 } | 551 } |
| 543 | 552 |
| 544 TEST_F(KernelWrapTest, write) { | 553 TEST_F(KernelWrapTest, write) { |
| 545 EXPECT_CALL(mock, write(kDummyInt, kDummyVoidPtr, kDummyInt2)) | 554 EXPECT_CALL(mock, write(kDummyInt, kDummyVoidPtr, kDummyInt2)) |
| 546 .WillOnce(Return(kDummyInt3)); | 555 .WillOnce(Return(kDummyInt3)); |
| 547 EXPECT_EQ(kDummyInt3, write(kDummyInt, kDummyVoidPtr, kDummyInt2)); | 556 EXPECT_EQ(kDummyInt3, write(kDummyInt, kDummyVoidPtr, kDummyInt2)); |
| 548 } | 557 } |
| 549 | 558 |
| 550 #ifdef PROVIDES_SOCKET_API | 559 #if defined(PROVIDES_SOCKET_API) and !defined(__BIONIC__) |
| 551 TEST_F(KernelWrapTest, poll) { | 560 TEST_F(KernelWrapTest, poll) { |
| 552 struct pollfd fds; | 561 struct pollfd fds; |
| 553 EXPECT_CALL(mock, poll(&fds, kDummyInt, kDummyInt2)) | 562 EXPECT_CALL(mock, poll(&fds, kDummyInt, kDummyInt2)) |
| 554 .WillOnce(Return(kDummyInt3)); | 563 .WillOnce(Return(kDummyInt3)); |
| 555 EXPECT_EQ(kDummyInt3, poll(&fds, kDummyInt, kDummyInt2)); | 564 EXPECT_EQ(kDummyInt3, poll(&fds, kDummyInt, kDummyInt2)); |
| 556 } | 565 } |
| 557 | 566 |
| 558 TEST_F(KernelWrapTest, select) { | 567 TEST_F(KernelWrapTest, select) { |
| 559 fd_set readfds; | 568 fd_set readfds; |
| 560 fd_set writefds; | 569 fd_set writefds; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 643 socklen_t len; | 652 socklen_t len; |
| 644 EXPECT_CALL( | 653 EXPECT_CALL( |
| 645 mock, | 654 mock, |
| 646 recvfrom(kDummyInt, dummy_void_ptr, kDummyInt2, kDummyInt3, &addr, &len)) | 655 recvfrom(kDummyInt, dummy_void_ptr, kDummyInt2, kDummyInt3, &addr, &len)) |
| 647 .WillOnce(Return(kDummyInt4)); | 656 .WillOnce(Return(kDummyInt4)); |
| 648 EXPECT_EQ( | 657 EXPECT_EQ( |
| 649 kDummyInt4, | 658 kDummyInt4, |
| 650 recvfrom(kDummyInt, dummy_void_ptr, kDummyInt2, kDummyInt3, &addr, &len)); | 659 recvfrom(kDummyInt, dummy_void_ptr, kDummyInt2, kDummyInt3, &addr, &len)); |
| 651 } | 660 } |
| 652 | 661 |
| 662 #ifndef __BIONIC__ |
| 653 TEST_F(KernelWrapTest, recvmsg) { | 663 TEST_F(KernelWrapTest, recvmsg) { |
| 654 struct msghdr msg; | 664 struct msghdr msg; |
| 655 EXPECT_CALL(mock, recvmsg(kDummyInt, &msg, kDummyInt2)) | 665 EXPECT_CALL(mock, recvmsg(kDummyInt, &msg, kDummyInt2)) |
| 656 .WillOnce(Return(kDummyInt3)); | 666 .WillOnce(Return(kDummyInt3)); |
| 657 EXPECT_EQ(kDummyInt3, recvmsg(kDummyInt, &msg, kDummyInt2)); | 667 EXPECT_EQ(kDummyInt3, recvmsg(kDummyInt, &msg, kDummyInt2)); |
| 658 } | 668 } |
| 669 #endif |
| 659 | 670 |
| 660 TEST_F(KernelWrapTest, send) { | 671 TEST_F(KernelWrapTest, send) { |
| 661 EXPECT_CALL(mock, send(kDummyInt, kDummyVoidPtr, kDummySizeT, kDummyInt2)) | 672 EXPECT_CALL(mock, send(kDummyInt, kDummyVoidPtr, kDummySizeT, kDummyInt2)) |
| 662 .WillOnce(Return(kDummyInt3)); | 673 .WillOnce(Return(kDummyInt3)); |
| 663 EXPECT_EQ(kDummyInt3, | 674 EXPECT_EQ(kDummyInt3, |
| 664 send(kDummyInt, kDummyVoidPtr, kDummySizeT, kDummyInt2)); | 675 send(kDummyInt, kDummyVoidPtr, kDummySizeT, kDummyInt2)); |
| 665 } | 676 } |
| 666 | 677 |
| 667 TEST_F(KernelWrapTest, sendto) { | 678 TEST_F(KernelWrapTest, sendto) { |
| 668 const socklen_t kDummySockLen = 0x50cc5; | 679 const socklen_t kDummySockLen = 0x50cc5; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 int dummy_val; | 730 int dummy_val; |
| 720 EXPECT_CALL(mock, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)) | 731 EXPECT_CALL(mock, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)) |
| 721 .WillOnce(Return(kDummyInt4)); | 732 .WillOnce(Return(kDummyInt4)); |
| 722 EXPECT_EQ(kDummyInt4, | 733 EXPECT_EQ(kDummyInt4, |
| 723 socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)); | 734 socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)); |
| 724 } | 735 } |
| 725 | 736 |
| 726 #endif // PROVIDES_SOCKET_API | 737 #endif // PROVIDES_SOCKET_API |
| 727 | 738 |
| 728 #endif // __linux__ | 739 #endif // __linux__ |
| OLD | NEW |