All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Marc-André Lureau" <marcandre.lureau@gmail.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [PATCH v3 5/5] tests/unit: make test-io-channel-command work on win32
Date: Thu, 6 Oct 2022 15:26:31 +0400	[thread overview]
Message-ID: <CAJ+F1CLJrXLPtpqt8oG-Ob5hmG8Sg5ZaCdLbNGjJ=B3ZfMqECQ@mail.gmail.com> (raw)
In-Reply-To: <Yz6YPR+MGo72TOAF@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2963 bytes --]

Hi

On Thu, Oct 6, 2022 at 2:14 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:

> On Thu, Oct 06, 2022 at 12:46:17PM +0400, Marc-André Lureau wrote:
> > Hi
> >
> > On Thu, Oct 6, 2022 at 12:42 PM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
> > >
> > > On Thu, Oct 06, 2022 at 12:12:22PM +0400, marcandre.lureau@redhat.com
> wrote:
> > > > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > >
> > > > This has been tested under msys2 & windows 11. I haven't tried to
> make
> > > > it work with other environments yet, but that should be enough to
> > > > validate the channel-command implementation anyway.
> > > >
> > > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > ---
> > > >  tests/unit/test-io-channel-command.c | 32
> ++++++++++++----------------
> > > >  tests/unit/meson.build               |  2 +-
> > > >  2 files changed, 15 insertions(+), 19 deletions(-)
> > > >
> > > > diff --git a/tests/unit/test-io-channel-command.c
> b/tests/unit/test-io-channel-command.c
> > > > index aa09c559cd..be98c3452a 100644
> > > > --- a/tests/unit/test-io-channel-command.c
> > > > +++ b/tests/unit/test-io-channel-command.c
> > > > @@ -24,29 +24,27 @@
> > > >  #include "qapi/error.h"
> > > >  #include "qemu/module.h"
> > > >
> > > > -#ifndef WIN32
> > > > +#define TEST_PATH "test-io-channel-command.fifo"
> > > > +
> > > > +#define SOCAT_SRC "PIPE:" TEST_PATH ",wronly"
> > > > +#define SOCAT_DST "PIPE:" TEST_PATH ",rdonly"
> > > > +
> > > >  static void test_io_channel_command_fifo(bool async)
> > > >  {
> > > > -#define TEST_FIFO "tests/test-io-channel-command.fifo"
> > > >      QIOChannel *src, *dst;
> > > >      QIOChannelTest *test;
> > > > -    const char *srcfifo = "PIPE:" TEST_FIFO ",wronly";
> > > > -    const char *dstfifo = "PIPE:" TEST_FIFO ",rdonly";
> > > >      const char *srcargv[] = {
> > > > -        "/bin/socat", "-", srcfifo, NULL,
> > > > +        g_getenv("SOCAT"), "-", SOCAT_SRC, NULL,
> > >
> > > Please don't rely on env variables, as it complicates the ability to
> > > invoke the test directly, without the meson harness. Either pass the
> > > path from meson at compile time in config-host.h, or make this code
> > > use an unqualified path, so it honours $PATH at runtime.
> >
> > I tried to pass it through config-host.h, but I dont see a way to
> > escape the \ is the paths.
>
> This must be possible, as we have lots of strings in config-host.h
> that are paths - eg many CONFIG_QEMU_xxxDIR variables
>

Those paths, generated by meson I believe, use /-dir separators. But
find_program() returns \-seperated paths.. Maybe the solution is to replace
\ with / ? (hopefully the path is not quoted already...)

There is a proposal for to_quoted():
https://github.com/mesonbuild/meson/issues/10417

I found another solution, using g_find_program_in_path(). See v3.

thanks

-- 
Marc-André Lureau

[-- Attachment #2: Type: text/html, Size: 4570 bytes --]

      reply	other threads:[~2022-10-06 11:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-06  8:12 [PATCH v3 0/5] io/command: implement portable spawn marcandre.lureau
2022-10-06  8:12 ` [PATCH v3 1/5] osdep: make readv_writev() work with partial read/write marcandre.lureau
2022-10-06  8:31   ` Daniel P. Berrangé
2022-10-06  8:12 ` [PATCH v3 2/5] tests/channel-helper: set blocking in main thread marcandre.lureau
2022-10-06  8:25   ` Daniel P. Berrangé
2022-10-06  8:12 ` [PATCH v3 3/5] io/command: use glib GSpawn, instead of open-coding fork/exec marcandre.lureau
2022-10-06  8:12 ` [PATCH v3 4/5] io/command: implement support for win32 marcandre.lureau
2022-10-06  8:38   ` Daniel P. Berrangé
2022-10-06  8:12 ` [PATCH v3 5/5] tests/unit: make test-io-channel-command work on win32 marcandre.lureau
2022-10-06  8:42   ` Daniel P. Berrangé
2022-10-06  8:46     ` Marc-André Lureau
2022-10-06  8:56       ` Daniel P. Berrangé
2022-10-06 11:26         ` Marc-André Lureau [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJ+F1CLJrXLPtpqt8oG-Ob5hmG8Sg5ZaCdLbNGjJ=B3ZfMqECQ@mail.gmail.com' \
    --to=marcandre.lureau@gmail.com \
    --cc=berrange@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.