[PATCH for-8.1] tests/test-util-filemonitor: Avoid pointless allocations

Philippe Mathieu-Daudé posted 1 patch 9 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230719150103.36634-1-philmd@linaro.org
Maintainers: "Daniel P. Berrangé" <berrange@redhat.com>
tests/unit/test-util-filemonitor.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
[PATCH for-8.1] tests/test-util-filemonitor: Avoid pointless allocations
Posted by Philippe Mathieu-Daudé 9 months, 3 weeks ago
Coverity reports few resource leaks. While they are
harmless, fix them to avoid them showing on the reports.

Reported-by: Coverity (CID 1432615: RESOURCE_LEAK)
Fixes: 4f370b1098 ("test-util-filemonitor: Skip test on non-x86 Travis containers")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 tests/unit/test-util-filemonitor.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/tests/unit/test-util-filemonitor.c b/tests/unit/test-util-filemonitor.c
index b629e10857..3ca687860d 100644
--- a/tests/unit/test-util-filemonitor.c
+++ b/tests/unit/test-util-filemonitor.c
@@ -398,7 +398,7 @@ test_file_monitor_events(void)
     };
     Error *local_err = NULL;
     GError *gerr = NULL;
-    QFileMonitor *mon = qemu_file_monitor_new(&local_err);
+    QFileMonitor *mon;
     QemuThread th;
     GTimer *timer;
     gchar *dir = NULL;
@@ -407,12 +407,9 @@ test_file_monitor_events(void)
     char *pathsrc = NULL;
     char *pathdst = NULL;
     QFileMonitorTestData data;
-    GHashTable *ids = g_hash_table_new(g_int64_hash, g_int64_equal);
+    GHashTable *ids;
     char *travis_arch;
 
-    qemu_mutex_init(&data.lock);
-    data.records = NULL;
-
     /*
      * This test does not work on Travis LXD containers since some
      * syscalls are blocked in that environment.
@@ -423,6 +420,12 @@ test_file_monitor_events(void)
         return;
     }
 
+    mon = qemu_file_monitor_new(&local_err);
+    ids = g_hash_table_new(g_int64_hash, g_int64_equal);
+
+    qemu_mutex_init(&data.lock);
+    data.records = NULL;
+
     /*
      * The file monitor needs the main loop running in
      * order to receive events from inotify. We must
-- 
2.38.1


Re: [PATCH for-8.1] tests/test-util-filemonitor: Avoid pointless allocations
Posted by Daniel P. Berrangé 9 months, 3 weeks ago
On Wed, Jul 19, 2023 at 05:01:03PM +0200, Philippe Mathieu-Daudé wrote:
> Coverity reports few resource leaks. While they are
> harmless, fix them to avoid them showing on the reports.
> 
> Reported-by: Coverity (CID 1432615: RESOURCE_LEAK)
> Fixes: 4f370b1098 ("test-util-filemonitor: Skip test on non-x86 Travis containers")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  tests/unit/test-util-filemonitor.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/unit/test-util-filemonitor.c b/tests/unit/test-util-filemonitor.c
> index b629e10857..3ca687860d 100644
> --- a/tests/unit/test-util-filemonitor.c
> +++ b/tests/unit/test-util-filemonitor.c
> @@ -398,7 +398,7 @@ test_file_monitor_events(void)
>      };
>      Error *local_err = NULL;
>      GError *gerr = NULL;
> -    QFileMonitor *mon = qemu_file_monitor_new(&local_err);
> +    QFileMonitor *mon;
>      QemuThread th;
>      GTimer *timer;
>      gchar *dir = NULL;
> @@ -407,12 +407,9 @@ test_file_monitor_events(void)
>      char *pathsrc = NULL;
>      char *pathdst = NULL;
>      QFileMonitorTestData data;
> -    GHashTable *ids = g_hash_table_new(g_int64_hash, g_int64_equal);
> +    GHashTable *ids;
>      char *travis_arch;
>  
> -    qemu_mutex_init(&data.lock);
> -    data.records = NULL;
> -
>      /*
>       * This test does not work on Travis LXD containers since some
>       * syscalls are blocked in that environment.

Right here is logic that checks the TRAVIS_ARCH env variable.

IMHO this should just be moved out into the main() method, so
we don't even start test when under Travis. Just make the whole
program exits with a skip status on travis.

> @@ -423,6 +420,12 @@ test_file_monitor_events(void)
>          return;
>      }
>  
> +    mon = qemu_file_monitor_new(&local_err);
> +    ids = g_hash_table_new(g_int64_hash, g_int64_equal);
> +
> +    qemu_mutex_init(&data.lock);
> +    data.records = NULL;
> +
>      /*
>       * The file monitor needs the main loop running in
>       * order to receive events from inotify. We must
> -- 
> 2.38.1
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Re: [PATCH for-8.1] tests/test-util-filemonitor: Avoid pointless allocations
Posted by Philippe Mathieu-Daudé 9 months, 3 weeks ago
On 19/7/23 17:39, Daniel P. Berrangé wrote:
> On Wed, Jul 19, 2023 at 05:01:03PM +0200, Philippe Mathieu-Daudé wrote:
>> Coverity reports few resource leaks. While they are
>> harmless, fix them to avoid them showing on the reports.
>>
>> Reported-by: Coverity (CID 1432615: RESOURCE_LEAK)
>> Fixes: 4f370b1098 ("test-util-filemonitor: Skip test on non-x86 Travis containers")
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>>   tests/unit/test-util-filemonitor.c | 13 ++++++++-----
>>   1 file changed, 8 insertions(+), 5 deletions(-)
>>
>> diff --git a/tests/unit/test-util-filemonitor.c b/tests/unit/test-util-filemonitor.c
>> index b629e10857..3ca687860d 100644
>> --- a/tests/unit/test-util-filemonitor.c
>> +++ b/tests/unit/test-util-filemonitor.c
>> @@ -398,7 +398,7 @@ test_file_monitor_events(void)


>>       /*
>>        * This test does not work on Travis LXD containers since some
>>        * syscalls are blocked in that environment.
> 
> Right here is logic that checks the TRAVIS_ARCH env variable.
> 
> IMHO this should just be moved out into the main() method, so
> we don't even start test when under Travis. Just make the whole
> program exits with a skip status on travis.

Clever eh :)