summaryrefslogtreecommitdiffstats
path: root/native_client_sdk/src
diff options
context:
space:
mode:
authorsbc <sbc@chromium.org>2015-07-29 16:59:44 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-30 00:00:19 +0000
commit2253aa2698c8bfe5544987f5aa93f31211f04f5f (patch)
tree714e1afde3f126ee9bb31872aa7d09735f1d6ea5 /native_client_sdk/src
parentd82a1b6e8d8d9cb25ce2bbe6e7ab5fdf5fe6050e (diff)
downloadchromium_src-2253aa2698c8bfe5544987f5aa93f31211f04f5f.zip
chromium_src-2253aa2698c8bfe5544987f5aa93f31211f04f5f.tar.gz
chromium_src-2253aa2698c8bfe5544987f5aa93f31211f04f5f.tar.bz2
[NaCl SDK] nacl_io: Fix compile error in kernel_wrap_glibc.cc
This snuk in with https://codereview.chromium.org/1214163004 because the SDK trybots were not run. This change has CQ_EXTRA_TRYBOTS to ensure coverage. CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:linux_nacl_sdk;tryserver.chromium.mac:mac_nacl_sdk;tryserver.chromium.win:win_nacl_sdk Review URL: https://codereview.chromium.org/1261173002 Cr-Commit-Position: refs/heads/master@{#341026}
Diffstat (limited to 'native_client_sdk/src')
-rw-r--r--native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc8
-rw-r--r--native_client_sdk/src/tests/nacl_io_test/kernel_wrap_test.cc7
-rw-r--r--native_client_sdk/src/tests/nacl_io_test/mock_kernel_proxy.h2
3 files changed, 8 insertions, 9 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc b/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
index 0fda3bc4..8e45a35 100644
--- a/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
+++ b/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
@@ -194,7 +194,8 @@ int WRAP(getcwd)(char* buf, size_t size) {
return 0;
}
-int WRAP(getdents)(int fd, dirent* nacl_buf, size_t nacl_count, size_t* nread) {
+int WRAP(getdents)(int fd, nacl_abi_dirent* nacl_buf, size_t nacl_count,
+ size_t* nread) {
int nacl_offset = 0;
// "buf" contains dirent(s); "nacl_buf" contains nacl_abi_dirent(s).
// nacl_abi_dirent(s) are smaller than dirent(s), so nacl_count bytes buffer
@@ -203,13 +204,12 @@ int WRAP(getdents)(int fd, dirent* nacl_buf, size_t nacl_count, size_t* nread) {
int offset = 0;
int count;
- count = ki_getdents(fd, buf, nacl_count);
+ count = ki_getdents(fd, (dirent*)buf, nacl_count);
RTN_ERRNO_IF(count < 0);
while (offset < count) {
dirent* d = (dirent*)(buf + offset);
- nacl_abi_dirent* nacl_d = static_cast<nacl_abi_dirent*>(
- (char*)nacl_buf + nacl_offset);
+ nacl_abi_dirent* nacl_d = (nacl_abi_dirent*)((char*)nacl_buf + nacl_offset);
nacl_d->nacl_abi_d_ino = d->d_ino;
nacl_d->nacl_abi_d_off = d->d_off;
nacl_d->nacl_abi_d_reclen = d->d_reclen - d_name_shift;
diff --git a/native_client_sdk/src/tests/nacl_io_test/kernel_wrap_test.cc b/native_client_sdk/src/tests/nacl_io_test/kernel_wrap_test.cc
index 75ec6b7..5087281 100644
--- a/native_client_sdk/src/tests/nacl_io_test/kernel_wrap_test.cc
+++ b/native_client_sdk/src/tests/nacl_io_test/kernel_wrap_test.cc
@@ -352,11 +352,10 @@ TEST_F(KernelWrapTest, getdents) {
// It looks like the only way to exercise it is to call readdir(2).
// There is an internal glibc function __getdents that will call the
// IRT but that cannot be accessed from here as glibc does not export it.
- int dummy_val;
- void* void_ptr = &dummy_val;
- EXPECT_CALL(mock, getdents(kDummyInt, void_ptr, kDummyInt2))
+ struct dirent dirent;
+ EXPECT_CALL(mock, getdents(kDummyInt, &dirent, kDummyInt2))
.WillOnce(Return(kDummyInt2));
- EXPECT_EQ(kDummyInt2, getdents(kDummyInt, void_ptr, kDummyInt2));
+ EXPECT_EQ(kDummyInt2, getdents(kDummyInt, &dirent, kDummyInt2));
#endif
}
diff --git a/native_client_sdk/src/tests/nacl_io_test/mock_kernel_proxy.h b/native_client_sdk/src/tests/nacl_io_test/mock_kernel_proxy.h
index e121c6c..abd6c83 100644
--- a/native_client_sdk/src/tests/nacl_io_test/mock_kernel_proxy.h
+++ b/native_client_sdk/src/tests/nacl_io_test/mock_kernel_proxy.h
@@ -35,7 +35,7 @@ class MockKernelProxy : public nacl_io::KernelProxy {
MOCK_METHOD1(fsync, int(int));
MOCK_METHOD2(futimens, int(int, const struct timespec[2]));
MOCK_METHOD2(getcwd, char*(char*, size_t));
- MOCK_METHOD3(getdents, int(int, void*, unsigned int));
+ MOCK_METHOD3(getdents, int(int, struct dirent*, unsigned int));
MOCK_METHOD1(getwd, char*(char*));
MOCK_METHOD3(ioctl, int(int, int, va_list));
MOCK_METHOD1(isatty, int(int));