diff mbox series

[1/2] tests: Trying fixes test-replication.c on msys2/mingw.

Message ID 20200905211038.904-2-luoyonggang@gmail.com (mailing list archive)
State New, archived
Headers show
Series Try fixes test-replication.c running on msys2/mingw | expand

Commit Message

Yonggang Luo Sept. 5, 2020, 9:10 p.m. UTC
On Windows there is no path like /tmp/s_local_disk.XXXXXX

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/test-replication.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

Stefan Weil Sept. 5, 2020, 9:49 p.m. UTC | #1
Am 05.09.20 um 23:10 schrieb Yonggang Luo:

> On Windows there is no path like /tmp/s_local_disk.XXXXXX
>
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/test-replication.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/tests/test-replication.c b/tests/test-replication.c
> index 9ab3666a90..3cf544a133 100644
> --- a/tests/test-replication.c
> +++ b/tests/test-replication.c
> @@ -23,14 +23,14 @@
>  
>  /* primary */
>  #define P_ID "primary-id"
> -static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
> +static char p_local_disk[PATH_MAX];
>  
>  /* secondary */
>  #define S_ID "secondary-id"
>  #define S_LOCAL_DISK_ID "secondary-local-disk-id"
> -static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
> -static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
> -static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
> +static char s_local_disk[PATH_MAX];
> +static char s_active_disk[PATH_MAX];
> +static char s_hidden_disk[PATH_MAX];
>  
>  /* FIXME: steal from blockdev.c */
>  QemuOptsList qemu_drive_opts = {
> @@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void)
>  int main(int argc, char **argv)
>  {
>      int ret;
> +    const char *tmpdir = g_get_tmp_dir();
> +    sprintf(p_local_disk, "%s/p_local_disk.XXXXXX", tmpdir);
> +    sprintf(s_local_disk, "%s/s_local_disk.XXXXXX", tmpdir);
> +    sprintf(s_active_disk, "%s/s_active_disk.XXXXXX", tmpdir);
> +    sprintf(s_hidden_disk, "%s/s_hidden_disk.XXXXXX", tmpdir);
>      qemu_init_main_loop(&error_fatal);
>      bdrv_init();
>  


Maybe it is possible to use get_tmp_filename() (which could be
simplified by using g_get_tmp_dir).

And please use snprintf instead of sprintf. I am afraid that a path can
be longer than PATH_MAX, even if the tmpdir path is normally rather short.

You could also allocate the different filenames dynamically instead of
limiting them to PATH_MAX characters.

Regards

Stefan Weil
Yonggang Luo Sept. 6, 2020, 12:13 p.m. UTC | #2
On Sun, Sep 6, 2020 at 5:49 AM Stefan Weil <sw@weilnetz.de> wrote:

> Am 05.09.20 um 23:10 schrieb Yonggang Luo:
>
> > On Windows there is no path like /tmp/s_local_disk.XXXXXX
> >
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > ---
> >  tests/test-replication.c | 13 +++++++++----
> >  1 file changed, 9 insertions(+), 4 deletions(-)
> >
> > diff --git a/tests/test-replication.c b/tests/test-replication.c
> > index 9ab3666a90..3cf544a133 100644
> > --- a/tests/test-replication.c
> > +++ b/tests/test-replication.c
> > @@ -23,14 +23,14 @@
> >
> >  /* primary */
> >  #define P_ID "primary-id"
> > -static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
> > +static char p_local_disk[PATH_MAX];
> >
> >  /* secondary */
> >  #define S_ID "secondary-id"
> >  #define S_LOCAL_DISK_ID "secondary-local-disk-id"
> > -static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
> > -static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
> > -static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
> > +static char s_local_disk[PATH_MAX];
> > +static char s_active_disk[PATH_MAX];
> > +static char s_hidden_disk[PATH_MAX];
> >
> >  /* FIXME: steal from blockdev.c */
> >  QemuOptsList qemu_drive_opts = {
> > @@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void)
> >  int main(int argc, char **argv)
> >  {
> >      int ret;
> > +    const char *tmpdir = g_get_tmp_dir();
> > +    sprintf(p_local_disk, "%s/p_local_disk.XXXXXX", tmpdir);
> > +    sprintf(s_local_disk, "%s/s_local_disk.XXXXXX", tmpdir);
> > +    sprintf(s_active_disk, "%s/s_active_disk.XXXXXX", tmpdir);
> > +    sprintf(s_hidden_disk, "%s/s_hidden_disk.XXXXXX", tmpdir);
> >      qemu_init_main_loop(&error_fatal);
> >      bdrv_init();
> >
>
>
> Maybe it is possible to use get_tmp_filename() (which could be
> simplified by using g_get_tmp_dir).
>
What  does get_tmp_filename mean? I didn't understand

>
> And please use snprintf instead of sprintf. I am afraid that a path can
> be longer than PATH_MAX, even if the tmpdir path is normally rather short.
>
 OK, I'll use  snprintf

>
> You could also allocate the different filenames dynamically instead of
> limiting them to PATH_MAX characters.
>
as a test, it's too complicated,

>
> Regards
>
> Stefan Weil
>
>
>
Daniel P. Berrangé Sept. 7, 2020, 9:24 a.m. UTC | #3
On Sun, Sep 06, 2020 at 08:13:19PM +0800, 罗勇刚(Yonggang Luo) wrote:
> On Sun, Sep 6, 2020 at 5:49 AM Stefan Weil <sw@weilnetz.de> wrote:
> 
> > Am 05.09.20 um 23:10 schrieb Yonggang Luo:
> >
> > > On Windows there is no path like /tmp/s_local_disk.XXXXXX
> > >
> > > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > > ---
> > >  tests/test-replication.c | 13 +++++++++----
> > >  1 file changed, 9 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/tests/test-replication.c b/tests/test-replication.c
> > > index 9ab3666a90..3cf544a133 100644
> > > --- a/tests/test-replication.c
> > > +++ b/tests/test-replication.c
> > > @@ -23,14 +23,14 @@
> > >
> > >  /* primary */
> > >  #define P_ID "primary-id"
> > > -static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
> > > +static char p_local_disk[PATH_MAX];
> > >
> > >  /* secondary */
> > >  #define S_ID "secondary-id"
> > >  #define S_LOCAL_DISK_ID "secondary-local-disk-id"
> > > -static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
> > > -static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
> > > -static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
> > > +static char s_local_disk[PATH_MAX];
> > > +static char s_active_disk[PATH_MAX];
> > > +static char s_hidden_disk[PATH_MAX];
> > >
> > >  /* FIXME: steal from blockdev.c */
> > >  QemuOptsList qemu_drive_opts = {
> > > @@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void)
> > >  int main(int argc, char **argv)
> > >  {
> > >      int ret;
> > > +    const char *tmpdir = g_get_tmp_dir();
> > > +    sprintf(p_local_disk, "%s/p_local_disk.XXXXXX", tmpdir);
> > > +    sprintf(s_local_disk, "%s/s_local_disk.XXXXXX", tmpdir);
> > > +    sprintf(s_active_disk, "%s/s_active_disk.XXXXXX", tmpdir);
> > > +    sprintf(s_hidden_disk, "%s/s_hidden_disk.XXXXXX", tmpdir);
> > >      qemu_init_main_loop(&error_fatal);
> > >      bdrv_init();
> > >
> >
> >
> > Maybe it is possible to use get_tmp_filename() (which could be
> > simplified by using g_get_tmp_dir).
> >
> What  does get_tmp_filename mean? I didn't understand
> 
> >
> > And please use snprintf instead of sprintf. I am afraid that a path can
> > be longer than PATH_MAX, even if the tmpdir path is normally rather short.
> >
>  OK, I'll use  snprintf
> 
> >
> > You could also allocate the different filenames dynamically instead of
> > limiting them to PATH_MAX characters.
> >
> as a test, it's too complicated,

I really isn't hard to replace sprintf() with g_strdup_printf() and
then g_free() at the end of the test.


Regards,
Daniel
diff mbox series

Patch

diff --git a/tests/test-replication.c b/tests/test-replication.c
index 9ab3666a90..3cf544a133 100644
--- a/tests/test-replication.c
+++ b/tests/test-replication.c
@@ -23,14 +23,14 @@ 
 
 /* primary */
 #define P_ID "primary-id"
-static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
+static char p_local_disk[PATH_MAX];
 
 /* secondary */
 #define S_ID "secondary-id"
 #define S_LOCAL_DISK_ID "secondary-local-disk-id"
-static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
-static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
-static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
+static char s_local_disk[PATH_MAX];
+static char s_active_disk[PATH_MAX];
+static char s_hidden_disk[PATH_MAX];
 
 /* FIXME: steal from blockdev.c */
 QemuOptsList qemu_drive_opts = {
@@ -571,6 +571,11 @@  static void setup_sigabrt_handler(void)
 int main(int argc, char **argv)
 {
     int ret;
+    const char *tmpdir = g_get_tmp_dir();
+    sprintf(p_local_disk, "%s/p_local_disk.XXXXXX", tmpdir);
+    sprintf(s_local_disk, "%s/s_local_disk.XXXXXX", tmpdir);
+    sprintf(s_active_disk, "%s/s_active_disk.XXXXXX", tmpdir);
+    sprintf(s_hidden_disk, "%s/s_hidden_disk.XXXXXX", tmpdir);
     qemu_init_main_loop(&error_fatal);
     bdrv_init();