summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorzhitingzhu <zhitingzhu@google.com>2015-08-13 16:17:26 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-13 23:18:01 +0000
commit4b30ffe83c342e62be5682a1d96576367802511f (patch)
treeafcbd6d6a16385ff620ddb555918c973bdd862ee /native_client_sdk
parent9924b74c852f1b3540d64b954bc1579632b365fe (diff)
downloadchromium_src-4b30ffe83c342e62be5682a1d96576367802511f.zip
chromium_src-4b30ffe83c342e62be5682a1d96576367802511f.tar.gz
chromium_src-4b30ffe83c342e62be5682a1d96576367802511f.tar.bz2
[NaCl SDK] nacl_io: Make the default directory size returned by stat to be 4096
Review URL: https://codereview.chromium.org/1293543006 Cr-Commit-Position: refs/heads/master@{#343298}
Diffstat (limited to 'native_client_sdk')
-rw-r--r--native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc9
-rw-r--r--native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc2
2 files changed, 9 insertions, 2 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc b/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc
index bb3a8f5..76eff01 100644
--- a/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc
+++ b/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc
@@ -26,6 +26,8 @@ namespace nacl_io {
namespace {
+const int kEmptyDirSize = 4096;
+
struct OutputBuffer {
void* data;
int element_count;
@@ -156,6 +158,8 @@ Error Html5FsNode::GetStat(struct stat* stat) {
// Fill in known info here.
memcpy(stat, &stat_, sizeof(stat_));
+ stat->st_size = static_cast<off_t>(info.size);
+
// Fill in the additional info from ppapi.
switch (info.type) {
case PP_FILETYPE_REGULAR:
@@ -163,12 +167,15 @@ Error Html5FsNode::GetStat(struct stat* stat) {
break;
case PP_FILETYPE_DIRECTORY:
stat->st_mode |= S_IFDIR;
+ // Hack the directory size
+ // In Linux, even a empty directory has size 4096
+ // info.size is always zero for directories
+ stat->st_size = kEmptyDirSize;
break;
case PP_FILETYPE_OTHER:
default:
break;
}
- stat->st_size = static_cast<off_t>(info.size);
stat->st_atime = info.last_access_time;
stat->st_mtime = info.last_modified_time;
stat->st_ctime = info.creation_time;
diff --git a/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc b/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc
index b5c1aea..fd5db4e 100644
--- a/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc
+++ b/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc
@@ -411,7 +411,7 @@ TEST_F(Html5FsTest, GetStat) {
EXPECT_EQ(0, node->GetStat(&statbuf));
EXPECT_TRUE(S_ISDIR(statbuf.st_mode));
EXPECT_EQ(S_IRALL | S_IWALL | S_IXALL, statbuf.st_mode & S_MODEBITS);
- EXPECT_EQ(0, statbuf.st_size);
+ EXPECT_EQ(4096, statbuf.st_size);
EXPECT_EQ(access_time, statbuf.st_atime);
EXPECT_EQ(creation_time, statbuf.st_ctime);
EXPECT_EQ(modified_time, statbuf.st_mtime);