On 15 August 2016 at 19:24, Sascha Silbe <si...@linux.vnet.ibm.com> wrote:
> Peter Maydell <peter.mayd...@linaro.org> writes:
>> On 15 July 2016 at 17:24, Sascha Silbe <si...@linux.vnet.ibm.com> wrote:
> [...]

>>> +static void rmtree(gchar const *root)
> [...]
>> I don't really like spawning rm here for this. We know we
>> don't have any subdirectories here so we can just
>>    gdir = g_dir_open(root, 0, NULL);
>>    for (;;) {
>>        const char *f = g_dir_read_name(gdir);
>>        if (!f) {
>>            break;
>>        }
>>        g_remove(f);
>>    }
>>    g_dir_close(gdir);
>>    g_rmdir(root);
>>
>> (add error handling to taste).
>
> I don't really like the rm spawning solution either. But the above plus
> error handling was a bit much for a single test for my taste.
>
> Is there some place I could stick something like the above so it could
> at least be reused by other tests in the future? (Even though I very
> much hate the idea of implementing yet another rmtree()).

tests/libqtest.c is probably as good a place as any.

> [...]
>>>  int main(int argc, char **argv)
>>>  {
>>> +    gchar *tmp_path = g_dir_make_tmp("qemu-test-logging.XXXXXX", NULL);
>>
>> Unfortunately g_dir_make_tmp() only came in in glib 2.30, and we have
>> to be able to build with glib 2.22.
>
> Bummer. The old interfaces were really awkward. Is there somewhere I
> could put a compatibility wrapper, implementing g_dir_make_tmp() using
> the old interfaces?

include/glib-compat.h is where we provide compatible reimplementations
of glib function for older setups.

thanks
-- PMM

Reply via email to