| Index: native_client_sdk/src/libraries/nacl_mounts_test/mount_node_test.cc
|
| diff --git a/native_client_sdk/src/libraries/nacl_mounts_test/mount_node_test.cc b/native_client_sdk/src/libraries/nacl_mounts_test/mount_node_test.cc
|
| deleted file mode 100644
|
| index 93427988ffc9cd6964bab9cc355904d86e4aca81..0000000000000000000000000000000000000000
|
| --- a/native_client_sdk/src/libraries/nacl_mounts_test/mount_node_test.cc
|
| +++ /dev/null
|
| @@ -1,190 +0,0 @@
|
| -/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include <errno.h>
|
| -#include <fcntl.h>
|
| -
|
| -#include "nacl_mounts/kernel_proxy.h"
|
| -#include "nacl_mounts/mount_node.h"
|
| -#include "nacl_mounts/mount_node_dir.h"
|
| -#include "nacl_mounts/mount_node_mem.h"
|
| -#include "nacl_mounts/osdirent.h"
|
| -
|
| -#include "gtest/gtest.h"
|
| -
|
| -#define NULL_NODE ((MountNode *) NULL)
|
| -
|
| -static int s_AllocNum = 0;
|
| -
|
| -class MockMemory : public MountNodeMem {
|
| - public:
|
| - MockMemory() : MountNodeMem(NULL) {
|
| - s_AllocNum++;
|
| - }
|
| -
|
| - ~MockMemory() {
|
| - s_AllocNum--;
|
| - }
|
| -
|
| - bool Init(int mode) {
|
| - return MountNodeMem::Init(mode);
|
| - }
|
| - int AddChild(const std::string& name, MountNode *node) {
|
| - return MountNodeMem::AddChild(name, node);
|
| - }
|
| - int RemoveChild(const std::string& name) {
|
| - return MountNodeMem::RemoveChild(name);
|
| - }
|
| - MountNode* FindChild(const std::string& name) {
|
| - return MountNodeMem::FindChild(name);
|
| - }
|
| - void Link() { MountNodeMem::Link(); }
|
| - void Unlink() { MountNodeMem::Unlink(); }
|
| -
|
| - protected:
|
| - using MountNodeMem::Init;
|
| -};
|
| -
|
| -class MockDir : public MountNodeDir {
|
| - public:
|
| - MockDir() : MountNodeDir(NULL) {
|
| - s_AllocNum++;
|
| - }
|
| -
|
| - ~MockDir() {
|
| - s_AllocNum--;
|
| - }
|
| -
|
| - bool Init(int mode) {
|
| - return MountNodeDir::Init(mode);
|
| - }
|
| - int AddChild(const std::string& name, MountNode *node) {
|
| - return MountNodeDir::AddChild(name, node);
|
| - }
|
| - int RemoveChild(const std::string& name) {
|
| - return MountNodeDir::RemoveChild(name);
|
| - }
|
| - MountNode* FindChild(const std::string& name) {
|
| - return MountNodeDir::FindChild(name);
|
| - }
|
| - void Link() { MountNodeDir::Link(); }
|
| - void Unlink() { MountNodeDir::Unlink(); }
|
| -
|
| - protected:
|
| - using MountNodeDir::Init;
|
| -};
|
| -
|
| -TEST(MountNodeTest, File) {
|
| - MockMemory *file = new MockMemory;
|
| -
|
| - EXPECT_TRUE(file->Init(S_IREAD | S_IWRITE));
|
| -
|
| - // Test properties
|
| - EXPECT_EQ(0, file->GetLinks());
|
| - EXPECT_EQ(S_IREAD | S_IWRITE, file->GetMode());
|
| - EXPECT_EQ(S_IFREG, file->GetType());
|
| - EXPECT_FALSE(file->IsaDir());
|
| - EXPECT_TRUE(file->IsaFile());
|
| - EXPECT_FALSE(file->IsaTTY());
|
| - EXPECT_EQ(1, file->RefCount());
|
| -
|
| - // Test IO
|
| - char buf1[1024];
|
| - char buf2[1024 * 2];
|
| - for (size_t a = 0; a < sizeof(buf1); a++)
|
| - 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, memcmp(buf1, buf2, sizeof(buf1)));
|
| -
|
| - struct stat s;
|
| - EXPECT_EQ(0, file->GetStat(&s));
|
| - EXPECT_EQ(sizeof(buf1), s.st_size);
|
| -
|
| - // 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);
|
| -
|
| - delete file;
|
| -}
|
| -
|
| -TEST(MountNodeTest, Directory) {
|
| - MockDir *root = new MockDir();
|
| - root->Init(S_IREAD | S_IWRITE);
|
| -
|
| - // Test properties
|
| - EXPECT_EQ(0, root->GetLinks());
|
| - EXPECT_EQ(S_IREAD | S_IWRITE, root->GetMode());
|
| - EXPECT_EQ(S_IFDIR, root->GetType());
|
| - EXPECT_TRUE(root->IsaDir());
|
| - EXPECT_FALSE(root->IsaFile());
|
| - EXPECT_FALSE(root->IsaTTY());
|
| - EXPECT_EQ(1, root->RefCount());
|
| -
|
| - // 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);
|
| -
|
| - // Test directory operations
|
| - MockMemory* file = new MockMemory;
|
| - EXPECT_TRUE(file->Init(S_IREAD | S_IWRITE));
|
| -
|
| - EXPECT_EQ(1, root->RefCount());
|
| - EXPECT_EQ(1, file->RefCount());
|
| - EXPECT_EQ(0, root->AddChild("F1", file));
|
| - EXPECT_EQ(1, file->GetLinks());
|
| - EXPECT_EQ(2, file->RefCount());
|
| -
|
| - // Test that the directory is there
|
| - struct dirent d;
|
| - EXPECT_EQ(sizeof(d), root->GetDents(0, &d, sizeof(d)));
|
| - EXPECT_EQ(0, strcmp("F1", d.d_name));
|
| - EXPECT_EQ(0, root->GetDents(sizeof(d), &d, sizeof(d)));
|
| -
|
| - 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(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(2, s_AllocNum);
|
| - EXPECT_EQ(0, root->RemoveChild("F1"));
|
| - EXPECT_EQ(1, file->GetLinks());
|
| - EXPECT_EQ(2, file->RefCount());
|
| - EXPECT_EQ(0, root->RemoveChild("F2"));
|
| - EXPECT_EQ(0, file->GetLinks());
|
| - EXPECT_EQ(1, file->RefCount());
|
| - EXPECT_EQ(2, s_AllocNum);
|
| -
|
| - file->Release();
|
| - EXPECT_EQ(1, s_AllocNum);
|
| - root->Release();
|
| - EXPECT_EQ(0, s_AllocNum);
|
| -}
|
| -
|
|
|