MCPcopy Create free account
hub / github.com/WinMerge/winmerge / TEST

Function TEST

Testing/GoogleTest/diffutils/mystat_test.cpp:10–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8#include "diff.h"
9
10TEST(diffutils, stat)
11{
12 cio::stat buf, buf2, buf3, buf4, buf5;
13 String filename = paths::ConcatPath(env::GetProgPath(), _T("../TestData/_tmp_test.txt"));
14 String filename2 = paths::ConcatPath(env::GetProgPath(), _T("../TestData/LeftAndRight.WinMerge"));
15 int fd = -1;
16 EXPECT_EQ(0, cio::tsopen_s(&fd, filename, _O_RDWR | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE));
17 cio::write(fd, "0123456789", 10);
18 time_t t = time(&t);
19
20 EXPECT_EQ(0, myfstat(fd, &buf));
21 EXPECT_EQ(buf.st_size, 10);
22 EXPECT_EQ(t, buf.st_mtime);
23 EXPECT_NE(0, buf.st_mode & _S_IFREG);
24 EXPECT_NE(0, buf.st_mode & _S_IREAD);
25 EXPECT_NE(0, buf.st_mode & _S_IWRITE);
26 cio::close(fd);
27
28 mywstat(filename.c_str(), &buf2);
29 EXPECT_EQ(buf2.st_size, 10);
30 EXPECT_EQ(t, buf2.st_mtime);
31 EXPECT_NE(0, buf2.st_mode & _S_IFREG);
32 EXPECT_NE(0, buf2.st_mode & _S_IREAD);
33 EXPECT_NE(0, buf2.st_mode & _S_IWRITE);
34 TFile(filename).remove();
35
36 int fds[2];
37 char data[256];
38 EXPECT_EQ(0, cio::pipe(fds, 256, O_BINARY));
39 cio::write(fds[1], "0123456789", 10);
40 EXPECT_EQ(0, myfstat(fds[0], &buf3));
41 EXPECT_EQ(10, buf3.st_size);
42 EXPECT_NE(0, buf3.st_mode & _S_IFIFO);
43 cio::read(fds[0], data, sizeof(data));
44 cio::close(fds[0]);
45 cio::close(fds[1]);
46
47 cio::tsopen_s(&fd, _T("CON"), _O_TEXT, _SH_DENYNO, _S_IWRITE);
48 EXPECT_EQ(0, myfstat(fd, &buf4));
49 EXPECT_NE(0, buf4.st_mode & _S_IFCHR);
50 cio::close(fd);
51
52 cio::tsopen_s(&fd, _T("NUL"), _O_TEXT, _SH_DENYNO, _S_IWRITE);
53 EXPECT_EQ(0, myfstat(fd, &buf5));
54 EXPECT_NE(0, buf5.st_mode & _S_IFCHR);
55 cio::close(fd);
56
57 //EXPECT_EQ(-1, myfstat(999, &buf));
58 EXPECT_EQ(-1, myfstat(1, NULL));
59 EXPECT_EQ(-1, mywstat(L"aaaa", NULL));
60 EXPECT_EQ(-1, mywstat(L"aaaa", &buf2));
61 EXPECT_EQ(-1, mywstat(filename2.c_str(), NULL));
62
63 EXPECT_EQ(0, mywstat(L"CON", &buf2));
64
65}

Callers

nothing calls this directly

Calls 9

ConcatPathFunction · 0.85
GetProgPathFunction · 0.85
tsopen_sFunction · 0.85
writeFunction · 0.85
myfstatFunction · 0.85
mywstatFunction · 0.85
TFileClass · 0.85
readFunction · 0.85
removeMethod · 0.45

Tested by

no test coverage detected