| Index: native_client_sdk/src/tests/nacl_io_test/kernel_proxy_test.cc
|
| diff --git a/native_client_sdk/src/tests/nacl_io_test/kernel_proxy_test.cc b/native_client_sdk/src/tests/nacl_io_test/kernel_proxy_test.cc
|
| index c42ba59cb0391989b72d09ab1a6c2cc7192da6f1..b0702bfbbe199f8dc405002fbc11647cc6e4bf13 100644
|
| --- a/native_client_sdk/src/tests/nacl_io_test/kernel_proxy_test.cc
|
| +++ b/native_client_sdk/src/tests/nacl_io_test/kernel_proxy_test.cc
|
| @@ -549,13 +549,25 @@ TEST_F(KernelProxyTest, Lstat) {
|
| EXPECT_EQ(0, ki_lstat("/foo", &buf));
|
| }
|
|
|
| +TEST_F(KernelProxyTest, OpenDirectory) {
|
| + // Opening a directory for read should succeed.
|
| + int fd = ki_open("/", O_RDONLY, 0);
|
| + ASSERT_GT(fd, -1);
|
| +
|
| + // Opening a directory for write should fail.
|
| + EXPECT_EQ(-1, ki_open("/", O_RDWR, 0));
|
| + EXPECT_EQ(errno, EISDIR);
|
| + EXPECT_EQ(-1, ki_open("/", O_WRONLY, 0));
|
| + EXPECT_EQ(errno, EISDIR);
|
| +}
|
| +
|
| TEST_F(KernelProxyTest, OpenWithMode) {
|
| int fd = ki_open("/foo", O_CREAT | O_RDWR, 0723);
|
| ASSERT_GT(fd, -1);
|
|
|
| struct stat buf;
|
| EXPECT_EQ(0, ki_lstat("/foo", &buf));
|
| - EXPECT_EQ(0723, buf.st_mode & ~S_IFMT);
|
| + EXPECT_EQ(0723, buf.st_mode & 0777);
|
| }
|
|
|
| TEST_F(KernelProxyTest, CreateWronlyWithReadOnlyMode) {
|
| @@ -586,6 +598,9 @@ TEST_F(KernelProxyTest, Utimes) {
|
| // utime should work if the file is write-only.
|
| EXPECT_EQ(0, ki_utimes("/dummy", times));
|
|
|
| + // utime should work directories (we can never be opened for write)
|
| + EXPECT_EQ(0, ki_utimes("/", times));
|
| +
|
| // or if the file is read-only.
|
| EXPECT_EQ(0, ki_chmod("/dummy", 0444));
|
| EXPECT_EQ(0, ki_utimes("/dummy", times));
|
| @@ -648,10 +663,10 @@ TEST_F(KernelProxyTest, Umask) {
|
|
|
| struct stat buf;
|
| EXPECT_EQ(0, ki_stat("/foo", &buf));
|
| - EXPECT_EQ(0444, buf.st_mode & ~S_IFMT);
|
| + EXPECT_EQ(0444, buf.st_mode & 0777);
|
|
|
| EXPECT_EQ(0, ki_stat("/dir", &buf));
|
| - EXPECT_EQ(0555, buf.st_mode & ~S_IFMT);
|
| + EXPECT_EQ(0555, buf.st_mode & 0777);
|
|
|
| EXPECT_EQ(0222, ki_umask(0));
|
| }
|
|
|