2012-08-20 17:06:21 +04:00
/*
* Copyright ( C ) 2011 - 2012 Red Hat , Inc .
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2.1 of the License , or ( at your option ) any later version .
*
* This library 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
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
2012-09-21 02:30:55 +04:00
* License along with this library . If not , see
2012-08-20 17:06:21 +04:00
* < http : //www.gnu.org/licenses/>.
*
*/
2019-06-18 19:13:14 +03:00
# pragma once
2012-08-20 17:06:21 +04:00
2019-06-18 19:13:14 +03:00
# include "qemu/qemu_conf.h"
# include "qemu/qemu_monitor.h"
# include "qemu/qemu_agent.h"
2012-08-20 17:06:21 +04:00
typedef struct _qemuMonitorTest qemuMonitorTest ;
2013-07-25 13:48:11 +04:00
typedef struct _qemuMonitorTestItem qemuMonitorTestItem ;
2021-03-11 10:16:13 +03:00
typedef int ( * qemuMonitorTestResponseCallback ) ( qemuMonitorTest * test ,
qemuMonitorTestItem * item ,
2013-07-25 13:48:11 +04:00
const char * message ) ;
2021-12-21 17:10:45 +03:00
int
qemuMonitorTestAddHandler ( qemuMonitorTest * test ,
const char * identifier ,
qemuMonitorTestResponseCallback cb ,
void * opaque ,
virFreeCallback freecb ) ;
int
qemuMonitorTestAddResponse ( qemuMonitorTest * test ,
2013-07-18 18:17:31 +04:00
const char * response ) ;
2012-08-20 17:06:21 +04:00
2021-12-21 17:10:45 +03:00
int
qemuMonitorTestAddInvalidCommandResponse ( qemuMonitorTest * test ,
const char * expectedcommand ,
const char * actualcommand ) ;
void *
qemuMonitorTestItemGetPrivateData ( qemuMonitorTestItem * item ) ;
int
qemuMonitorTestAddErrorResponse ( qemuMonitorTest * test ,
const char * errmsg ,
. . . ) ;
void
qemuMonitorTestAllowUnusedCommands ( qemuMonitorTest * test ) ;
void
qemuMonitorTestSkipDeprecatedValidation ( qemuMonitorTest * test ,
bool allowRemoved ) ;
int
qemuMonitorTestAddItem ( qemuMonitorTest * test ,
const char * command_name ,
const char * response ) ;
int
qemuMonitorTestAddItemVerbatim ( qemuMonitorTest * test ,
const char * command ,
const char * cmderr ,
const char * response ) ;
2016-11-25 12:43:23 +03:00
2021-12-21 17:10:45 +03:00
int
qemuMonitorTestAddAgentSyncResponse ( qemuMonitorTest * test ) ;
2013-07-25 14:08:25 +04:00
2021-12-21 17:10:45 +03:00
int
qemuMonitorTestAddItemParams ( qemuMonitorTest * test ,
const char * cmdname ,
const char * response ,
. . . )
2019-10-14 15:13:31 +03:00
G_GNUC_NULL_TERMINATED ;
2013-07-25 17:42:38 +04:00
2021-12-21 17:10:45 +03:00
int
qemuMonitorTestAddItemExpect ( qemuMonitorTest * test ,
const char * cmdname ,
const char * cmdargs ,
bool apostrophe ,
const char * response ) ;
2016-09-27 18:11:55 +03:00
2019-06-18 19:13:14 +03:00
# define qemuMonitorTestNewSimple(xmlopt) \
2022-05-24 16:02:58 +03:00
qemuMonitorTestNew ( xmlopt , NULL , NULL , NULL )
2019-06-18 19:13:14 +03:00
# define qemuMonitorTestNewSchema(xmlopt, schema) \
2022-05-24 16:02:58 +03:00
qemuMonitorTestNew ( xmlopt , NULL , NULL , schema )
2013-07-25 21:17:44 +04:00
2021-12-21 17:10:45 +03:00
qemuMonitorTest *
qemuMonitorTestNew ( virDomainXMLOption * xmlopt ,
virDomainObj * vm ,
const char * greeting ,
GHashTable * schema ) ;
qemuMonitorTest *
qemuMonitorTestNewFromFile ( const char * fileName ,
virDomainXMLOption * xmlopt ,
bool simple ) ;
qemuMonitorTest *
qemuMonitorTestNewFromFileFull ( const char * fileName ,
virQEMUDriver * driver ,
virDomainObj * vm ,
GHashTable * qmpschema ) ;
qemuMonitorTest *
qemuMonitorTestNewAgent ( virDomainXMLOption * xmlopt ) ;
void
qemuMonitorTestFree ( qemuMonitorTest * test ) ;
qemuMonitor *
qemuMonitorTestGetMonitor ( qemuMonitorTest * test ) ;
qemuAgent *
qemuMonitorTestGetAgent ( qemuMonitorTest * test ) ;
virDomainObj *
qemuMonitorTestGetDomainObj ( qemuMonitorTest * test ) ;
2012-08-20 17:06:21 +04:00
2019-10-15 15:47:50 +03:00
G_DEFINE_AUTOPTR_CLEANUP_FUNC ( qemuMonitorTest , qemuMonitorTestFree ) ;
2021-12-21 16:51:26 +03:00
struct qemuMonitorTestCommandReplyTuple {
const char * command ;
const char * reply ;
size_t line ; /* line number of @command */
} ;
int
qemuMonitorTestProcessFileEntries ( char * inputstr ,
const char * fileName ,
struct qemuMonitorTestCommandReplyTuple * * items ,
size_t * nitems ) ;