Index: native_client_sdk/src/libraries/nacl_io_test/kernel_object_test.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io_test/kernel_object_test.cc b/native_client_sdk/src/libraries/nacl_io_test/kernel_object_test.cc |
index 268c6f51a6efddfaaae1a4e36e1cc28e090e1493..9e6f4832a730b77c207a7a9b76620a7bd1d24645 100644 |
--- a/native_client_sdk/src/libraries/nacl_io_test/kernel_object_test.cc |
+++ b/native_client_sdk/src/libraries/nacl_io_test/kernel_object_test.cc |
@@ -23,22 +23,21 @@ namespace { |
class MountRefMock : public Mount { |
public: |
MountRefMock(int* mount_count, int* handle_count) |
- : mount_count(mount_count), |
- handle_count(handle_count) { |
+ : mount_count(mount_count), handle_count(handle_count) { |
(*mount_count)++; |
} |
- ~MountRefMock() { |
- (*mount_count)--; |
- } |
+ ~MountRefMock() { (*mount_count)--; } |
public: |
- MountNode* Open(const Path& path, int mode) { return NULL; } |
- int Close(MountNode* node) { return 0; } |
- int Unlink(const Path& path) { return 0; } |
- int Mkdir(const Path& path, int permissions) { return 0; } |
- int Rmdir(const Path& path) { return 0; } |
- int Remove(const Path& path) { return 0; } |
+ Error Open(const Path& path, int mode, MountNode** out_node) { |
+ *out_node = NULL; |
+ return ENOSYS; |
+ } |
+ Error Unlink(const Path& path) { return 0; } |
+ Error Mkdir(const Path& path, int permissions) { return 0; } |
+ Error Rmdir(const Path& path) { return 0; } |
+ Error Remove(const Path& path) { return 0; } |
public: |
int* mount_count; |
@@ -47,8 +46,8 @@ class MountRefMock : public Mount { |
class KernelHandleRefMock : public KernelHandle { |
public: |
- KernelHandleRefMock(Mount* mnt, MountNode* node, int flags) |
- : KernelHandle(mnt, node, flags) { |
+ KernelHandleRefMock(Mount* mnt, MountNode* node) |
+ : KernelHandle(mnt, node) { |
MountRefMock* mock_mount = static_cast<MountRefMock*>(mnt); |
(*mock_mount->handle_count)++; |
} |
@@ -61,9 +60,7 @@ class KernelHandleRefMock : public KernelHandle { |
class KernelObjectTest : public ::testing::Test { |
public: |
- KernelObjectTest() |
- : mount_count(0), |
- handle_count(0) { |
+ KernelObjectTest() : mount_count(0), handle_count(0) { |
proxy = new KernelObject; |
mnt = new MountRefMock(&mount_count, &handle_count); |
} |
@@ -81,10 +78,10 @@ class KernelObjectTest : public ::testing::Test { |
} // namespace |
- |
TEST_F(KernelObjectTest, Referencing) { |
- KernelHandle* handle = new KernelHandleRefMock(mnt, NULL, 0); |
- KernelHandle* handle2 = new KernelHandleRefMock(mnt, NULL, 0); |
+ KernelHandle* handle = new KernelHandleRefMock(mnt, NULL); |
+ KernelHandle* handle2 = new KernelHandleRefMock(mnt, NULL); |
+ KernelHandle* result_handle = NULL; |
// Objects should have one ref when we start |
EXPECT_EQ(1, mnt->RefCount()); |
@@ -111,14 +108,16 @@ TEST_F(KernelObjectTest, Referencing) { |
EXPECT_EQ(2, fd3); |
// We should find the handle by either fd |
- EXPECT_EQ(handle, proxy->AcquireHandle(fd1)); |
- EXPECT_EQ(handle, proxy->AcquireHandle(fd2)); |
+ EXPECT_EQ(0, proxy->AcquireHandle(fd1, &result_handle)); |
+ EXPECT_EQ(handle, result_handle); |
+ EXPECT_EQ(0, proxy->AcquireHandle(fd2, &result_handle)); |
+ EXPECT_EQ(handle, result_handle); |
// A non existent fd should fail |
- EXPECT_EQ(NULL, proxy->AcquireHandle(-1)); |
- EXPECT_EQ(EBADF, errno); |
- EXPECT_EQ(NULL, proxy->AcquireHandle(100)); |
- EXPECT_EQ(EBADF, errno); |
+ EXPECT_EQ(EBADF, proxy->AcquireHandle(-1, &result_handle)); |
+ EXPECT_EQ(NULL, result_handle); |
+ EXPECT_EQ(EBADF, proxy->AcquireHandle(100, &result_handle)); |
+ EXPECT_EQ(NULL, result_handle); |
// Acquiring the handle, should have ref'd it |
EXPECT_EQ(4, mnt->RefCount()); |
@@ -155,27 +154,35 @@ TEST_F(KernelObjectTest, Referencing) { |
} |
TEST_F(KernelObjectTest, FreeAndReassignFD) { |
+ KernelHandle* result_handle = NULL; |
+ |
EXPECT_EQ(0, handle_count); |
- KernelHandle* handle = new KernelHandleRefMock(mnt, NULL, 0); |
+ KernelHandle* handle = new KernelHandleRefMock(mnt, NULL); |
EXPECT_EQ(1, handle_count); |
EXPECT_EQ(1, handle->RefCount()); |
// Assign to a non-existent FD |
proxy->FreeAndReassignFD(2, handle); |
- EXPECT_EQ((KernelHandle*)NULL, proxy->AcquireHandle(0)); |
- EXPECT_EQ((KernelHandle*)NULL, proxy->AcquireHandle(1)); |
- EXPECT_EQ(handle, proxy->AcquireHandle(2)); |
+ EXPECT_EQ(EBADF, proxy->AcquireHandle(0, &result_handle)); |
+ EXPECT_EQ(NULL, result_handle); |
+ EXPECT_EQ(EBADF, proxy->AcquireHandle(1, &result_handle)); |
+ EXPECT_EQ(NULL, result_handle); |
+ EXPECT_EQ(0, proxy->AcquireHandle(2, &result_handle)); |
+ EXPECT_EQ(handle, result_handle); |
proxy->ReleaseHandle(handle); |
EXPECT_EQ(1, handle_count); |
EXPECT_EQ(2, handle->RefCount()); |
proxy->FreeAndReassignFD(0, handle); |
- EXPECT_EQ(handle, proxy->AcquireHandle(0)); |
- EXPECT_EQ((KernelHandle*)NULL, proxy->AcquireHandle(1)); |
- EXPECT_EQ(handle, proxy->AcquireHandle(2)); |
+ EXPECT_EQ(0, proxy->AcquireHandle(0, &result_handle)); |
+ EXPECT_EQ(handle, result_handle); |
+ EXPECT_EQ(EBADF, proxy->AcquireHandle(1, &result_handle)); |
+ EXPECT_EQ(NULL, result_handle); |
+ EXPECT_EQ(0, proxy->AcquireHandle(2, &result_handle)); |
+ EXPECT_EQ(handle, result_handle); |
proxy->ReleaseHandle(handle); |
proxy->ReleaseHandle(handle); |