Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc

Issue 15800004: [NaCl SDK] nacl_io: Added support for access() syscall. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase to HEAD. Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc
diff --git a/native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc b/native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc
index e92a20aa5dfa7de856a936b26c0a9d4e7987b7ce..e0cac237e64e7b33d20aa83419a3b28850e7c93a 100644
--- a/native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc
+++ b/native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc
@@ -319,6 +319,77 @@ TEST_F(MountHtml5FsTest, FilesystemType) {
MountHtml5FsMock mnt(map, ppapi_);
}
+TEST_F(MountHtml5FsTest, Access) {
+ const char path[] = "/foo";
+ const PP_Resource fileref_resource = 235;
+ const PP_Resource fileio_resource = 236;
+
+ // These are the default values.
+ SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0);
+
+ FileRefInterfaceMock* fileref = ppapi_->GetFileRefInterface();
+ FileIoInterfaceMock* fileio = ppapi_->GetFileIoInterface();
+
+ EXPECT_CALL(*fileref, Create(filesystem_resource_, StrEq(&path[0])))
+ .WillOnce(Return(fileref_resource));
+ PP_FileInfo info;
+ memset(&info, 0, sizeof(PP_FileInfo));
+ info.type = PP_FILETYPE_REGULAR;
+ EXPECT_CALL(*fileref, Query(fileref_resource, _, _))
+ .WillOnce(DoAll(SetArgPointee<1>(info),
+ Return(int32_t(PP_OK))));
+ EXPECT_CALL(*fileio, Create(instance_)).WillOnce(Return(fileio_resource));
+ int32_t open_flags = PP_FILEOPENFLAG_READ;
+ EXPECT_CALL(*fileio,
+ Open(fileio_resource, fileref_resource, open_flags, _))
+ .WillOnce(Return(int32_t(PP_OK)));
+ EXPECT_CALL(*fileio, Close(fileio_resource));
+ EXPECT_CALL(*fileio, Flush(fileio_resource, _));
+ EXPECT_CALL(*ppapi_, ReleaseResource(fileio_resource));
+ EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource));
+
+ StringMap_t map;
+ MountHtml5FsMock mnt(map, ppapi_);
+
+ ASSERT_EQ(0, mnt.Access(Path(path), R_OK | W_OK | X_OK));
+}
+
+TEST_F(MountHtml5FsTest, AccessFileNotFound) {
+ const char path[] = "/foo";
+ const PP_Resource fileref_resource = 235;
+ const PP_Resource fileio_resource = 236;
+
+ // These are the default values.
+ SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0);
+
+ FileRefInterfaceMock* fileref = ppapi_->GetFileRefInterface();
+ FileIoInterfaceMock* fileio = ppapi_->GetFileIoInterface();
+
+ // Report the file as missing.
+ EXPECT_CALL(*fileref, Create(filesystem_resource_, StrEq(&path[0])))
+ .WillOnce(Return(fileref_resource));
+ PP_FileInfo info;
+ memset(&info, 0, sizeof(PP_FileInfo));
+ info.type = PP_FILETYPE_REGULAR;
+ EXPECT_CALL(*fileref, Query(fileref_resource, _, _))
+ .WillOnce(DoAll(SetArgPointee<1>(info),
+ Return(int32_t(PP_ERROR_FILENOTFOUND))));
+ EXPECT_CALL(*fileio, Create(instance_)).WillOnce(Return(fileio_resource));
+ int32_t open_flags = PP_FILEOPENFLAG_READ;
+ EXPECT_CALL(*fileio,
+ Open(fileio_resource, fileref_resource, open_flags, _))
+ .WillOnce(Return(int32_t(PP_ERROR_FILENOTFOUND)));
+ EXPECT_CALL(*fileio, Close(fileio_resource));
+ EXPECT_CALL(*fileio, Flush(fileio_resource, _));
+ EXPECT_CALL(*ppapi_, ReleaseResource(fileio_resource));
+ EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource));
+
+ StringMap_t map;
+ MountHtml5FsMock mnt(map, ppapi_);
+
+ ASSERT_EQ(ENOENT, mnt.Access(Path(path), F_OK));
+}
+
TEST_F(MountHtml5FsTest, Mkdir) {
const char path[] = "/foo";
const PP_Resource fileref_resource = 235;

Powered by Google App Engine
This is Rietveld 408576698