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

Unified Diff: tests/syscalls/syscalls.cc

Issue 24889002: Provides some of the missing POSIX file syscalls Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 7 years, 3 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
« no previous file with comments | « src/untrusted/nacl/syscall_bindings_trampoline.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/syscalls/syscalls.cc
diff --git a/tests/syscalls/syscalls.cc b/tests/syscalls/syscalls.cc
index 4612c90d9c6532cd722a89c5544381c73d2985e9..fedd824ecd417d761cdd77768a0607cc1ca1ff0e 100644
--- a/tests/syscalls/syscalls.cc
+++ b/tests/syscalls/syscalls.cc
@@ -103,6 +103,26 @@ bool test_unlink(const char *test_file) {
return passed("test_unlink", "all");
}
+bool test_truncate(const char *test_file) {
+ return passed("test_truncate", "all");
+}
+
+bool test_symlink_readlink(const char *test_file) {
+ return passed("test_symlink_readlink", "all");
+}
+
+bool test_chmod_access(const char *test_file) {
+ return passed("test_chmod_access", "all");
+}
+
+bool test_rename(const char *test_file) {
+ return passed("test_rename", "all");
+}
+
+bool test_utimes(const char *test_file) {
+ return passed("test_utimes", "all");
+}
+
#else
// Simple test that chdir returns zero for '.'. chdir gets more
@@ -211,6 +231,70 @@ bool test_unlink(const char *test_file) {
return passed("test_unlink", "all");
}
+bool test_truncate(const char *test_file) {
+ char buffer[PATH_MAX];
+ struct stat stbuf;
+ int retval;
+ snprintf(buffer, PATH_MAX, "%s.tmp", test_file);
+ buffer[PATH_MAX - 1] = '\0';
+
+ int fd = open(buffer, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
+ ASSERT_MSG(fd >= 0, "open() failed");
+
+ retval = close(fd);
+ ASSERT_EQ_MSG(retval, 0, "close() failed");
+
+ retval = truncate(buffer, 4096);
+ ASSERT_EQ_MSG(retval, 0, "truncate() failed");
+
+ retval = stat(buffer, &stbuf);
+ ASSERT_EQ_MSG(retval, 0, "stat() failed");
+
+ ASSERT_EQ(stbuf.st_size, 4096);
+
+ return passed("test_truncate", "all");
+}
+
+bool test_symlink_readlink(const char *test_file) {
+ char oldpath[PATH_MAX];
+ char newpath[PATH_MAX];
+ char buffer[PATH_MAX];
+ int retval;
+
+ snprintf(oldpath, PATH_MAX, "%s.tmp", test_file);
+ buffer[PATH_MAX - 1] = '\0';
+
+ int fd = open(oldpath, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
+ ASSERT_MSG(fd >= 0, "open() failed");
+
+ retval = close(fd);
+ ASSERT_EQ_MSG(retval, 0, "close() failed");
+
+ snprintf(newpath, PATH_MAX, "%s_link.tmp", test_file);
+ newpath[PATH_MAX - 1] = '\0';
+
+ retval = symlink(oldpath, newpath);
+ ASSERT_EQ_MSG(retval, 0, "symlink() failed");
+
+ retval = readlink(newpath, buffer, sizeof buffer);
+ ASSERT_EQ_MSG(retval, 0, "readlink() failed");
+ ASSERT_EQ(strcmp(oldpath, buffer), 0);
+
+ return passed("test_symlink_readlink", "all");
+}
+
+bool test_chmod_access(const char *test_file) {
+ return passed("test_chmod_access", "all");
+}
+
+bool test_rename(const char *test_file) {
+ return passed("test_rename", "all");
+}
+
+bool test_utimes(const char *test_file) {
+ return passed("test_utimes", "all");
+}
+
#endif // !TESTS_USE_IRT
// open() returns the new file descriptor, or -1 if an error occurred
@@ -536,6 +620,11 @@ bool testSuite(const char *test_file) {
ret &= test_write(test_file);
ret &= test_lseek(test_file);
ret &= test_unlink(test_file);
+ ret &= test_truncate(test_file);
+ ret &= test_symlink_readlink(test_file);
+ ret &= test_chmod_access(test_file);
+ ret &= test_rename(test_file);
+ ret &= test_utimes(test_file);
ret &= test_chdir();
ret &= test_getcwd();
ret &= test_mkdir_rmdir(test_file);
« no previous file with comments | « src/untrusted/nacl/syscall_bindings_trampoline.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698