File: FuseCreateAndOpenFilenameTest.cpp

package info (click to toggle)
cryfs 1.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 28,404 kB
  • sloc: cpp: 150,188; asm: 10,493; python: 1,455; javascript: 65; sh: 50; makefile: 17; xml: 7
file content (50 lines) | stat: -rw-r--r-- 1,635 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "testutils/FuseCreateAndOpenTest.h"

using ::testing::Eq;
using ::testing::Invoke;

class FuseCreateAndOpenFilenameTest: public FuseCreateAndOpenTest {
public:
};

TEST_F(FuseCreateAndOpenFilenameTest, CreateAndOpenFile) {
  bool created = false;
  ReturnIsFileOnLstatIfFlagIsSet("/myfile", &created);
  EXPECT_CALL(*fsimpl, createAndOpenFile(Eq("/myfile"), testing::_, testing::_, testing::_))
    .Times(1).WillOnce(Invoke([&] () {
      ASSERT(!created, "called createAndOpenFile multiple times");
      created = true;
      return 0;
    }));

  CreateAndOpenFile("/myfile", O_RDONLY);
}

TEST_F(FuseCreateAndOpenFilenameTest, CreateAndOpenFileNested) {
  bool created = false;
  ReturnIsDirOnLstat("/mydir");
  ReturnIsFileOnLstatIfFlagIsSet("/mydir/myfile", &created);
  EXPECT_CALL(*fsimpl, createAndOpenFile(Eq("/mydir/myfile"), testing::_, testing::_, testing::_))
    .Times(1).WillOnce(Invoke([&] () {
      ASSERT(!created, "called createAndOpenFile multiple times");
      created = true;
      return 0;
    }));

  CreateAndOpenFile("/mydir/myfile", O_RDONLY);
}

TEST_F(FuseCreateAndOpenFilenameTest, CreateAndOpenFileNested2) {
  bool created = false;
  ReturnIsDirOnLstat("/mydir");
  ReturnIsDirOnLstat("/mydir/mydir2");
  ReturnIsFileOnLstatIfFlagIsSet("/mydir/mydir2/myfile", &created);
  EXPECT_CALL(*fsimpl, createAndOpenFile(Eq("/mydir/mydir2/myfile"), testing::_, testing::_, testing::_))
    .Times(1).WillOnce(Invoke([&] () {
      ASSERT(!created, "called createAndOpenFile multiple times");
      created = true;
      return 0;
    }));

  CreateAndOpenFile("/mydir/mydir2/myfile", O_RDONLY);
}