Loading tools/aconfig/src/protos.rs +15 −4 Original line number Diff line number Diff line Loading @@ -215,6 +215,17 @@ pub mod parsed_flag { super::tracepoint::verify_fields(tp)?; } ensure!(pf.bug.len() == 1, "bad flag declaration: exactly one bug required"); if pf.is_fixed_read_only() { ensure!( pf.permission() == ProtoFlagPermission::READ_ONLY, "bad parsed flag: flag is is_fixed_read_only but permission is not READ_ONLY" ); for tp in pf.trace.iter() { ensure!(tp.permission() == ProtoFlagPermission::READ_ONLY, "bad parsed flag: flag is is_fixed_read_only but a tracepoint's permission is not READ_ONLY" ); } } Ok(()) } Loading Loading @@ -547,7 +558,7 @@ parsed_flag { description: "This is the description of the second flag." bug: "SOME_BUG" state: ENABLED permission: READ_WRITE permission: READ_ONLY trace { source: "flags.declarations" state: DISABLED Loading @@ -556,7 +567,7 @@ parsed_flag { trace { source: "flags.values" state: ENABLED permission: READ_WRITE permission: READ_ONLY } is_fixed_read_only: true } Loading @@ -570,14 +581,14 @@ parsed_flag { assert_eq!(second.description(), "This is the description of the second flag."); assert_eq!(second.bug, vec!["SOME_BUG"]); assert_eq!(second.state(), ProtoFlagState::ENABLED); assert_eq!(second.permission(), ProtoFlagPermission::READ_WRITE); assert_eq!(second.permission(), ProtoFlagPermission::READ_ONLY); assert_eq!(2, second.trace.len()); assert_eq!(second.trace[0].source(), "flags.declarations"); assert_eq!(second.trace[0].state(), ProtoFlagState::DISABLED); assert_eq!(second.trace[0].permission(), ProtoFlagPermission::READ_ONLY); assert_eq!(second.trace[1].source(), "flags.values"); assert_eq!(second.trace[1].state(), ProtoFlagState::ENABLED); assert_eq!(second.trace[1].permission(), ProtoFlagPermission::READ_WRITE); assert_eq!(second.trace[1].permission(), ProtoFlagPermission::READ_ONLY); assert!(second.is_fixed_read_only()); // valid input: empty Loading tools/aconfig/tests/aconfig_prod_mode_test.rs +1 −0 Original line number Diff line number Diff line #[cfg(not(feature = "cargo"))] #[test] fn test_flags() { assert!(!aconfig_test_rust_library::disabled_ro()); Loading tools/aconfig/tests/aconfig_test_mode_test.rs +1 −0 Original line number Diff line number Diff line #[cfg(not(feature = "cargo"))] #[test] fn test_flags() { assert!(!aconfig_test_rust_library::disabled_ro()); Loading Loading
tools/aconfig/src/protos.rs +15 −4 Original line number Diff line number Diff line Loading @@ -215,6 +215,17 @@ pub mod parsed_flag { super::tracepoint::verify_fields(tp)?; } ensure!(pf.bug.len() == 1, "bad flag declaration: exactly one bug required"); if pf.is_fixed_read_only() { ensure!( pf.permission() == ProtoFlagPermission::READ_ONLY, "bad parsed flag: flag is is_fixed_read_only but permission is not READ_ONLY" ); for tp in pf.trace.iter() { ensure!(tp.permission() == ProtoFlagPermission::READ_ONLY, "bad parsed flag: flag is is_fixed_read_only but a tracepoint's permission is not READ_ONLY" ); } } Ok(()) } Loading Loading @@ -547,7 +558,7 @@ parsed_flag { description: "This is the description of the second flag." bug: "SOME_BUG" state: ENABLED permission: READ_WRITE permission: READ_ONLY trace { source: "flags.declarations" state: DISABLED Loading @@ -556,7 +567,7 @@ parsed_flag { trace { source: "flags.values" state: ENABLED permission: READ_WRITE permission: READ_ONLY } is_fixed_read_only: true } Loading @@ -570,14 +581,14 @@ parsed_flag { assert_eq!(second.description(), "This is the description of the second flag."); assert_eq!(second.bug, vec!["SOME_BUG"]); assert_eq!(second.state(), ProtoFlagState::ENABLED); assert_eq!(second.permission(), ProtoFlagPermission::READ_WRITE); assert_eq!(second.permission(), ProtoFlagPermission::READ_ONLY); assert_eq!(2, second.trace.len()); assert_eq!(second.trace[0].source(), "flags.declarations"); assert_eq!(second.trace[0].state(), ProtoFlagState::DISABLED); assert_eq!(second.trace[0].permission(), ProtoFlagPermission::READ_ONLY); assert_eq!(second.trace[1].source(), "flags.values"); assert_eq!(second.trace[1].state(), ProtoFlagState::ENABLED); assert_eq!(second.trace[1].permission(), ProtoFlagPermission::READ_WRITE); assert_eq!(second.trace[1].permission(), ProtoFlagPermission::READ_ONLY); assert!(second.is_fixed_read_only()); // valid input: empty Loading
tools/aconfig/tests/aconfig_prod_mode_test.rs +1 −0 Original line number Diff line number Diff line #[cfg(not(feature = "cargo"))] #[test] fn test_flags() { assert!(!aconfig_test_rust_library::disabled_ro()); Loading
tools/aconfig/tests/aconfig_test_mode_test.rs +1 −0 Original line number Diff line number Diff line #[cfg(not(feature = "cargo"))] #[test] fn test_flags() { assert!(!aconfig_test_rust_library::disabled_ro()); Loading