diff mbox series

[v2,01/39] tests: Change to use g_mkdir()

Message ID 20220920103159.1865256-2-bmeng.cn@gmail.com (mailing list archive)
State New, archived
Headers show
Series tests/qtest: Enable running qtest on Windows | expand

Commit Message

Bin Meng Sept. 20, 2022, 10:31 a.m. UTC
From: Bin Meng <bin.meng@windriver.com>

Commit 413bebc04603 ("tests: Use g_mkdir_with_parents()") replaces
the mkdir() call in the test codes with glib's g_mkdir_with_parents(),
but the exact portable replacement for mkdir() should be g_mkdir().

I probably was misled by the GTK glib doc [1] before, thinking that
g_mkdir() is not a supported API from glib. But the glib sources do
not support this statement. It is probably that the GTK documentation
was not built to include all APIs.

[1] https://docs.gtk.org/glib/?q=mkdir

Fixes: 413bebc04603 ("tests: Use g_mkdir_with_parents()")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---

Changes in v2:
- new patch: "tests: Change to use g_mkdir()"

 tests/migration/stress.c              | 3 ++-
 tests/qtest/migration-test.c          | 7 ++++---
 tests/unit/test-crypto-tlscredsx509.c | 5 +++--
 tests/unit/test-crypto-tlssession.c   | 7 ++++---
 tests/unit/test-io-channel-tls.c      | 7 ++++---
 5 files changed, 17 insertions(+), 12 deletions(-)

Comments

Marc-André Lureau Sept. 22, 2022, 7:32 p.m. UTC | #1
Hi

On Tue, Sep 20, 2022 at 1:48 PM Bin Meng <bmeng.cn@gmail.com> wrote:

> From: Bin Meng <bin.meng@windriver.com>
>
> Commit 413bebc04603 ("tests: Use g_mkdir_with_parents()") replaces
> the mkdir() call in the test codes with glib's g_mkdir_with_parents(),
> but the exact portable replacement for mkdir() should be g_mkdir().
>
> I probably was misled by the GTK glib doc [1] before, thinking that
> g_mkdir() is not a supported API from glib. But the glib sources do
> not support this statement. It is probably that the GTK documentation
> was not built to include all APIs.
>
> [1] https://docs.gtk.org/glib/?q=mkdir
>
> Fixes: 413bebc04603 ("tests: Use g_mkdir_with_parents()")
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
>

I wouldn't bother anymore, I'd keep mkdir_with_parents for now. YMMV

---
>
> Changes in v2:
> - new patch: "tests: Change to use g_mkdir()"
>
>  tests/migration/stress.c              | 3 ++-
>  tests/qtest/migration-test.c          | 7 ++++---
>  tests/unit/test-crypto-tlscredsx509.c | 5 +++--
>  tests/unit/test-crypto-tlssession.c   | 7 ++++---
>  tests/unit/test-io-channel-tls.c      | 7 ++++---
>  5 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/tests/migration/stress.c b/tests/migration/stress.c
> index 88acf8dc25..76b91851ad 100644
> --- a/tests/migration/stress.c
> +++ b/tests/migration/stress.c
> @@ -19,6 +19,7 @@
>
>  #include "qemu/osdep.h"
>  #include <getopt.h>
> +#include <glib/gstdio.h>
>  #include <sys/reboot.h>
>  #include <sys/syscall.h>
>  #include <linux/random.h>
> @@ -232,7 +233,7 @@ static void stress(unsigned long long ramsizeGB, int
> ncpus)
>
>  static int mount_misc(const char *fstype, const char *dir)
>  {
> -    if (g_mkdir_with_parents(dir, 0755) < 0 && errno != EEXIST) {
> +    if (g_mkdir(dir, 0755) < 0 && errno != EEXIST) {
>          fprintf(stderr, "%s (%05d): ERROR: cannot create %s: %s\n",
>                  argv0, gettid(), dir, strerror(errno));
>          return -1;
> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
> index 4728d528bb..55892b3798 100644
> --- a/tests/qtest/migration-test.c
> +++ b/tests/qtest/migration-test.c
> @@ -11,6 +11,7 @@
>   */
>
>  #include "qemu/osdep.h"
> +#include <glib/gstdio.h>
>
>  #include "libqtest.h"
>  #include "qapi/error.h"
> @@ -761,14 +762,14 @@ test_migrate_tls_psk_start_common(QTestState *from,
>      data->workdir = g_strdup_printf("%s/tlscredspsk0", tmpfs);
>      data->pskfile = g_strdup_printf("%s/%s", data->workdir,
>                                      QCRYPTO_TLS_CREDS_PSKFILE);
> -    g_mkdir_with_parents(data->workdir, 0700);
> +    g_mkdir(data->workdir, 0700);
>      test_tls_psk_init(data->pskfile);
>
>      if (mismatch) {
>          data->workdiralt = g_strdup_printf("%s/tlscredspskalt0", tmpfs);
>          data->pskfilealt = g_strdup_printf("%s/%s", data->workdiralt,
>                                             QCRYPTO_TLS_CREDS_PSKFILE);
> -        g_mkdir_with_parents(data->workdiralt, 0700);
> +        g_mkdir(data->workdiralt, 0700);
>          test_tls_psk_init_alt(data->pskfilealt);
>      }
>
> @@ -873,7 +874,7 @@ test_migrate_tls_x509_start_common(QTestState *from,
>          data->clientcert = g_strdup_printf("%s/client-cert.pem",
> data->workdir);
>      }
>
> -    g_mkdir_with_parents(data->workdir, 0700);
> +    g_mkdir(data->workdir, 0700);
>
>      test_tls_init(data->keyfile);
>  #ifndef _WIN32
> diff --git a/tests/unit/test-crypto-tlscredsx509.c
> b/tests/unit/test-crypto-tlscredsx509.c
> index 3c25d75ca1..03fa48a3c5 100644
> --- a/tests/unit/test-crypto-tlscredsx509.c
> +++ b/tests/unit/test-crypto-tlscredsx509.c
> @@ -19,6 +19,7 @@
>   */
>
>  #include "qemu/osdep.h"
> +#include <glib/gstdio.h>
>
>  #include "crypto-tls-x509-helpers.h"
>  #include "crypto/tlscredsx509.h"
> @@ -75,7 +76,7 @@ static void test_tls_creds(const void *opaque)
>      QCryptoTLSCreds *creds;
>
>  #define CERT_DIR "tests/test-crypto-tlscredsx509-certs/"
> -    g_mkdir_with_parents(CERT_DIR, 0700);
> +    g_mkdir(CERT_DIR, 0700);
>
>      unlink(CERT_DIR QCRYPTO_TLS_CREDS_X509_CA_CERT);
>      if (data->isServer) {
> @@ -141,7 +142,7 @@ int main(int argc, char **argv)
>      g_test_init(&argc, &argv, NULL);
>      g_setenv("GNUTLS_FORCE_FIPS_MODE", "2", 1);
>
> -    g_mkdir_with_parents(WORKDIR, 0700);
> +    g_mkdir(WORKDIR, 0700);
>
>      test_tls_init(KEYFILE);
>
> diff --git a/tests/unit/test-crypto-tlssession.c
> b/tests/unit/test-crypto-tlssession.c
> index 615a1344b4..356afbadfb 100644
> --- a/tests/unit/test-crypto-tlssession.c
> +++ b/tests/unit/test-crypto-tlssession.c
> @@ -19,6 +19,7 @@
>   */
>
>  #include "qemu/osdep.h"
> +#include <glib/gstdio.h>
>
>  #include "crypto-tls-x509-helpers.h"
>  #include "crypto-tls-psk-helpers.h"
> @@ -249,8 +250,8 @@ static void test_crypto_tls_session_x509(const void
> *opaque)
>
>  #define CLIENT_CERT_DIR "tests/test-crypto-tlssession-client/"
>  #define SERVER_CERT_DIR "tests/test-crypto-tlssession-server/"
> -    g_mkdir_with_parents(CLIENT_CERT_DIR, 0700);
> -    g_mkdir_with_parents(SERVER_CERT_DIR, 0700);
> +    g_mkdir(CLIENT_CERT_DIR, 0700);
> +    g_mkdir(SERVER_CERT_DIR, 0700);
>
>      unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_CA_CERT);
>      unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_SERVER_CERT);
> @@ -398,7 +399,7 @@ int main(int argc, char **argv)
>      g_test_init(&argc, &argv, NULL);
>      g_setenv("GNUTLS_FORCE_FIPS_MODE", "2", 1);
>
> -    g_mkdir_with_parents(WORKDIR, 0700);
> +    g_mkdir(WORKDIR, 0700);
>
>      test_tls_init(KEYFILE);
>      test_tls_psk_init(PSKFILE);
> diff --git a/tests/unit/test-io-channel-tls.c
> b/tests/unit/test-io-channel-tls.c
> index cc39247556..1d95c9f61d 100644
> --- a/tests/unit/test-io-channel-tls.c
> +++ b/tests/unit/test-io-channel-tls.c
> @@ -22,6 +22,7 @@
>
>
>  #include "qemu/osdep.h"
> +#include <glib/gstdio.h>
>
>  #include "crypto-tls-x509-helpers.h"
>  #include "io/channel-tls.h"
> @@ -125,8 +126,8 @@ static void test_io_channel_tls(const void *opaque)
>
>  #define CLIENT_CERT_DIR "tests/test-io-channel-tls-client/"
>  #define SERVER_CERT_DIR "tests/test-io-channel-tls-server/"
> -    g_mkdir_with_parents(CLIENT_CERT_DIR, 0700);
> -    g_mkdir_with_parents(SERVER_CERT_DIR, 0700);
> +    g_mkdir(CLIENT_CERT_DIR, 0700);
> +    g_mkdir(SERVER_CERT_DIR, 0700);
>
>      unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_CA_CERT);
>      unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_SERVER_CERT);
> @@ -273,7 +274,7 @@ int main(int argc, char **argv)
>      g_test_init(&argc, &argv, NULL);
>      g_setenv("GNUTLS_FORCE_FIPS_MODE", "2", 1);
>
> -    g_mkdir_with_parents(WORKDIR, 0700);
> +    g_mkdir(WORKDIR, 0700);
>
>      test_tls_init(KEYFILE);
>
> --
> 2.34.1
>
>
>
Bin Meng Sept. 23, 2022, 1:09 a.m. UTC | #2
On Fri, Sep 23, 2022 at 3:32 AM Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi
>
> On Tue, Sep 20, 2022 at 1:48 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>>
>> From: Bin Meng <bin.meng@windriver.com>
>>
>> Commit 413bebc04603 ("tests: Use g_mkdir_with_parents()") replaces
>> the mkdir() call in the test codes with glib's g_mkdir_with_parents(),
>> but the exact portable replacement for mkdir() should be g_mkdir().
>>
>> I probably was misled by the GTK glib doc [1] before, thinking that
>> g_mkdir() is not a supported API from glib. But the glib sources do
>> not support this statement. It is probably that the GTK documentation
>> was not built to include all APIs.
>>
>> [1] https://docs.gtk.org/glib/?q=mkdir
>>
>> Fixes: 413bebc04603 ("tests: Use g_mkdir_with_parents()")
>> Signed-off-by: Bin Meng <bin.meng@windriver.com>
>
>
> I wouldn't bother anymore, I'd keep mkdir_with_parents for now. YMMV
>

Yep but some maintainers pointed out in other patches in v1 that
g_mkdir() is the strict replacement for mkdir() :)

@Thomas Huth Would you share your thoughts?

Regards,
Bin
Thomas Huth Sept. 23, 2022, 6:02 p.m. UTC | #3
On 23/09/2022 03.09, Bin Meng wrote:
> On Fri, Sep 23, 2022 at 3:32 AM Marc-André Lureau
> <marcandre.lureau@gmail.com> wrote:
>>
>> Hi
>>
>> On Tue, Sep 20, 2022 at 1:48 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>>>
>>> From: Bin Meng <bin.meng@windriver.com>
>>>
>>> Commit 413bebc04603 ("tests: Use g_mkdir_with_parents()") replaces
>>> the mkdir() call in the test codes with glib's g_mkdir_with_parents(),
>>> but the exact portable replacement for mkdir() should be g_mkdir().
>>>
>>> I probably was misled by the GTK glib doc [1] before, thinking that
>>> g_mkdir() is not a supported API from glib. But the glib sources do
>>> not support this statement. It is probably that the GTK documentation
>>> was not built to include all APIs.
>>>
>>> [1] https://docs.gtk.org/glib/?q=mkdir
>>>
>>> Fixes: 413bebc04603 ("tests: Use g_mkdir_with_parents()")
>>> Signed-off-by: Bin Meng <bin.meng@windriver.com>
>>
>>
>> I wouldn't bother anymore, I'd keep mkdir_with_parents for now. YMMV
>>
> 
> Yep but some maintainers pointed out in other patches in v1 that
> g_mkdir() is the strict replacement for mkdir() :)
> 
> @Thomas Huth Would you share your thoughts?

It's a little bit weird that g_mkdir() does not show up in the glib docs ... 
let's keep g_mkdir_with_parents(), that sounds like the better choice to me.

  Thomas
Daniel P. Berrangé Sept. 26, 2022, 8:21 a.m. UTC | #4
On Fri, Sep 23, 2022 at 08:02:46PM +0200, Thomas Huth wrote:
> On 23/09/2022 03.09, Bin Meng wrote:
> > On Fri, Sep 23, 2022 at 3:32 AM Marc-André Lureau
> > <marcandre.lureau@gmail.com> wrote:
> > > 
> > > Hi
> > > 
> > > On Tue, Sep 20, 2022 at 1:48 PM Bin Meng <bmeng.cn@gmail.com> wrote:
> > > > 
> > > > From: Bin Meng <bin.meng@windriver.com>
> > > > 
> > > > Commit 413bebc04603 ("tests: Use g_mkdir_with_parents()") replaces
> > > > the mkdir() call in the test codes with glib's g_mkdir_with_parents(),
> > > > but the exact portable replacement for mkdir() should be g_mkdir().
> > > > 
> > > > I probably was misled by the GTK glib doc [1] before, thinking that
> > > > g_mkdir() is not a supported API from glib. But the glib sources do
> > > > not support this statement. It is probably that the GTK documentation
> > > > was not built to include all APIs.
> > > > 
> > > > [1] https://docs.gtk.org/glib/?q=mkdir
> > > > 
> > > > Fixes: 413bebc04603 ("tests: Use g_mkdir_with_parents()")
> > > > Signed-off-by: Bin Meng <bin.meng@windriver.com>
> > > 
> > > 
> > > I wouldn't bother anymore, I'd keep mkdir_with_parents for now. YMMV
> > > 
> > 
> > Yep but some maintainers pointed out in other patches in v1 that
> > g_mkdir() is the strict replacement for mkdir() :)
> > 
> > @Thomas Huth Would you share your thoughts?
> 
> It's a little bit weird that g_mkdir() does not show up in the glib docs ...
> let's keep g_mkdir_with_parents(), that sounds like the better choice to me.

That is a bug in the new docs generator for GTK. It appears to have
missed out a whole bunch of APIs.  It is certainly present in the old
docs from gtk-doc output

https://developer-old.gnome.org/glib/2.64/glib-File-Utilities.html#g-mkdir

With regards,
Daniel
diff mbox series

Patch

diff --git a/tests/migration/stress.c b/tests/migration/stress.c
index 88acf8dc25..76b91851ad 100644
--- a/tests/migration/stress.c
+++ b/tests/migration/stress.c
@@ -19,6 +19,7 @@ 
 
 #include "qemu/osdep.h"
 #include <getopt.h>
+#include <glib/gstdio.h>
 #include <sys/reboot.h>
 #include <sys/syscall.h>
 #include <linux/random.h>
@@ -232,7 +233,7 @@  static void stress(unsigned long long ramsizeGB, int ncpus)
 
 static int mount_misc(const char *fstype, const char *dir)
 {
-    if (g_mkdir_with_parents(dir, 0755) < 0 && errno != EEXIST) {
+    if (g_mkdir(dir, 0755) < 0 && errno != EEXIST) {
         fprintf(stderr, "%s (%05d): ERROR: cannot create %s: %s\n",
                 argv0, gettid(), dir, strerror(errno));
         return -1;
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 4728d528bb..55892b3798 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -11,6 +11,7 @@ 
  */
 
 #include "qemu/osdep.h"
+#include <glib/gstdio.h>
 
 #include "libqtest.h"
 #include "qapi/error.h"
@@ -761,14 +762,14 @@  test_migrate_tls_psk_start_common(QTestState *from,
     data->workdir = g_strdup_printf("%s/tlscredspsk0", tmpfs);
     data->pskfile = g_strdup_printf("%s/%s", data->workdir,
                                     QCRYPTO_TLS_CREDS_PSKFILE);
-    g_mkdir_with_parents(data->workdir, 0700);
+    g_mkdir(data->workdir, 0700);
     test_tls_psk_init(data->pskfile);
 
     if (mismatch) {
         data->workdiralt = g_strdup_printf("%s/tlscredspskalt0", tmpfs);
         data->pskfilealt = g_strdup_printf("%s/%s", data->workdiralt,
                                            QCRYPTO_TLS_CREDS_PSKFILE);
-        g_mkdir_with_parents(data->workdiralt, 0700);
+        g_mkdir(data->workdiralt, 0700);
         test_tls_psk_init_alt(data->pskfilealt);
     }
 
@@ -873,7 +874,7 @@  test_migrate_tls_x509_start_common(QTestState *from,
         data->clientcert = g_strdup_printf("%s/client-cert.pem", data->workdir);
     }
 
-    g_mkdir_with_parents(data->workdir, 0700);
+    g_mkdir(data->workdir, 0700);
 
     test_tls_init(data->keyfile);
 #ifndef _WIN32
diff --git a/tests/unit/test-crypto-tlscredsx509.c b/tests/unit/test-crypto-tlscredsx509.c
index 3c25d75ca1..03fa48a3c5 100644
--- a/tests/unit/test-crypto-tlscredsx509.c
+++ b/tests/unit/test-crypto-tlscredsx509.c
@@ -19,6 +19,7 @@ 
  */
 
 #include "qemu/osdep.h"
+#include <glib/gstdio.h>
 
 #include "crypto-tls-x509-helpers.h"
 #include "crypto/tlscredsx509.h"
@@ -75,7 +76,7 @@  static void test_tls_creds(const void *opaque)
     QCryptoTLSCreds *creds;
 
 #define CERT_DIR "tests/test-crypto-tlscredsx509-certs/"
-    g_mkdir_with_parents(CERT_DIR, 0700);
+    g_mkdir(CERT_DIR, 0700);
 
     unlink(CERT_DIR QCRYPTO_TLS_CREDS_X509_CA_CERT);
     if (data->isServer) {
@@ -141,7 +142,7 @@  int main(int argc, char **argv)
     g_test_init(&argc, &argv, NULL);
     g_setenv("GNUTLS_FORCE_FIPS_MODE", "2", 1);
 
-    g_mkdir_with_parents(WORKDIR, 0700);
+    g_mkdir(WORKDIR, 0700);
 
     test_tls_init(KEYFILE);
 
diff --git a/tests/unit/test-crypto-tlssession.c b/tests/unit/test-crypto-tlssession.c
index 615a1344b4..356afbadfb 100644
--- a/tests/unit/test-crypto-tlssession.c
+++ b/tests/unit/test-crypto-tlssession.c
@@ -19,6 +19,7 @@ 
  */
 
 #include "qemu/osdep.h"
+#include <glib/gstdio.h>
 
 #include "crypto-tls-x509-helpers.h"
 #include "crypto-tls-psk-helpers.h"
@@ -249,8 +250,8 @@  static void test_crypto_tls_session_x509(const void *opaque)
 
 #define CLIENT_CERT_DIR "tests/test-crypto-tlssession-client/"
 #define SERVER_CERT_DIR "tests/test-crypto-tlssession-server/"
-    g_mkdir_with_parents(CLIENT_CERT_DIR, 0700);
-    g_mkdir_with_parents(SERVER_CERT_DIR, 0700);
+    g_mkdir(CLIENT_CERT_DIR, 0700);
+    g_mkdir(SERVER_CERT_DIR, 0700);
 
     unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_CA_CERT);
     unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_SERVER_CERT);
@@ -398,7 +399,7 @@  int main(int argc, char **argv)
     g_test_init(&argc, &argv, NULL);
     g_setenv("GNUTLS_FORCE_FIPS_MODE", "2", 1);
 
-    g_mkdir_with_parents(WORKDIR, 0700);
+    g_mkdir(WORKDIR, 0700);
 
     test_tls_init(KEYFILE);
     test_tls_psk_init(PSKFILE);
diff --git a/tests/unit/test-io-channel-tls.c b/tests/unit/test-io-channel-tls.c
index cc39247556..1d95c9f61d 100644
--- a/tests/unit/test-io-channel-tls.c
+++ b/tests/unit/test-io-channel-tls.c
@@ -22,6 +22,7 @@ 
 
 
 #include "qemu/osdep.h"
+#include <glib/gstdio.h>
 
 #include "crypto-tls-x509-helpers.h"
 #include "io/channel-tls.h"
@@ -125,8 +126,8 @@  static void test_io_channel_tls(const void *opaque)
 
 #define CLIENT_CERT_DIR "tests/test-io-channel-tls-client/"
 #define SERVER_CERT_DIR "tests/test-io-channel-tls-server/"
-    g_mkdir_with_parents(CLIENT_CERT_DIR, 0700);
-    g_mkdir_with_parents(SERVER_CERT_DIR, 0700);
+    g_mkdir(CLIENT_CERT_DIR, 0700);
+    g_mkdir(SERVER_CERT_DIR, 0700);
 
     unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_CA_CERT);
     unlink(SERVER_CERT_DIR QCRYPTO_TLS_CREDS_X509_SERVER_CERT);
@@ -273,7 +274,7 @@  int main(int argc, char **argv)
     g_test_init(&argc, &argv, NULL);
     g_setenv("GNUTLS_FORCE_FIPS_MODE", "2", 1);
 
-    g_mkdir_with_parents(WORKDIR, 0700);
+    g_mkdir(WORKDIR, 0700);
 
     test_tls_init(KEYFILE);