.\" -*-nroff-*- .\" .\" Manual for remote testing .\" .\" (c) 2024 Straylight/Edgeware .\" . .\"----- Licensing notice --------------------------------------------------- .\" .\" This file is part of the mLib utilities library. .\" .\" mLib is free software: you can redistribute it and/or modify it under .\" the terms of the GNU Library General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or (at .\" your option) any later version. .\" .\" mLib 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 Library General Public .\" License for more details. .\" .\" You should have received a copy of the GNU Library General Public .\" License along with mLib. If not, write to the Free Software .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, .\" USA. . .\"-------------------------------------------------------------------------- .so ../defs.man \" @@@PRE@@@ . .\"-------------------------------------------------------------------------- .TH tvec-remote 3mLib "11 March 2024" "Straylight/Edgeware" "mLib utilities library" .\" @TVEC_REMOTEENV .\" @TVEC_FORK .\" @TVEC_EXEC .\" @tvec_fork .\" @tvec_exec . .\" @tvec_setprogress .\" @tvec_setprogress_v . .\" @tvec_remoteserver . .\"-------------------------------------------------------------------------- .SH NAME tvec-remote \- test vector framework remote invocation . .\"-------------------------------------------------------------------------- .SH SYNOPSIS . .nf .B "#include " .PP .ta \w'\fBtypedef int tvec_connectfn('u .BI "typedef int tvec_connectfn(pid_t *" kid_out ", int *" infd_out , .BI " int *" outfd_out ", int *" errfd_out , .BI " struct tvec_state *" tv , .BI " const struct tvec_remoteenv *" env ); .PP .ta 2n .B "struct tvec_remoteenv_slots {" .B " tvec_connectfn *connect;" .B " const struct tvec_env *env;" .B " unsigned dflt_reconn;" .B "};" .B "struct tvec_remoteenv {" .B " struct tvec_env _env;" .B " struct tvec_remoteenv_slots r;" .B "};" .B "#define TVEC_REMOTEENV ..." .PP .B "#define TVXF_VALMASK ..." .B "#define TVXF_SIG ..." .B "#define TVXF_CAUSEMASK ..." .B "#define TVXST_RUN ..." .B "#define TVXST_EXIT ..." .B "#define TVXST_KILL ..." .B "#define TVXST_CONT ..." .B "#define TVXST_STOP ..." .B "#define TVXST_DISCONN ..." .B "#define TVXST_UNK ..." .B "#define TVXST_ERR ..." .PP .B "struct tvec_remotefork_slots {" .B " const struct tvec_test *tests;" .B "};" .B "struct tvec_remotefork {" .B " struct tvec_env _env;" .B " struct tvec_remoteenv_slots r;" .B " struct tvec_remotefork_slots f;" .B "};" .B "tvec_connectfn tvec_fork;" .BI "#define TVEC_REMOTEFORK(" subenv ", " tests ") ..." .PP .B "struct tvec_remoteexec_slots {" .B " const char *const *args;" .B "};" .B "struct tvec_remoteexec {" .B " struct tvec_env _env;" .B " struct tvec_remoteenv_slots r;" .B " struct tvec_remoteexec_slots x;" .B "};" .B "tvec_connectfn tvec_exec;" .BI "#define TVEC_REMOTEEXEC(" subenv ", " args ") ..." .PP .BI "void tvec_setprogress(const char *" status ", ...);" .BI "void tvec_setprogress_v(const char *" status ", va_list *" ap ); .PP .ta \w'\fBint tvec_remoteserver('u .BI "int tvec_remoteserver(int " infd ", int " outfd , .BI " const struct tvec_config *" config ); .fi