[libvirt] [PATCH v2 07/10] viriscsitest: Test virISCSIConnectionLogin

John Ferlan jferlan at redhat.com
Tue Jul 17 19:14:11 UTC 2018



On 07/04/2018 05:23 AM, Michal Privoznik wrote:
> Introduce one basic test that tests the simplest case:
> logging into portal without any IQN.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  tests/viriscsitest.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
> 
> diff --git a/tests/viriscsitest.c b/tests/viriscsitest.c
> index 3bb3993196..a7287069ba 100644
> --- a/tests/viriscsitest.c
> +++ b/tests/viriscsitest.c
> @@ -94,6 +94,16 @@ static void testIscsiadmCb(const char *const*args,
>                 args[8] && STREQ(args[8], "nonpersistent") &&
>                 args[9] == NULL) {
>          ignore_value(VIR_STRDUP(*output, iscsiadmSendtargetsOutput));
> +    } else if (args[0] && STREQ(args[0], ISCSIADM) &&
> +               args[1] && STREQ(args[1], "--mode") &&
> +               args[2] && STREQ(args[2], "node") &&
> +               args[3] && STREQ(args[3], "--portal") &&
> +               args[4] && STREQ(args[4], "10.20.30.40:3260,1") &&
> +               args[5] && STREQ(args[5], "--targetname") &&
> +               args[6] && STREQ(args[6], "iqn.2004-06.example:example1:iscsi.test") &&
> +               args[7] && STREQ(args[7], "--login") &&
> +               args[8] == NULL) {
> +        /* nada */


Hmm.. can we place a hold on that R-By - I missed this gem "nada"  -
why is that?

If we have *output because we've sent the dryRun, then why not compare?

John

>      } else {
>          *status = -1;
>      }
> @@ -175,6 +185,32 @@ testISCSIScanTargets(const void *data)
>      return ret;
>  }
>  
> +
> +struct testConnectionInfoLogin {
> +    const char *portal;
> +    const char *initiatoriqn;
> +    const char *target;
> +};
> +
> +
> +static int
> +testISCSIConnectionLogin(const void *data)
> +{
> +    const struct testConnectionInfoLogin *info = data;
> +    int ret = -1;
> +
> +    virCommandSetDryRun(NULL, testIscsiadmCb, NULL);
> +
> +    if (virISCSIConnectionLogin(info->portal, info->initiatoriqn, info->target) < 0)
> +        goto cleanup;
> +
> +    ret = 0;
> + cleanup:
> +    virCommandSetDryRun(NULL, NULL, NULL);
> +    return ret;
> +}
> +
> +
>  static int
>  mymain(void)
>  {
> @@ -213,6 +249,16 @@ mymain(void)
>      if (virTestRun("ISCSI scan targets", testISCSIScanTargets, &infoTargets) < 0)
>          rv = -1;
>  
> +# define DO_LOGIN_TEST(portal, iqn, target) \
> +    do { \
> +        struct testConnectionInfoLogin info = {portal, iqn, target }; \
> +        if (virTestRun("ISCSI login " portal, \
> +                       testISCSIConnectionLogin, &info) < 0) \
> +        rv = -1; \
> +    } while (0)
> +
> +    DO_LOGIN_TEST("10.20.30.40:3260,1", NULL, "iqn.2004-06.example:example1:iscsi.test");
> +
>      if (rv < 0)
>          return EXIT_FAILURE;
>      return EXIT_SUCCESS;
> 




More information about the libvir-list mailing list