The results are hardcoded into the test driver, no option to read from a
testfile is implemented at this time.
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
src/test/test_driver.c | 75 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 71 insertions(+), 4 deletions(-)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 888bc9c..aabad9a 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -225,6 +225,29 @@ static const char *defaultPoolXML =
" </target>"
"</pool>";
+static const char *defaultPoolSourcesLogicalXML =
+"<sources>\n"
+" <source>\n"
+" <device path='/dev/sda20'/>\n"
+" <name>testvg1</name>\n"
+" <format type='lvm2'/>\n"
+" </source>\n"
+" <source>\n"
+" <device path='/dev/sda21'/>\n"
+" <name>testvg2</name>\n"
+" <format type='lvm2'/>\n"
+" </source>\n"
+"</sources>\n";
+
+static const char *defaultPoolSourcesNetFSXML =
+"<sources>\n"
+" <source>\n"
+" <host name='%s'/>\n"
+" <dir path='/testshare'/>\n"
+" <format type='nfs'/>\n"
+" </source>\n"
+"</sources>\n";
+
static const char *defaultNodeXML =
"<device>"
" <name>computer</name>"
@@ -3210,12 +3233,56 @@ cleanup:
}
static char *
-testStorageFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED,
- const char *type ATTRIBUTE_UNUSED,
- const char *srcSpec ATTRIBUTE_UNUSED,
+testStorageFindPoolSources(virConnectPtr conn,
+ const char *type,
+ const char *srcSpec,
unsigned int flags ATTRIBUTE_UNUSED)
{
- return NULL;
+ virStoragePoolSourcePtr source = NULL;
+ int pool_type;
+ char *ret = NULL;
+
+ pool_type = virStoragePoolTypeFromString(type);
+ if (!pool_type) {
+ testError(conn, VIR_ERR_INTERNAL_ERROR,
+ _("unknown storage pool type %s"), type);
+ goto cleanup;
+ }
+
+ if (srcSpec) {
+ source = virStoragePoolDefParseSourceString(conn, srcSpec, pool_type);
+ if (!source)
+ goto cleanup;
+ }
+
+ switch (pool_type) {
+
+ case VIR_STORAGE_POOL_LOGICAL:
+ ret = strdup(defaultPoolSourcesLogicalXML);
+ if (!ret)
+ virReportOOMError(conn);
+ break;
+
+ case VIR_STORAGE_POOL_NETFS:
+ if (!source || !source->host.name) {
+ testError(conn, VIR_ERR_INVALID_ARG,
+ "%s", "hostname must be specified for netfs
sources");
+ goto cleanup;
+ }
+
+ if (virAsprintf(&ret, defaultPoolSourcesNetFSXML,
+ source->host.name) < 0)
+ virReportOOMError(conn);
+ break;
+
+ default:
+ testError(conn, VIR_ERR_NO_SUPPORT,
+ _("pool type '%s' does not support source
discovery"), type);
+ }
+
+cleanup:
+ virStoragePoolSourceFree(source);
+ return ret;
}
--
1.6.0.6