cmake_parser/doc/command/ctest/
ctest_build.rs1use cmake_parser_derive::CMake;
2
3use crate::{
4 doc::command_scope::{CommandScope, ToCommandScope},
5 Token,
6};
7
8#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12#[cmake(pkg = "crate", allow_empty)]
13pub struct CTestBuild<'t> {
14 #[cmake(rename = "BUILD")]
15 pub build_dir: Option<Token<'t>>,
16 pub append: bool,
17 pub configuration: Option<Token<'t>>,
18 pub parallel_level: Option<Token<'t>>,
19 pub flags: Option<Vec<Token<'t>>>,
20 pub project_name: Option<Token<'t>>,
21 pub target: Option<Token<'t>>,
22 pub number_errors: Option<Token<'t>>,
23 pub number_warnings: Option<Token<'t>>,
24 pub return_value: Option<Token<'t>>,
25 pub quiet: bool,
26 pub capture_cmake_error: Option<Token<'t>>,
27}
28
29impl<'t> ToCommandScope for CTestBuild<'t> {
30 fn to_command_scope(&self) -> CommandScope {
31 CommandScope::CTest
32 }
33}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38 use crate::doc::cmake_parse::tests::token;
39 use crate::*;
40 use pretty_assertions::assert_eq;
41
42 #[test]
43 fn ctest_build() {
44 let src = include_bytes!("../../../../../fixture/commands/ctest/ctest_build");
45 let cmakelists = parse_cmakelists(src).unwrap();
46 let doc = Doc::from(cmakelists);
47 assert_eq!(
48 doc.commands(),
49 Ok(vec![
50 Command::CTestBuild(Box::new(CTestBuild {
51 build_dir: None,
52 append: false,
53 configuration: None,
54 parallel_level: None,
55 flags: None,
56 project_name: None,
57 target: None,
58 number_errors: None,
59 number_warnings: None,
60 return_value: None,
61 quiet: false,
62 capture_cmake_error: None
63 })),
64 Command::CTestBuild(Box::new(CTestBuild {
65 build_dir: Some(token(b"build1")),
66 append: true,
67 configuration: Some(token(b"configuration1")),
68 parallel_level: Some(token(b"parallel_level1")),
69 flags: Some(vec![token(b"flags1")]),
70 project_name: Some(token(b"project_name1")),
71 target: Some(token(b"target1")),
72 number_errors: Some(token(b"number_errors1")),
73 number_warnings: Some(token(b"number_warnings1")),
74 return_value: Some(token(b"return_value1")),
75 quiet: true,
76 capture_cmake_error: Some(token(b"capture_cmake_error1")),
77 })),
78 ])
79 )
80 }
81}