提交 8ab7d8ee 编写于 作者: D Daniel P. Berrange

Allow the iohelper path to be customized by test programs

Currently the fdstream function hardcodes the location
of the iohelper to LIBEXECDIR "/libvirt_iohelper". This
is not convenient when trying to write test cases which
use this code. Add a virFDStreamSetIOHelper method to
allow the test cases to point to the location of the
un-installed iohelper binary.
Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 69c6a58a
...@@ -74,6 +74,18 @@ struct virFDStreamData { ...@@ -74,6 +74,18 @@ struct virFDStreamData {
virMutex lock; virMutex lock;
}; };
static const char *iohelper_path = LIBEXECDIR "/libvirt_iohelper";
void virFDStreamSetIOHelper(const char *path)
{
if (path == NULL)
iohelper_path = LIBEXECDIR "/libvirt_iohelper";
else
iohelper_path = path;
}
static int virFDStreamRemoveCallback(virStreamPtr stream) static int virFDStreamRemoveCallback(virStreamPtr stream)
{ {
struct virFDStreamData *fdst = stream->privateData; struct virFDStreamData *fdst = stream->privateData;
...@@ -634,7 +646,7 @@ virFDStreamOpenFileInternal(virStreamPtr st, ...@@ -634,7 +646,7 @@ virFDStreamOpenFileInternal(virStreamPtr st,
goto error; goto error;
} }
cmd = virCommandNewArgList(LIBEXECDIR "/libvirt_iohelper", cmd = virCommandNewArgList(iohelper_path,
path, path,
NULL); NULL);
virCommandAddArgFormat(cmd, "%llu", length); virCommandAddArgFormat(cmd, "%llu", length);
......
...@@ -33,6 +33,9 @@ typedef void (*virFDStreamInternalCloseCb)(virStreamPtr st, void *opaque); ...@@ -33,6 +33,9 @@ typedef void (*virFDStreamInternalCloseCb)(virStreamPtr st, void *opaque);
typedef void (*virFDStreamInternalCloseCbFreeOpaque)(void *opaque); typedef void (*virFDStreamInternalCloseCbFreeOpaque)(void *opaque);
/* Only for use by test suite */
void virFDStreamSetIOHelper(const char *path);
int virFDStreamOpen(virStreamPtr st, int virFDStreamOpen(virStreamPtr st,
int fd); int fd);
......
...@@ -699,6 +699,7 @@ virFDStreamConnectUNIX; ...@@ -699,6 +699,7 @@ virFDStreamConnectUNIX;
virFDStreamCreateFile; virFDStreamCreateFile;
virFDStreamOpen; virFDStreamOpen;
virFDStreamOpenFile; virFDStreamOpenFile;
virFDStreamSetIOHelper;
# libvirt_internal.h # libvirt_internal.h
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册