mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
generator: Move test APIs to new module.
This commit is contained in:
@@ -21,6 +21,8 @@ include $(top_srcdir)/subdir-rules.mk
|
||||
sources = \
|
||||
actions.ml \
|
||||
actions.mli \
|
||||
actions_internal_tests.ml \
|
||||
actions_internal_tests.mli \
|
||||
bindtests.ml \
|
||||
bindtests.mli \
|
||||
c.ml \
|
||||
@@ -92,6 +94,7 @@ objects = \
|
||||
common_utils.cmo \
|
||||
types.cmo \
|
||||
utils.cmo \
|
||||
actions_internal_tests.cmo \
|
||||
actions.cmo \
|
||||
structs.cmo \
|
||||
optgroups.cmo \
|
||||
|
||||
@@ -22,165 +22,14 @@ open Common_utils
|
||||
open Types
|
||||
open Utils
|
||||
|
||||
(* These test functions are used in the language binding tests. *)
|
||||
|
||||
let test_all_args = [
|
||||
String "str";
|
||||
OptString "optstr";
|
||||
StringList "strlist";
|
||||
Bool "b";
|
||||
Int "integer";
|
||||
Int64 "integer64";
|
||||
FileIn "filein";
|
||||
FileOut "fileout";
|
||||
BufferIn "bufferin";
|
||||
]
|
||||
|
||||
let test_all_optargs = [
|
||||
OBool "obool";
|
||||
OInt "oint";
|
||||
OInt64 "oint64";
|
||||
OString "ostring";
|
||||
OStringList "ostringlist";
|
||||
]
|
||||
|
||||
let test_all_rets = [
|
||||
(* except for RErr, which is tested thoroughly elsewhere *)
|
||||
"internal_test_rint", RInt "valout";
|
||||
"internal_test_rint64", RInt64 "valout";
|
||||
"internal_test_rbool", RBool "valout";
|
||||
"internal_test_rconststring", RConstString "valout";
|
||||
"internal_test_rconstoptstring", RConstOptString "valout";
|
||||
"internal_test_rstring", RString "valout";
|
||||
"internal_test_rstringlist", RStringList "valout";
|
||||
"internal_test_rstruct", RStruct ("valout", "lvm_pv");
|
||||
"internal_test_rstructlist", RStructList ("valout", "lvm_pv");
|
||||
"internal_test_rhashtable", RHashtable "valout";
|
||||
"internal_test_rbufferout", RBufferOut "valout";
|
||||
]
|
||||
|
||||
let test_functions = [
|
||||
{ defaults with
|
||||
name = "internal_test";
|
||||
style = RErr, test_all_args, test_all_optargs;
|
||||
visibility = VBindTest; cancellable = true;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
parameter type correctly.
|
||||
|
||||
It echos the contents of each parameter to stdout (by default)
|
||||
or to a file (if C<guestfs_internal_test_set_output> was called).
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
{ defaults with
|
||||
name = "internal_test_only_optargs";
|
||||
style = RErr, [], [OInt "test"];
|
||||
visibility = VBindTest; cancellable = true;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle no args, some
|
||||
optargs correctly.
|
||||
|
||||
It echos the contents of each parameter to stdout (by default)
|
||||
or to a file (if C<guestfs_internal_test_set_output> was called).
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
{ defaults with
|
||||
name = "internal_test_63_optargs";
|
||||
style = RErr, [], [OInt "opt1"; OInt "opt2"; OInt "opt3"; OInt "opt4"; OInt "opt5"; OInt "opt6"; OInt "opt7"; OInt "opt8"; OInt "opt9"; OInt "opt10"; OInt "opt11"; OInt "opt12"; OInt "opt13"; OInt "opt14"; OInt "opt15"; OInt "opt16"; OInt "opt17"; OInt "opt18"; OInt "opt19"; OInt "opt20"; OInt "opt21"; OInt "opt22"; OInt "opt23"; OInt "opt24"; OInt "opt25"; OInt "opt26"; OInt "opt27"; OInt "opt28"; OInt "opt29"; OInt "opt30"; OInt "opt31"; OInt "opt32"; OInt "opt33"; OInt "opt34"; OInt "opt35"; OInt "opt36"; OInt "opt37"; OInt "opt38"; OInt "opt39"; OInt "opt40"; OInt "opt41"; OInt "opt42"; OInt "opt43"; OInt "opt44"; OInt "opt45"; OInt "opt46"; OInt "opt47"; OInt "opt48"; OInt "opt49"; OInt "opt50"; OInt "opt51"; OInt "opt52"; OInt "opt53"; OInt "opt54"; OInt "opt55"; OInt "opt56"; OInt "opt57"; OInt "opt58"; OInt "opt59"; OInt "opt60"; OInt "opt61"; OInt "opt62"; OInt "opt63"];
|
||||
visibility = VBindTest; cancellable = true;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle the full range
|
||||
of 63 optargs correctly. (Note that 63 is not an absolute limit
|
||||
and it could be raised by changing the XDR protocol).
|
||||
|
||||
It echos the contents of each parameter to stdout (by default)
|
||||
or to a file (if C<guestfs_internal_test_set_output> was called).
|
||||
|
||||
You probably don't want to call this function." }
|
||||
|
||||
] @ List.flatten (
|
||||
List.map (
|
||||
fun (name, ret) -> [
|
||||
{ defaults with
|
||||
name = name;
|
||||
style = ret, [String "val"], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
return type correctly.
|
||||
|
||||
It converts string C<val> to the return type.
|
||||
|
||||
You probably don't want to call this function." };
|
||||
{ defaults with
|
||||
name = name ^ "err";
|
||||
style = ret, [], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
return type correctly.
|
||||
|
||||
This function always returns an error.
|
||||
|
||||
You probably don't want to call this function." }
|
||||
]
|
||||
) test_all_rets
|
||||
)
|
||||
|
||||
(* non_daemon_functions are any functions which don't get processed
|
||||
* in the daemon, eg. functions for setting and getting local
|
||||
* configuration values.
|
||||
*)
|
||||
|
||||
let non_daemon_functions = test_functions @ [
|
||||
{ defaults with
|
||||
name = "internal_test_set_output";
|
||||
style = RErr, [String "filename"], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
parameter type correctly.
|
||||
|
||||
It sets the output file used by C<guestfs_internal_test>.
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
{ defaults with
|
||||
name = "internal_test_close_output";
|
||||
style = RErr, [], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
parameter type correctly.
|
||||
|
||||
It closes the output file previously opened by
|
||||
C<guestfs_internal_test_set_output>.
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
let non_daemon_functions =
|
||||
Actions_internal_tests.test_functions @
|
||||
Actions_internal_tests.test_support_functions @ [
|
||||
{ defaults with
|
||||
name = "launch"; added = (0, 0, 3);
|
||||
style = RErr, [], [];
|
||||
@@ -13646,7 +13495,8 @@ let test_functions, non_daemon_functions, daemon_functions =
|
||||
^ "_OPTS";
|
||||
non_c_aliases = [ f.name ^ "_opts" ] }
|
||||
in
|
||||
let test_functions = List.map make_c_function test_functions in
|
||||
let test_functions =
|
||||
List.map make_c_function Actions_internal_tests.test_functions in
|
||||
let non_daemon_functions = List.map make_c_function non_daemon_functions in
|
||||
let daemon_functions = List.map make_c_function daemon_functions in
|
||||
test_functions, non_daemon_functions, daemon_functions
|
||||
|
||||
176
generator/actions_internal_tests.ml
Normal file
176
generator/actions_internal_tests.ml
Normal file
@@ -0,0 +1,176 @@
|
||||
(* libguestfs
|
||||
* Copyright (C) 2009-2017 Red Hat Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*)
|
||||
|
||||
(* Please read generator/README first. *)
|
||||
|
||||
open Types
|
||||
|
||||
(* These test functions are used in the language binding tests. *)
|
||||
|
||||
let test_all_args = [
|
||||
String "str";
|
||||
OptString "optstr";
|
||||
StringList "strlist";
|
||||
Bool "b";
|
||||
Int "integer";
|
||||
Int64 "integer64";
|
||||
FileIn "filein";
|
||||
FileOut "fileout";
|
||||
BufferIn "bufferin";
|
||||
]
|
||||
|
||||
let test_all_optargs = [
|
||||
OBool "obool";
|
||||
OInt "oint";
|
||||
OInt64 "oint64";
|
||||
OString "ostring";
|
||||
OStringList "ostringlist";
|
||||
]
|
||||
|
||||
let test_all_rets = [
|
||||
(* except for RErr, which is tested thoroughly elsewhere *)
|
||||
"internal_test_rint", RInt "valout";
|
||||
"internal_test_rint64", RInt64 "valout";
|
||||
"internal_test_rbool", RBool "valout";
|
||||
"internal_test_rconststring", RConstString "valout";
|
||||
"internal_test_rconstoptstring", RConstOptString "valout";
|
||||
"internal_test_rstring", RString "valout";
|
||||
"internal_test_rstringlist", RStringList "valout";
|
||||
"internal_test_rstruct", RStruct ("valout", "lvm_pv");
|
||||
"internal_test_rstructlist", RStructList ("valout", "lvm_pv");
|
||||
"internal_test_rhashtable", RHashtable "valout";
|
||||
"internal_test_rbufferout", RBufferOut "valout";
|
||||
]
|
||||
|
||||
let test_functions = [
|
||||
{ defaults with
|
||||
name = "internal_test";
|
||||
style = RErr, test_all_args, test_all_optargs;
|
||||
visibility = VBindTest; cancellable = true;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
parameter type correctly.
|
||||
|
||||
It echos the contents of each parameter to stdout (by default)
|
||||
or to a file (if C<guestfs_internal_test_set_output> was called).
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
{ defaults with
|
||||
name = "internal_test_only_optargs";
|
||||
style = RErr, [], [OInt "test"];
|
||||
visibility = VBindTest; cancellable = true;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle no args, some
|
||||
optargs correctly.
|
||||
|
||||
It echos the contents of each parameter to stdout (by default)
|
||||
or to a file (if C<guestfs_internal_test_set_output> was called).
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
{ defaults with
|
||||
name = "internal_test_63_optargs";
|
||||
style = RErr, [], [OInt "opt1"; OInt "opt2"; OInt "opt3"; OInt "opt4"; OInt "opt5"; OInt "opt6"; OInt "opt7"; OInt "opt8"; OInt "opt9"; OInt "opt10"; OInt "opt11"; OInt "opt12"; OInt "opt13"; OInt "opt14"; OInt "opt15"; OInt "opt16"; OInt "opt17"; OInt "opt18"; OInt "opt19"; OInt "opt20"; OInt "opt21"; OInt "opt22"; OInt "opt23"; OInt "opt24"; OInt "opt25"; OInt "opt26"; OInt "opt27"; OInt "opt28"; OInt "opt29"; OInt "opt30"; OInt "opt31"; OInt "opt32"; OInt "opt33"; OInt "opt34"; OInt "opt35"; OInt "opt36"; OInt "opt37"; OInt "opt38"; OInt "opt39"; OInt "opt40"; OInt "opt41"; OInt "opt42"; OInt "opt43"; OInt "opt44"; OInt "opt45"; OInt "opt46"; OInt "opt47"; OInt "opt48"; OInt "opt49"; OInt "opt50"; OInt "opt51"; OInt "opt52"; OInt "opt53"; OInt "opt54"; OInt "opt55"; OInt "opt56"; OInt "opt57"; OInt "opt58"; OInt "opt59"; OInt "opt60"; OInt "opt61"; OInt "opt62"; OInt "opt63"];
|
||||
visibility = VBindTest; cancellable = true;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle the full range
|
||||
of 63 optargs correctly. (Note that 63 is not an absolute limit
|
||||
and it could be raised by changing the XDR protocol).
|
||||
|
||||
It echos the contents of each parameter to stdout (by default)
|
||||
or to a file (if C<guestfs_internal_test_set_output> was called).
|
||||
|
||||
You probably don't want to call this function." }
|
||||
|
||||
] @ List.flatten (
|
||||
List.map (
|
||||
fun (name, ret) -> [
|
||||
{ defaults with
|
||||
name = name;
|
||||
style = ret, [String "val"], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
return type correctly.
|
||||
|
||||
It converts string C<val> to the return type.
|
||||
|
||||
You probably don't want to call this function." };
|
||||
{ defaults with
|
||||
name = name ^ "err";
|
||||
style = ret, [], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
return type correctly.
|
||||
|
||||
This function always returns an error.
|
||||
|
||||
You probably don't want to call this function." }
|
||||
]
|
||||
) test_all_rets
|
||||
)
|
||||
|
||||
let test_support_functions = [
|
||||
{ defaults with
|
||||
name = "internal_test_set_output";
|
||||
style = RErr, [String "filename"], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
parameter type correctly.
|
||||
|
||||
It sets the output file used by C<guestfs_internal_test>.
|
||||
|
||||
You probably don't want to call this function." };
|
||||
|
||||
{ defaults with
|
||||
name = "internal_test_close_output";
|
||||
style = RErr, [], [];
|
||||
visibility = VBindTest;
|
||||
blocking = false;
|
||||
shortdesc = "internal test function - do not use";
|
||||
longdesc = "\
|
||||
This is an internal test function which is used to test whether
|
||||
the automatically generated bindings can handle every possible
|
||||
parameter type correctly.
|
||||
|
||||
It closes the output file previously opened by
|
||||
C<guestfs_internal_test_set_output>.
|
||||
|
||||
You probably don't want to call this function." };
|
||||
]
|
||||
25
generator/actions_internal_tests.mli
Normal file
25
generator/actions_internal_tests.mli
Normal file
@@ -0,0 +1,25 @@
|
||||
(* libguestfs
|
||||
* Copyright (C) 2009-2017 Red Hat Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*)
|
||||
|
||||
(* Please read generator/README first. *)
|
||||
|
||||
val test_functions : Types.action list
|
||||
(** Internal test functions used to test the language bindings. *)
|
||||
|
||||
val test_support_functions : Types.action list
|
||||
(** Internal support functions. *)
|
||||
Reference in New Issue
Block a user