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

Unified Diff: native_client_sdk/src/tests/nacl_io_test/kernel_proxy_test.cc

Issue 99203014: [NaCl SDK] Map active fds to absolute paths. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Map active fds to absolute paths. Created 6 years, 11 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/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 44c158d65e41dcb85e4e22cd800eb5a7f51245df..ced9e29f1f34e8df45609a32fa2c19ac902c1ce9 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
@@ -282,6 +282,42 @@ TEST_F(KernelProxyTest, WorkingDirectory) {
EXPECT_STREQ("/foo", text);
}
+TEST_F(KernelProxyTest, FDPathMapping) {
+ char text[1024];
+
+ int fd1, fd2, fd3, fd4;
+
+ EXPECT_EQ(0, ki_mkdir("/foo", S_IREAD | S_IWRITE));
+ EXPECT_EQ(0, ki_mkdir("/foo/bar", S_IREAD | S_IWRITE));
+ EXPECT_EQ(0, ki_mkdir("/example", S_IREAD | S_IWRITE));
+ ki_chdir("/foo");
+
+ fd1 = ki_open("/example", O_RDONLY);
+ EXPECT_NE(-1, fd1);
+ EXPECT_EQ(ki_fchdir(fd1), 0);
+ EXPECT_EQ(text, ki_getcwd(text, sizeof(text)));
+ EXPECT_STREQ("/example", text);
+
+ EXPECT_EQ(0, ki_chdir("/foo"));
+ fd2 = ki_open("../example", O_RDONLY);
+ EXPECT_NE(-1, fd2);
+ EXPECT_EQ(0, ki_fchdir(fd2));
+ EXPECT_EQ(text, ki_getcwd(text, sizeof(text)));
+ EXPECT_STREQ("/example", text);
+
+ EXPECT_EQ(0, ki_chdir("/foo"));
+ fd3 = ki_open("../test", O_CREAT | O_RDWR);
+ EXPECT_NE(-1, fd3);
+ EXPECT_EQ(-1, ki_fchdir(fd3));
+ EXPECT_EQ(ENOTDIR, errno);
+
+ EXPECT_EQ(0, ki_chdir("/foo"));
+ fd4 = ki_open("bar", O_RDONLY);
+ EXPECT_EQ(0, ki_fchdir(fd4));
+ EXPECT_EQ(text, ki_getcwd(text, sizeof(text)));
+ EXPECT_STREQ("/foo/bar", text);
binji 2014/01/07 21:40:29 can you add tests for using fchdir on a fd that wa
+}
+
TEST_F(KernelProxyTest, MemMountIO) {
char text[1024];
int fd1, fd2, fd3;

Powered by Google App Engine
This is Rietveld 408576698