Re: [Libguestfs] [PATCH 3/5] mltools: add simple tests for external_command

Richard W.M. Jones
Wed, 16 Jan 2019 14:32:57 -0000

On Wed, Jan 16, 2019 at 03:17:33PM +0100, Pino Toscano
wrote:
> ---
>  common/mltools/tools_utils_tests.ml | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/common/mltools/tools_utils_tests.ml
b/common/mltools/tools_utils_tests.ml
> index 1489fe699..f3c39514d 100644
> --- a/common/mltools/tools_utils_tests.ml
> +++ b/common/mltools/tools_utils_tests.ml
> @@ -28,6 +28,7 @@ let assert_equal_string = assert_equal ~printer:(fun x
-> x)
>  let assert_equal_int = assert_equal ~printer:(fun x -> string_of_int x)
>  let assert_equal_int64 = assert_equal ~printer:(fun x ->
Int64.to_string x)
>  let assert_equal_intlist = assert_equal ~printer:(fun x ->
"(" ^ (String.concat ";" (List.map string_of_int x)) ^
")")
> +let assert_equal_stringlist = assert_equal ~printer:(fun x ->
"(" ^ (String.escaped (String.concat "," x)) ^
")")
>
>  (* Test Tools_utils.parse_size and Tools_utils.parse_resize. *)
>  let test_parse_resize ctx > @@ -156,6 +157,26 @@ let test_run_commands
ctx >    end;
>    ()
>
> +let test_external_command ctx > +  assert_equal_stringlist []
(external_command "true");
> +  assert_equal_stringlist ["out"] (external_command "echo
out");
> +  begin
> +    let lines, code = external_command_code "true" in
> +    assert_equal_int 0 code;
> +    assert_equal_stringlist [] lines
> +  end;
> +  begin
> +    let lines, code = external_command_code "false" in
> +    assert_equal_int 1 code;
> +    assert_equal_stringlist [] lines
> +  end;
> +  begin
> +    let lines, code = external_command_code "echo out" in
> +    assert_equal_int 0 code;
> +    assert_equal_stringlist ["out"] lines
> +  end;

begin..end isn't really necessary here, but it doesn't matter.

> +  ()
> +
>  (* Suites declaration. *)
>  let suite >    "mltools Tools_utils" >:::
> @@ -164,6 +185,7 @@ let suite >        "sizes.human_size"
>:: test_human_size;
>        "run_command" >:: test_run_command;
>        "run_commands" >:: test_run_commands;
> +      "external_command" >:: test_external_command;
>      ]

ACK.

Rich.

--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.