1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef TESTS_NACL_IO_TEST_DEV_FS_FOR_TESTING_H_
6#define TESTS_NACL_IO_TEST_DEV_FS_FOR_TESTING_H_
7
8#include "fake_ppapi/fake_pepper_interface.h"
9#include "gmock/gmock.h"
10#include "nacl_io/devfs/dev_fs.h"
11#include "nacl_io/filesystem.h"
12
13#define NULL_NODE ((Node*)NULL)
14
15class DevFsForTesting : public nacl_io::DevFs {
16 public:
17  explicit DevFsForTesting(nacl_io::PepperInterface* ppapi) {
18    nacl_io::FsInitArgs args(1);
19    args.ppapi = ppapi;
20    Init(args);
21  }
22
23  bool Exists(const char* filename) {
24    nacl_io::ScopedNode node;
25    if (Open(nacl_io::Path(filename), O_RDONLY, &node))
26      return false;
27
28    struct stat buf;
29    return node->GetStat(&buf) == 0;
30  }
31
32  int num_nodes() { return (int)inode_pool_.size(); }
33};
34
35#endif  // TESTS_NACL_IO_TEST_DEV_FS_FOR_TESTING_H_
36