Skip to content

Commit 1c239e7

Browse files
committed
kargs: Put tests in a module
Prep for more tests. Signed-off-by: Colin Walters <[email protected]>
1 parent 5e1945b commit 1c239e7

File tree

1 file changed

+70
-65
lines changed

1 file changed

+70
-65
lines changed

lib/src/kargs.rs

Lines changed: 70 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -154,79 +154,84 @@ fn parse_kargs_toml(contents: &str, sys_arch: &str) -> Result<Vec<String>> {
154154
Ok(r)
155155
}
156156

157-
#[test]
158-
/// Verify that kargs are only applied to supported architectures
159-
fn test_arch() {
160-
// no arch specified, kargs ensure that kargs are applied unconditionally
161-
let sys_arch = "x86_64";
162-
let file_content = r##"kargs = ["console=tty0", "nosmt"]"##.to_string();
163-
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
164-
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
165-
let sys_arch = "aarch64";
166-
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
167-
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
168-
169-
// one arch matches and one doesn't, ensure that kargs are only applied for the matching arch
170-
let sys_arch = "aarch64";
171-
let file_content = r##"kargs = ["console=tty0", "nosmt"]
157+
#[cfg(test)]
158+
mod tests {
159+
use super::*;
160+
161+
#[test]
162+
/// Verify that kargs are only applied to supported architectures
163+
fn test_arch() {
164+
// no arch specified, kargs ensure that kargs are applied unconditionally
165+
let sys_arch = "x86_64";
166+
let file_content = r##"kargs = ["console=tty0", "nosmt"]"##.to_string();
167+
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
168+
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
169+
let sys_arch = "aarch64";
170+
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
171+
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
172+
173+
// one arch matches and one doesn't, ensure that kargs are only applied for the matching arch
174+
let sys_arch = "aarch64";
175+
let file_content = r##"kargs = ["console=tty0", "nosmt"]
172176
match-architectures = ["x86_64"]
173177
"##
174-
.to_string();
175-
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
176-
assert_eq!(parsed_kargs, [] as [String; 0]);
177-
let file_content = r##"kargs = ["console=tty0", "nosmt"]
178+
.to_string();
179+
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
180+
assert_eq!(parsed_kargs, [] as [String; 0]);
181+
let file_content = r##"kargs = ["console=tty0", "nosmt"]
178182
match-architectures = ["aarch64"]
179183
"##
180-
.to_string();
181-
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
182-
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
184+
.to_string();
185+
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
186+
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
183187

184-
// multiple arch specified, ensure that kargs are applied to both archs
185-
let sys_arch = "x86_64";
186-
let file_content = r##"kargs = ["console=tty0", "nosmt"]
188+
// multiple arch specified, ensure that kargs are applied to both archs
189+
let sys_arch = "x86_64";
190+
let file_content = r##"kargs = ["console=tty0", "nosmt"]
187191
match-architectures = ["x86_64", "aarch64"]
188192
"##
189-
.to_string();
190-
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
191-
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
192-
std::env::set_var("ARCH", "aarch64");
193-
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
194-
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
195-
}
193+
.to_string();
194+
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
195+
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
196+
std::env::set_var("ARCH", "aarch64");
197+
let parsed_kargs = parse_kargs_toml(&file_content, sys_arch).unwrap();
198+
assert_eq!(parsed_kargs, ["console=tty0", "nosmt"]);
199+
}
196200

197-
#[test]
198-
/// Verify some error cases
199-
fn test_invalid() {
200-
let test_invalid_extra = r#"kargs = ["console=tty0", "nosmt"]\nfoo=bar"#;
201-
assert!(parse_kargs_toml(test_invalid_extra, "x86_64").is_err());
201+
#[test]
202+
/// Verify some error cases
203+
fn test_invalid() {
204+
let test_invalid_extra = r#"kargs = ["console=tty0", "nosmt"]\nfoo=bar"#;
205+
assert!(parse_kargs_toml(test_invalid_extra, "x86_64").is_err());
202206

203-
let test_missing = r#"foo=bar"#;
204-
assert!(parse_kargs_toml(test_missing, "x86_64").is_err());
205-
}
207+
let test_missing = r#"foo=bar"#;
208+
assert!(parse_kargs_toml(test_missing, "x86_64").is_err());
209+
}
206210

207-
#[test]
208-
fn test_get_kargs_in_root() -> Result<()> {
209-
let td = cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
210-
211-
// No directory
212-
assert_eq!(get_kargs_in_root(&td, "x86_64").unwrap().len(), 0);
213-
// Empty directory
214-
td.create_dir_all("usr/lib/bootc/kargs.d")?;
215-
assert_eq!(get_kargs_in_root(&td, "x86_64").unwrap().len(), 0);
216-
// Non-toml file
217-
td.write("usr/lib/bootc/kargs.d/somegarbage", "garbage")?;
218-
assert_eq!(get_kargs_in_root(&td, "x86_64").unwrap().len(), 0);
219-
td.write(
220-
"usr/lib/bootc/kargs.d/01-foo.toml",
221-
r##"kargs = ["console=tty0", "nosmt"]"##,
222-
)?;
223-
td.write(
224-
"usr/lib/bootc/kargs.d/02-bar.toml",
225-
r##"kargs = ["console=ttyS1"]"##,
226-
)?;
227-
228-
let args = get_kargs_in_root(&td, "x86_64").unwrap();
229-
similar_asserts::assert_eq!(args, ["console=tty0", "nosmt", "console=ttyS1"]);
230-
231-
Ok(())
211+
#[test]
212+
fn test_get_kargs_in_root() -> Result<()> {
213+
let td = cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
214+
215+
// No directory
216+
assert_eq!(get_kargs_in_root(&td, "x86_64").unwrap().len(), 0);
217+
// Empty directory
218+
td.create_dir_all("usr/lib/bootc/kargs.d")?;
219+
assert_eq!(get_kargs_in_root(&td, "x86_64").unwrap().len(), 0);
220+
// Non-toml file
221+
td.write("usr/lib/bootc/kargs.d/somegarbage", "garbage")?;
222+
assert_eq!(get_kargs_in_root(&td, "x86_64").unwrap().len(), 0);
223+
td.write(
224+
"usr/lib/bootc/kargs.d/01-foo.toml",
225+
r##"kargs = ["console=tty0", "nosmt"]"##,
226+
)?;
227+
td.write(
228+
"usr/lib/bootc/kargs.d/02-bar.toml",
229+
r##"kargs = ["console=ttyS1"]"##,
230+
)?;
231+
232+
let args = get_kargs_in_root(&td, "x86_64").unwrap();
233+
similar_asserts::assert_eq!(args, ["console=tty0", "nosmt", "console=ttyS1"]);
234+
235+
Ok(())
236+
}
232237
}

0 commit comments

Comments
 (0)