Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commiteaa57fd

Browse files
committed
Updated test_toolchain_verify for custom toolchains
1 parent6fb51b2 commiteaa57fd

File tree

11 files changed

+64
-0
lines changed

11 files changed

+64
-0
lines changed

‎buildcc/lib/toolchain/test/test_toolchain_verify.cpp‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,70 @@ TEST(ToolchainVerifyTestGroup, VerifyToolchain_Msvc) {
210210
STRCMP_EQUAL(compiler_info.target_arch.c_str(),"host_arch_tgt_arch");
211211
}
212212

213+
TEST(ToolchainVerifyTestGroup, VerifyToolchain_Custom_VerificationSuccess) {
214+
buildcc::Toolchain::AddVerificationFunc(
215+
buildcc::ToolchainId::Custom,
216+
[](const buildcc::ToolchainExecutables &executables)
217+
-> std::optional<buildcc::ToolchainCompilerInfo> {
218+
(void)executables;
219+
buildcc::ToolchainCompilerInfo compiler_info;
220+
compiler_info.compiler_version ="custom_compiler_version";
221+
compiler_info.target_arch ="custom_target_arch";
222+
return compiler_info;
223+
},
224+
"success_verification_func");
225+
buildcc::Toolchaincustom(buildcc::ToolchainId::Custom,"custom","assembler",
226+
"c_compiler","cpp_compiler","archiver","linker");
227+
buildcc::ToolchainVerifyConfig config;
228+
config.env_vars.clear();
229+
config.absolute_search_paths.insert(
230+
(fs::current_path() /"toolchains" /"custom"));
231+
config.verification_identifier ="success_verification_func";
232+
auto compiler_info = custom.Verify(config);
233+
STRCMP_EQUAL(compiler_info.compiler_version.c_str(),
234+
"custom_compiler_version");
235+
STRCMP_EQUAL(compiler_info.target_arch.c_str(),"custom_target_arch");
236+
}
237+
238+
TEST(ToolchainVerifyTestGroup, VerifyToolchain_Custom_VerificationFailure) {
239+
buildcc::Toolchain::AddVerificationFunc(
240+
buildcc::ToolchainId::Custom,
241+
[](const buildcc::ToolchainExecutables &executables)
242+
-> std::optional<buildcc::ToolchainCompilerInfo> {
243+
(void)executables;
244+
return {};
245+
},
246+
"failure_verification_func");
247+
248+
// Adding verification function with the same identifier throws an exception
249+
CHECK_THROWS(std::exception,
250+
(buildcc::Toolchain::AddVerificationFunc(
251+
buildcc::ToolchainId::Custom,
252+
[](const buildcc::ToolchainExecutables &executables)
253+
-> std::optional<buildcc::ToolchainCompilerInfo> {
254+
(void)executables;
255+
return {};
256+
},
257+
"failure_verification_func")));
258+
buildcc::Toolchaincustom(buildcc::ToolchainId::Custom,"custom","assembler",
259+
"c_compiler","cpp_compiler","archiver","linker");
260+
261+
buildcc::ToolchainVerifyConfig config;
262+
config.env_vars.clear();
263+
config.absolute_search_paths.insert(
264+
(fs::current_path() /"toolchains" /"custom"));
265+
// Fails since ToolchainId::Custom expects a verification_identifier
266+
CHECK_THROWS(std::exception, custom.Verify(config));
267+
268+
// Fails since we do not get valid ToolchainCompilerInfo
269+
config.verification_identifier ="failure_verification_func";
270+
CHECK_THROWS(std::exception, custom.Verify(config));
271+
272+
// Fails since we have not registered a verification function with this id
273+
config.verification_identifier ="unregistered_verification_func";
274+
CHECK_THROWS(std::exception, custom.Verify(config));
275+
}
276+
213277
TEST(ToolchainVerifyTestGroup,
214278
VerifyToolchain_Msvc_CompilerVersionAndTargetArchFailure) {
215279
buildcc::Toolchainmsvc(buildcc::ToolchainId::Msvc,"msvc","cl","cl","cl",

‎buildcc/lib/toolchain/test/toolchains/custom/archiver‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/archiver.exe‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/assembler‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/assembler.exe‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/c_compiler‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/c_compiler.exe‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/cpp_compiler‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/cpp_compiler.exe‎

Whitespace-only changes.

‎buildcc/lib/toolchain/test/toolchains/custom/linker‎

Whitespace-only changes.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp