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

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

Issue 16232016: [NaCl SDK] nacl_io: big refactor to return error value (errno). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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_node_test.cc
diff --git a/native_client_sdk/src/libraries/nacl_io_test/mount_node_test.cc b/native_client_sdk/src/libraries/nacl_io_test/mount_node_test.cc
index 2de13cd468431761902237ed8f1a2091a3a7ab2a..bc6fa65ed64b97490e9ca3b593079fb1f3416290 100644
--- a/native_client_sdk/src/libraries/nacl_io_test/mount_node_test.cc
+++ b/native_client_sdk/src/libraries/nacl_io_test/mount_node_test.cc
@@ -6,6 +6,7 @@
#include <errno.h>
#include <fcntl.h>
+#include "nacl_io/error.h"
#include "nacl_io/kernel_proxy.h"
#include "nacl_io/mount_node.h"
#include "nacl_io/mount_node_dir.h"
@@ -14,31 +15,25 @@
#include "gtest/gtest.h"
-#define NULL_NODE ((MountNode *) NULL)
+#define NULL_NODE ((MountNode*) NULL)
static int s_AllocNum = 0;
class MockMemory : public MountNodeMem {
public:
- MockMemory() : MountNodeMem(NULL) {
- s_AllocNum++;
- }
+ MockMemory() : MountNodeMem(NULL) { s_AllocNum++; }
- ~MockMemory() {
- s_AllocNum--;
- }
+ ~MockMemory() { s_AllocNum--; }
- bool Init(int mode) {
- return MountNodeMem::Init(mode);
- }
- int AddChild(const std::string& name, MountNode *node) {
+ Error Init(int mode) { return MountNodeMem::Init(mode); }
+ Error AddChild(const std::string& name, MountNode* node) {
return MountNodeMem::AddChild(name, node);
}
- int RemoveChild(const std::string& name) {
+ Error RemoveChild(const std::string& name) {
return MountNodeMem::RemoveChild(name);
}
- MountNode* FindChild(const std::string& name) {
- return MountNodeMem::FindChild(name);
+ Error FindChild(const std::string& name, MountNode** out_node) {
+ return MountNodeMem::FindChild(name, out_node);
}
void Link() { MountNodeMem::Link(); }
void Unlink() { MountNodeMem::Unlink(); }
@@ -49,25 +44,19 @@ class MockMemory : public MountNodeMem {
class MockDir : public MountNodeDir {
public:
- MockDir() : MountNodeDir(NULL) {
- s_AllocNum++;
- }
+ MockDir() : MountNodeDir(NULL) { s_AllocNum++; }
- ~MockDir() {
- s_AllocNum--;
- }
+ ~MockDir() { s_AllocNum--; }
- bool Init(int mode) {
- return MountNodeDir::Init(mode);
- }
- int AddChild(const std::string& name, MountNode *node) {
+ Error Init(int mode) { return MountNodeDir::Init(mode); }
+ Error AddChild(const std::string& name, MountNode* node) {
return MountNodeDir::AddChild(name, node);
}
- int RemoveChild(const std::string& name) {
+ Error RemoveChild(const std::string& name) {
return MountNodeDir::RemoveChild(name);
}
- MountNode* FindChild(const std::string& name) {
- return MountNodeDir::FindChild(name);
+ Error FindChild(const std::string& name, MountNode** out_node) {
+ return MountNodeDir::FindChild(name, out_node);
}
void Link() { MountNodeDir::Link(); }
void Unlink() { MountNodeDir::Unlink(); }
@@ -77,9 +66,12 @@ class MockDir : public MountNodeDir {
};
TEST(MountNodeTest, File) {
- MockMemory *file = new MockMemory;
+ MockMemory* file = new MockMemory;
+ MountNode* result_node = NULL;
+ size_t result_size = 0;
+ int result_bytes = 0;
- EXPECT_TRUE(file->Init(S_IREAD | S_IWRITE));
+ EXPECT_EQ(0, file->Init(S_IREAD | S_IWRITE));
// Test properties
EXPECT_EQ(0, file->GetLinks());
@@ -97,12 +89,18 @@ TEST(MountNodeTest, File) {
buf1[a] = a;
memset(buf2, 0, sizeof(buf2));
- EXPECT_EQ(0, file->GetSize());
- EXPECT_EQ(0, file->Read(0, buf2, sizeof(buf2)));
- EXPECT_EQ(0, file->GetSize());
- EXPECT_EQ(sizeof(buf1), file->Write(0, buf1, sizeof(buf1)));
- EXPECT_EQ(sizeof(buf1), file->GetSize());
- EXPECT_EQ(sizeof(buf1), file->Read(0, buf2, sizeof(buf2)));
+ EXPECT_EQ(0, file->GetSize(&result_size));
+ EXPECT_EQ(0, result_size);
+ EXPECT_EQ(0, file->Read(0, buf2, sizeof(buf2), &result_bytes));
+ EXPECT_EQ(0, result_bytes);
+ EXPECT_EQ(0, file->GetSize(&result_size));
+ EXPECT_EQ(0, result_size);
+ EXPECT_EQ(0, file->Write(0, buf1, sizeof(buf1), &result_bytes));
+ EXPECT_EQ(sizeof(buf1), result_bytes);
+ EXPECT_EQ(0, file->GetSize(&result_size));
+ EXPECT_EQ(sizeof(buf1), result_size);
+ EXPECT_EQ(0, file->Read(0, buf2, sizeof(buf2), &result_bytes));
+ EXPECT_EQ(sizeof(buf1), result_bytes);
EXPECT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
struct stat s;
@@ -112,20 +110,21 @@ TEST(MountNodeTest, File) {
// Directory operations should fail
struct dirent d;
- EXPECT_EQ(-1, file->GetDents(0, &d, sizeof(d)));
- EXPECT_EQ(errno, ENOTDIR);
- EXPECT_EQ(-1, file->AddChild("", file));
- EXPECT_EQ(errno, ENOTDIR);
- EXPECT_EQ(-1, file->RemoveChild(""));
- EXPECT_EQ(errno, ENOTDIR);
- EXPECT_EQ(NULL_NODE, file->FindChild(""));
- EXPECT_EQ(errno, ENOTDIR);
+ EXPECT_EQ(ENOTDIR, file->GetDents(0, &d, sizeof(d), &result_bytes));
+ EXPECT_EQ(ENOTDIR, file->AddChild("", file));
+ EXPECT_EQ(ENOTDIR, file->RemoveChild(""));
+ EXPECT_EQ(ENOTDIR, file->FindChild("", &result_node));
+ EXPECT_EQ(NULL_NODE, result_node);
delete file;
}
TEST(MountNodeTest, Directory) {
- MockDir *root = new MockDir();
+ MockDir* root = new MockDir();
+ MountNode* result_node = NULL;
+ size_t result_size = 0;
+ int result_bytes = 0;
+
root->Init(S_IREAD | S_IWRITE);
// Test properties
@@ -139,15 +138,14 @@ TEST(MountNodeTest, Directory) {
// IO operations should fail
char buf1[1024];
- EXPECT_EQ(0, root->GetSize());
- EXPECT_EQ(-1, root->Read(0, buf1, sizeof(buf1)));
- EXPECT_EQ(errno, EISDIR);
- EXPECT_EQ(-1, root->Write(0, buf1, sizeof(buf1)));
- EXPECT_EQ(errno, EISDIR);
+ EXPECT_EQ(0, root->GetSize(&result_size));
+ EXPECT_EQ(0, result_size);
+ EXPECT_EQ(EISDIR, root->Read(0, buf1, sizeof(buf1), &result_bytes));
+ EXPECT_EQ(EISDIR, root->Write(0, buf1, sizeof(buf1), &result_bytes));
// Test directory operations
MockMemory* file = new MockMemory;
- EXPECT_TRUE(file->Init(S_IREAD | S_IWRITE));
+ EXPECT_EQ(0, file->Init(S_IREAD | S_IWRITE));
EXPECT_EQ(1, root->RefCount());
EXPECT_EQ(1, file->RefCount());
@@ -157,25 +155,28 @@ TEST(MountNodeTest, Directory) {
// Test that the directory is there
struct dirent d;
- EXPECT_EQ(sizeof(d), root->GetDents(0, &d, sizeof(d)));
+ EXPECT_EQ(0, root->GetDents(0, &d, sizeof(d), &result_bytes));
+ EXPECT_EQ(sizeof(d), result_bytes);
EXPECT_LT(0, d.d_ino); // 0 is an invalid inode number.
EXPECT_EQ(sizeof(d), d.d_off);
EXPECT_EQ(sizeof(d), d.d_reclen);
EXPECT_EQ(0, strcmp("F1", d.d_name));
- EXPECT_EQ(0, root->GetDents(sizeof(d), &d, sizeof(d)));
+ EXPECT_EQ(0, root->GetDents(sizeof(d), &d, sizeof(d), &result_bytes));
+ EXPECT_EQ(0, result_bytes);
EXPECT_EQ(0, root->AddChild("F2", file));
EXPECT_EQ(2, file->GetLinks());
EXPECT_EQ(3, file->RefCount());
- EXPECT_EQ(-1, root->AddChild("F1", file));
- EXPECT_EQ(EEXIST, errno);
+ EXPECT_EQ(EEXIST, root->AddChild("F1", file));
EXPECT_EQ(2, file->GetLinks());
EXPECT_EQ(2, s_AllocNum);
- EXPECT_NE(NULL_NODE, root->FindChild("F1"));
- EXPECT_NE(NULL_NODE, root->FindChild("F2"));
- EXPECT_EQ(NULL_NODE, root->FindChild("F3"));
- EXPECT_EQ(errno, ENOENT);
+ EXPECT_EQ(0, root->FindChild("F1", &result_node));
+ EXPECT_NE(NULL_NODE, result_node);
+ EXPECT_EQ(0, root->FindChild("F2", &result_node));
+ EXPECT_NE(NULL_NODE, result_node);
+ EXPECT_EQ(ENOENT, root->FindChild("F3", &result_node));
+ EXPECT_EQ(NULL_NODE, result_node);
EXPECT_EQ(2, s_AllocNum);
EXPECT_EQ(0, root->RemoveChild("F1"));

Powered by Google App Engine
This is Rietveld 408576698