| Index: native_client_sdk/src/libraries/nacl_io_test/mount_test.cc
|
| diff --git a/native_client_sdk/src/libraries/nacl_io_test/mount_test.cc b/native_client_sdk/src/libraries/nacl_io_test/mount_test.cc
|
| index 245d13daf400682c0c856e7a5bb7b3753ed96fde..1b75ab43d2058d4754f38ba5be9390cdbae9e59b 100644
|
| --- a/native_client_sdk/src/libraries/nacl_io_test/mount_test.cc
|
| +++ b/native_client_sdk/src/libraries/nacl_io_test/mount_test.cc
|
| @@ -55,6 +55,7 @@ TEST(MountTest, Sanity) {
|
| EXPECT_EQ(1, mnt->num_nodes());
|
|
|
| // Fail to open non existent file
|
| + EXPECT_EQ(ENOENT, mnt->Access(Path("/foo"), R_OK | W_OK));
|
| EXPECT_EQ(ENOENT, mnt->Open(Path("/foo"), O_RDWR, &result_node));
|
| EXPECT_EQ(NULL, result_node);
|
|
|
| @@ -65,7 +66,12 @@ TEST(MountTest, Sanity) {
|
| return;
|
| EXPECT_EQ(2, file->RefCount());
|
| EXPECT_EQ(2, mnt->num_nodes());
|
| + EXPECT_EQ(0, mnt->Access(Path("/foo"), R_OK | W_OK));
|
| + EXPECT_EQ(EACCES, mnt->Access(Path("/foo"), X_OK));
|
|
|
| + // Write access should be allowed on the root directory.
|
| + EXPECT_EQ(0, mnt->Access(Path("/"), R_OK | W_OK));
|
| + EXPECT_EQ(EACCES, mnt->Access(Path("/"), X_OK));
|
| // Open the root directory for write should fail.
|
| EXPECT_EQ(EISDIR, mnt->Open(Path("/"), O_RDWR, &root));
|
|
|
| @@ -136,6 +142,7 @@ TEST(MountTest, Sanity) {
|
| EXPECT_EQ(1, mnt->num_nodes());
|
|
|
| // Verify the directory is gone
|
| + EXPECT_EQ(ENOENT, mnt->Access(Path("/foo"), F_OK));
|
| EXPECT_EQ(ENOENT, mnt->Open(Path("/foo"), O_RDWR, &file));
|
| EXPECT_EQ(NULL_NODE, file);
|
| }
|
| @@ -160,11 +167,19 @@ TEST(MountTest, MemMountRemove) {
|
| EXPECT_EQ(NULL_NODE, result_node);
|
| }
|
|
|
| +TEST(MountTest, DevAccess) {
|
| + // Should not be able to open non-existent file.
|
| + MountDevMock* mnt = new MountDevMock();
|
| + ASSERT_EQ(ENOENT, mnt->Access(Path("/foo"), F_OK));
|
| +}
|
| +
|
| TEST(MountTest, DevNull) {
|
| MountDevMock* mnt = new MountDevMock();
|
| MountNode* dev_null = NULL;
|
| int result_bytes = 0;
|
|
|
| + ASSERT_EQ(0, mnt->Access(Path("/null"), R_OK | W_OK));
|
| + ASSERT_EQ(EACCES, mnt->Access(Path("/null"), X_OK));
|
| ASSERT_EQ(0, mnt->Open(Path("/null"), O_RDWR, &dev_null));
|
| ASSERT_NE(NULL_NODE, dev_null);
|
|
|
| @@ -186,6 +201,8 @@ TEST(MountTest, DevZero) {
|
| MountNode* dev_zero = NULL;
|
| int result_bytes = 0;
|
|
|
| + ASSERT_EQ(0, mnt->Access(Path("/zero"), R_OK | W_OK));
|
| + ASSERT_EQ(EACCES, mnt->Access(Path("/zero"), X_OK));
|
| ASSERT_EQ(0, mnt->Open(Path("/zero"), O_RDWR, &dev_zero));
|
| ASSERT_NE(NULL_NODE, dev_zero);
|
|
|
| @@ -213,6 +230,8 @@ TEST(MountTest, DevUrandom) {
|
| MountNode* dev_urandom = NULL;
|
| int result_bytes = 0;
|
|
|
| + ASSERT_EQ(0, mnt->Access(Path("/urandom"), R_OK | W_OK));
|
| + ASSERT_EQ(EACCES, mnt->Access(Path("/urandom"), X_OK));
|
| ASSERT_EQ(0, mnt->Open(Path("/urandom"), O_RDWR, &dev_urandom));
|
| ASSERT_NE(NULL_NODE, dev_urandom);
|
|
|
|
|