-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfigurationSignatureTests.cpp
More file actions
125 lines (111 loc) · 3.75 KB
/
Copy pathConfigurationSignatureTests.cpp
File metadata and controls
125 lines (111 loc) · 3.75 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <vix/engine/ConfigurationSignature.hpp>
#include <cassert>
namespace
{
using namespace vix::engine;
ExecutionPlan plan()
{
ExecutionPlan p;
p.preset = Preset{"dev-ninja", "Ninja", "Debug", "build-ninja"};
p.projectFingerprint = "fingerprint";
return p;
}
}
int main()
{
{
const std::string expected =
"preset=dev-ninja\n"
"generator=Ninja\n"
"buildType=Debug\n"
"static=0\n"
"targetTriple=\n"
"sysroot=\n"
"useCache=1\n"
"warningCheck=0\n"
"linker=0\n"
"launcher=0\n"
"verbose=0\n"
"cmakeVerbose=0\n"
"projectFingerprint=fingerprint\n"
"vars:\n"
"rawCMakeArgs:\n";
ConfigurationSignatureOptions options;
assert(make_configuration_signature(plan(), options) == expected);
assert(make_configuration_signature(plan(), options).back() == '\n');
assert(make_configuration_signature(plan(), options) ==
make_configuration_signature(plan(), options));
}
{
ExecutionPlan p = plan();
p.preset = Preset{"release", "Ninja", "Release", "build-release"};
p.launcher = "ccache";
p.fastLinkerFlag = "-fuse-ld=mold";
p.cmakeVars = {
{"Z_VAR", "last"},
{"A_VAR", "first value"}};
ConfigurationSignatureOptions options;
options.linkStatic = true;
options.targetTriple = "aarch64-linux-gnu";
options.sysroot = "/opt/sys root";
options.useCache = false;
options.warningCheck = true;
options.linker = LinkerMode::Mold;
options.launcher = LauncherMode::Ccache;
options.verbose = true;
options.cmakeVerbose = true;
options.rawCMakeArgs = {
"-DFOO=bar baz",
"-DQUOTE=\"yes\""};
options.toolchainContent = "set(X 1)";
const std::string expected =
"preset=release\n"
"generator=Ninja\n"
"buildType=Release\n"
"static=1\n"
"targetTriple=aarch64-linux-gnu\n"
"sysroot=/opt/sys root\n"
"useCache=0\n"
"warningCheck=1\n"
"linker=2\n"
"launcher=3\n"
"verbose=1\n"
"cmakeVerbose=1\n"
"launcherTool=ccache\n"
"linkerFlag=-fuse-ld=mold\n"
"projectFingerprint=fingerprint\n"
"vars:\n"
"Z_VAR=last\n"
"A_VAR=first value\n"
"rawCMakeArgs:\n"
"-DFOO=bar baz\n"
"-DQUOTE=\"yes\"\n"
"toolchain:\n"
"set(X 1)\n";
assert(make_configuration_signature(p, options) == expected);
}
{
ConfigurationSignatureOptions options;
options.linker = LinkerMode::Default;
assert(make_configuration_signature(plan(), options).find("linker=1\n") != std::string::npos);
options.linker = LinkerMode::Mold;
assert(make_configuration_signature(plan(), options).find("linker=2\n") != std::string::npos);
options.linker = LinkerMode::Lld;
assert(make_configuration_signature(plan(), options).find("linker=3\n") != std::string::npos);
options.launcher = LauncherMode::None;
assert(make_configuration_signature(plan(), options).find("launcher=1\n") != std::string::npos);
options.launcher = LauncherMode::Sccache;
assert(make_configuration_signature(plan(), options).find("launcher=2\n") != std::string::npos);
options.launcher = LauncherMode::Ccache;
assert(make_configuration_signature(plan(), options).find("launcher=3\n") != std::string::npos);
}
{
ConfigurationSignatureOptions options;
options.toolchainContent = "ignored";
assert(make_configuration_signature(plan(), options).find("toolchain:\n") == std::string::npos);
options.targetTriple = "x86_64-linux-gnu";
options.toolchainContent = "line\n";
assert(make_configuration_signature(plan(), options).find("toolchain:\nline\n") != std::string::npos);
}
return 0;
}