Skip to content

Commit 7cbc7c3

Browse files
committed
Update test_toolchain_verify.cpp
1 parent 5dea59f commit 7cbc7c3

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

buildcc/lib/toolchain/test/test_toolchain_verify.cpp

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,113 @@ TEST(ToolchainTestGroup, VerifyToolchain_LockedFolder) {
204204
}
205205
}
206206

207+
TEST(ToolchainTestGroup, VerifyToolchain_ConditionalAdd_CompilerVersion) {
208+
buildcc::base::Toolchain gcc(buildcc::base::Toolchain::Id::Gcc, "gcc", "as",
209+
"gcc", "g++", "ar", "ld");
210+
211+
buildcc::base::VerifyToolchainConfig config;
212+
config.env_vars.clear();
213+
config.absolute_search_paths.push_back(
214+
(fs::current_path() / "toolchains" / "gcc").string());
215+
config.compiler_version = "10.2.1";
216+
217+
std::vector<std::string> compiler_version{"10.2.1"};
218+
std::vector<std::string> arch{"none"};
219+
buildcc::env::m::CommandExpect_Execute(1, true, &compiler_version, nullptr);
220+
buildcc::env::m::CommandExpect_Execute(1, true, &arch, nullptr);
221+
222+
std::vector<buildcc::base::VerifiedToolchain> verified_toolchains =
223+
gcc.Verify(config);
224+
UT_PRINT(std::to_string(verified_toolchains.size()).c_str());
225+
CHECK_EQUAL(verified_toolchains.size(), 1);
226+
}
227+
228+
TEST(ToolchainTestGroup,
229+
VerifyToolchain_ConditionalAdd_CompilerVersionFailure) {
230+
buildcc::base::Toolchain gcc(buildcc::base::Toolchain::Id::Gcc, "gcc", "as",
231+
"gcc", "g++", "ar", "ld");
232+
233+
buildcc::base::VerifyToolchainConfig config;
234+
config.env_vars.clear();
235+
config.absolute_search_paths.push_back(
236+
(fs::current_path() / "toolchains" / "gcc").string());
237+
config.compiler_version = "11.0.0";
238+
239+
std::vector<std::string> compiler_version{"10.2.1"};
240+
std::vector<std::string> arch{"none"};
241+
buildcc::env::m::CommandExpect_Execute(1, true, &compiler_version, nullptr);
242+
buildcc::env::m::CommandExpect_Execute(1, true, &arch, nullptr);
243+
244+
std::vector<buildcc::base::VerifiedToolchain> verified_toolchains =
245+
gcc.Verify(config);
246+
UT_PRINT(std::to_string(verified_toolchains.size()).c_str());
247+
CHECK_EQUAL(verified_toolchains.size(), 0);
248+
}
249+
250+
TEST(ToolchainTestGroup, VerifyToolchain_ConditionalAdd_TargetArch) {
251+
buildcc::base::Toolchain gcc(buildcc::base::Toolchain::Id::Gcc, "gcc", "as",
252+
"gcc", "g++", "ar", "ld");
253+
254+
buildcc::base::VerifyToolchainConfig config;
255+
config.env_vars.clear();
256+
config.absolute_search_paths.push_back(
257+
(fs::current_path() / "toolchains" / "gcc").string());
258+
config.target_arch = "arm-none-eabi";
259+
260+
std::vector<std::string> compiler_version{"10.2.1"};
261+
std::vector<std::string> arch{"arm-none-eabi"};
262+
buildcc::env::m::CommandExpect_Execute(1, true, &compiler_version, nullptr);
263+
buildcc::env::m::CommandExpect_Execute(1, true, &arch, nullptr);
264+
265+
std::vector<buildcc::base::VerifiedToolchain> verified_toolchains =
266+
gcc.Verify(config);
267+
UT_PRINT(std::to_string(verified_toolchains.size()).c_str());
268+
CHECK_EQUAL(verified_toolchains.size(), 1);
269+
}
270+
271+
TEST(ToolchainTestGroup, VerifyToolchain_ConditionalAdd_TargetArchFailure) {
272+
buildcc::base::Toolchain gcc(buildcc::base::Toolchain::Id::Gcc, "gcc", "as",
273+
"gcc", "g++", "ar", "ld");
274+
275+
buildcc::base::VerifyToolchainConfig config;
276+
config.env_vars.clear();
277+
config.absolute_search_paths.push_back(
278+
(fs::current_path() / "toolchains" / "gcc").string());
279+
config.target_arch = "none";
280+
281+
std::vector<std::string> compiler_version{"10.2.1"};
282+
std::vector<std::string> arch{"arm-none-eabi"};
283+
buildcc::env::m::CommandExpect_Execute(1, true, &compiler_version, nullptr);
284+
buildcc::env::m::CommandExpect_Execute(1, true, &arch, nullptr);
285+
286+
std::vector<buildcc::base::VerifiedToolchain> verified_toolchains =
287+
gcc.Verify(config);
288+
UT_PRINT(std::to_string(verified_toolchains.size()).c_str());
289+
CHECK_EQUAL(verified_toolchains.size(), 0);
290+
}
291+
292+
TEST(ToolchainTestGroup, VerifyToolchain_ConditionalAdd_BothFailure) {
293+
buildcc::base::Toolchain gcc(buildcc::base::Toolchain::Id::Gcc, "gcc", "as",
294+
"gcc", "g++", "ar", "ld");
295+
296+
buildcc::base::VerifyToolchainConfig config;
297+
config.env_vars.clear();
298+
config.absolute_search_paths.push_back(
299+
(fs::current_path() / "toolchains" / "gcc").string());
300+
config.compiler_version = "none";
301+
config.target_arch = "none";
302+
303+
std::vector<std::string> compiler_version{"10.2.1"};
304+
std::vector<std::string> arch{"arm-none-eabi"};
305+
buildcc::env::m::CommandExpect_Execute(1, true, &compiler_version, nullptr);
306+
buildcc::env::m::CommandExpect_Execute(1, true, &arch, nullptr);
307+
308+
std::vector<buildcc::base::VerifiedToolchain> verified_toolchains =
309+
gcc.Verify(config);
310+
UT_PRINT(std::to_string(verified_toolchains.size()).c_str());
311+
CHECK_EQUAL(verified_toolchains.size(), 0);
312+
}
313+
207314
int main(int ac, char **av) {
208315
buildcc::env::m::VectorStringCopier copier;
209316
mock().installCopier(TEST_VECTOR_STRING_TYPE, copier);

0 commit comments

Comments
 (0)