GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/unittests/fs/virtfs/virtfs1_exists.cc Lines: 85 91 93.4 %
Date: 2021-03-17 Branches: 376 1000 37.6 %

Line Branch Exec Source
1
/*
2
 *  The ManaPlus Client
3
 *  Copyright (C) 2016-2019  The ManaPlus Developers
4
 *  Copyright (C) 2019-2021  Andrei Karas
5
 *
6
 *  This file is part of The ManaPlus Client.
7
 *
8
 *  This program is free software; you can redistribute it and/or modify
9
 *  it under the terms of the GNU General Public License as published by
10
 *  the Free Software Foundation; either version 2 of the License, or
11
 *  any later version.
12
 *
13
 *  This program is distributed in the hope that it will be useful,
14
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 *  GNU General Public License for more details.
17
 *
18
 *  You should have received a copy of the GNU General Public License
19
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 */
21
22
#include "unittests/unittests.h"
23
24
#include "fs/virtfs/fs.h"
25
26
#include "utils/checkutils.h"
27
28
#ifndef UNITTESTS_CATCH
29
#include <algorithm>
30
#endif  // UNITTESTS_CATCH
31
32
#include "debug.h"
33
34
✓✗
3
TEST_CASE("VirtFs1 exists1", "")
35
{
36
✓✗
3
    VirtFs::init(".");
37
3
    const bool dir1 = VirtFs::mountDirSilent("data/",
38
✓✗
1
        Append_false);
39
3
    VirtFs::mountDirSilent("..\\data",
40
✓✗
1
        Append_false);
41
42
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test"));
43
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test/"));
44
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test/dir1"));
45
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test/dir1/"));
46
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/dir") == false);
47
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test//units.xml") == true);
48
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/\\units123.xml") == false);
49
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("tesQ/units.xml") == false);
50
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml") == false);
51
52
✗✓
1
    if (dir1 == true)
53
    {
54
        VirtFs::mountDir("data//test",
55
            Append_false);
56
    }
57
    else
58
    {
59
3
        VirtFs::mountDirSilent("..//data\\test",
60
✓✗
1
            Append_false);
61
    }
62
63
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test") == true);
64
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test/dir1"));
65
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test/dir1\\"));
66
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/dir") == false);
67
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test\\units.xml") == true);
68
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/units123.xml") == false);
69
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("tesQ/units.xml") == false);
70
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml") == true);
71
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml/") == false);
72
73
✗✓
1
    if (dir1 == true)
74
        VirtFs::unmountDirSilent("data/test");
75
    else
76
✓✗
3
        VirtFs::unmountDirSilent("../data/test");
77
78
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test") == true);
79
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("test/dir1"));
80
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/dir") == false);
81
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test\\units.xml") == true);
82
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/units123.xml") == false);
83
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("tesQ/units.xml") == false);
84
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml") == false);
85
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml/") == false);
86
87
1
    VirtFs::deinit();
88
1
}
89
90
✓✗
3
TEST_CASE("VirtFs1 exists2", "")
91
{
92
✓✗
3
    VirtFs::init(".");
93
✓✗
6
    const bool dir1 = VirtFs::mountDirSilent2("data/",
94
        "test",
95
✓✗
1
        Append_false);
96
✓✗
6
    VirtFs::mountDirSilent2("..\\data",
97
        "test",
98
✓✗
1
        Append_false);
99
100
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test") == false);
101
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/") == false);
102
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("dir1"));
103
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("dir1/"));
104
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("dir") == false);
105
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml") == true);
106
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units123.xml") == false);
107
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("tesQ/units.xml") == false);
108
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("units.xml"));
109
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("file1.txt") == false);
110
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("file2.txt") == false);
111
112
✗✓
1
    if (dir1 == true)
113
    {
114
        VirtFs::mountDir2("data//test",
115
            "dir2",
116
            Append_false);
117
    }
118
    else
119
    {
120
✓✗
6
        VirtFs::mountDirSilent2("..//data\\test",
121
            "dir2",
122
✓✗
1
            Append_false);
123
    }
124
125
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test") == false);
126
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/") == false);
127
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("dir1"));
128
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("dir1/"));
129
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("dir") == false);
130
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml") == true);
131
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("units123.xml") == false);
132
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("tesQ/units.xml") == false);
133
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("units.xml"));
134
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("file1.txt"));
135
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("file2.txt"));
136
137
✗✓
1
    if (dir1 == true)
138
        VirtFs::unmountDirSilent2("data/test", "dir2");
139
    else
140
✓✗✓✗
6
        VirtFs::unmountDirSilent2("../data/test", "dir2");
141
142
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test") == false);
143
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("test/") == false);
144
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("dir1"));
145
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("dir1/"));
146
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("dir") == false);
147
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units.xml") == true);
148
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("units123.xml") == false);
149
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("tesQ/units.xml") == false);
150
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
6
    REQUIRE(VirtFs::exists("units.xml"));
151
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("file1.txt") == false);
152
✓✗✓✗
✓✗✓✗
✓✗✓✗
✗✗✗✗
7
    REQUIRE(VirtFs::exists("file2.txt") == false);
153
154
1
    VirtFs::deinit();
155
✓✗✓✗
4
}