From 3bfb805288b35e191729c4fa681208a6b8c3038c Mon Sep 17 00:00:00 2001 From: Felix Krull Date: Sat, 31 Aug 2019 14:52:37 +0200 Subject: [PATCH] kernel_args: enable and fix argv methods --- rust-bindings/rust/src/kernel_args.rs | 14 ++++++------ rust-bindings/rust/src/tests/kernel_args.rs | 24 +++++++++++++++++++++ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/rust-bindings/rust/src/kernel_args.rs b/rust-bindings/rust/src/kernel_args.rs index 018964a4..ce7b3f7a 100644 --- a/rust-bindings/rust/src/kernel_args.rs +++ b/rust-bindings/rust/src/kernel_args.rs @@ -29,8 +29,8 @@ impl KernelArgs { } } - /*#[cfg(any(feature = "v2019_3", feature = "dox"))] - pub fn append_argv(&mut self, argv: &str) { + #[cfg(any(feature = "v2019_3", feature = "dox"))] + pub fn append_argv(&mut self, argv: &[&str]) { unsafe { ostree_sys::ostree_kernel_args_append_argv( self.to_glib_none_mut().0, @@ -40,7 +40,7 @@ impl KernelArgs { } #[cfg(any(feature = "v2019_3", feature = "dox"))] - pub fn append_argv_filtered(&mut self, argv: &str, prefixes: &str) { + pub fn append_argv_filtered(&mut self, argv: &[&str], prefixes: &[&str]) { unsafe { ostree_sys::ostree_kernel_args_append_argv_filtered( self.to_glib_none_mut().0, @@ -48,7 +48,7 @@ impl KernelArgs { prefixes.to_glib_none().0, ); } - }*/ + } #[cfg(any(feature = "v2019_3", feature = "dox"))] pub fn append_proc_cmdline>( @@ -147,15 +147,15 @@ impl KernelArgs { } } - /*#[cfg(any(feature = "v2019_3", feature = "dox"))] - pub fn replace_argv(&mut self, argv: &str) { + #[cfg(any(feature = "v2019_3", feature = "dox"))] + pub fn replace_argv(&mut self, argv: &[&str]) { unsafe { ostree_sys::ostree_kernel_args_replace_argv( self.to_glib_none_mut().0, argv.to_glib_none().0, ); } - }*/ + } #[cfg(any(feature = "v2019_3", feature = "dox"))] pub fn replace_take(&mut self, arg: &str) { diff --git a/rust-bindings/rust/src/tests/kernel_args.rs b/rust-bindings/rust/src/tests/kernel_args.rs index 0e081882..a24a3cb8 100644 --- a/rust-bindings/rust/src/tests/kernel_args.rs +++ b/rust-bindings/rust/src/tests/kernel_args.rs @@ -37,3 +37,27 @@ fn should_convert_from_string() { let args = KernelArgs::from(String::from("arg1 arg2 arg3=value")); assert_eq!(args.to_strv(), vec!["arg1", "arg2", "arg3=value"]); } + +#[test] +fn should_append_argv() { + let mut args = KernelArgs::new(); + args.append_argv(&["arg1", "arg2=value", "arg3", "arg4=value"]); + assert_eq!(args.to_string(), "arg1 arg2=value arg3 arg4=value"); +} + +#[test] +fn should_append_argv_filtered() { + let mut args = KernelArgs::new(); + args.append_argv_filtered( + &["prefix.arg1", "arg2", "prefix.arg3", "arg4=value"], + &["prefix"], + ); + assert_eq!(args.to_string(), "arg2 arg4=value"); +} + +#[test] +fn should_replace_argv() { + let mut args = KernelArgs::from_string("arg1=value1 arg2=value2 arg3"); + args.replace_argv(&["arg1=value3", "arg3=value4", "arg4"]); + assert_eq!(args.to_string(), "arg1=value3 arg2=value2 arg3=value4 arg4"); +}