diff --git a/tools/aconfig/src/codegen_rust.rs b/tools/aconfig/src/codegen_rust.rs index b3a6f53b73..6d60323953 100644 --- a/tools/aconfig/src/codegen_rust.rs +++ b/tools/aconfig/src/codegen_rust.rs @@ -79,28 +79,10 @@ fn create_template_parsed_flag(namespace: &str, item: &Item) -> TemplateParsedFl #[cfg(test)] mod tests { use super::*; - use crate::commands::{create_cache, Input, Source}; #[test] fn test_generate_rust_code() { - let cache = create_cache( - "test", - vec![Input { - source: Source::File("testdata/test.aconfig".to_string()), - reader: Box::new(include_bytes!("../testdata/test.aconfig").as_slice()), - }], - vec![ - Input { - source: Source::File("testdata/first.values".to_string()), - reader: Box::new(include_bytes!("../testdata/first.values").as_slice()), - }, - Input { - source: Source::File("testdata/test.aconfig".to_string()), - reader: Box::new(include_bytes!("../testdata/second.values").as_slice()), - }, - ], - ) - .unwrap(); + let cache = crate::test::create_cache(); let generated = generate_rust_code(&cache).unwrap(); assert_eq!("src/lib.rs", format!("{}", generated.path.display())); let expected = r#" diff --git a/tools/aconfig/src/main.rs b/tools/aconfig/src/main.rs index c07bcf3793..b3b6ac408f 100644 --- a/tools/aconfig/src/main.rs +++ b/tools/aconfig/src/main.rs @@ -33,6 +33,9 @@ mod codegen_rust; mod commands; mod protos; +#[cfg(test)] +mod test; + use crate::cache::Cache; use commands::{DumpFormat, Input, OutputFile, Source}; diff --git a/tools/aconfig/src/test.rs b/tools/aconfig/src/test.rs new file mode 100644 index 0000000000..621381afb6 --- /dev/null +++ b/tools/aconfig/src/test.rs @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#[cfg(test)] +pub mod test_utils { + use crate::cache::Cache; + use crate::commands::{Input, Source}; + + pub fn create_cache() -> Cache { + crate::commands::create_cache( + "test", + vec![Input { + source: Source::File("testdata/test.aconfig".to_string()), + reader: Box::new(include_bytes!("../testdata/test.aconfig").as_slice()), + }], + vec![ + Input { + source: Source::File("testdata/first.values".to_string()), + reader: Box::new(include_bytes!("../testdata/first.values").as_slice()), + }, + Input { + source: Source::File("testdata/test.aconfig".to_string()), + reader: Box::new(include_bytes!("../testdata/second.values").as_slice()), + }, + ], + ) + .unwrap() + } +} + +#[cfg(test)] +pub use test_utils::*;