Thomas Huth <th...@redhat.com> writes:

> On 15.06.2018 21:46, Alex Bennée wrote:
>> The fixed path and ports get in the way of running our tests and
>> builds in parallel. Instead of using TESTPATH we use mkdtemp() and
>> instead of a fixed port we allow the kernel to assign one and query it
>> afterwards.
>>
>> Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
>> ---
>>  tests/tcg/multiarch/linux-test.c | 37 ++++++++++++++++----------------
>>  1 file changed, 19 insertions(+), 18 deletions(-)
>>
>> diff --git a/tests/tcg/multiarch/linux-test.c 
>> b/tests/tcg/multiarch/linux-test.c
>> index 6f2c531474..3f73b96420 100644
>> --- a/tests/tcg/multiarch/linux-test.c
>> +++ b/tests/tcg/multiarch/linux-test.c
>> @@ -41,8 +41,6 @@
>>  #include <setjmp.h>
>>  #include <sys/shm.h>
>>
>> -#define TESTPATH "/tmp/linux-test.tmp"
>> -#define TESTPORT 7654
>>  #define STACK_SIZE 16384
>>
>>  static void error1(const char *filename, int line, const char *fmt, ...)
>> @@ -85,19 +83,15 @@ static void test_file(void)
>>      struct iovec vecs[2];
>>      DIR *dir;
>>      struct dirent *de;
>> +    char template[] = "/tmp/linux-test-XXXXXX";
>> +    char *tmpdir = mkdtemp(template);
>>
>> -    /* clean up, just in case */
>> -    unlink(TESTPATH "/file1");
>> -    unlink(TESTPATH "/file2");
>> -    unlink(TESTPATH "/file3");
>> -    rmdir(TESTPATH);
>> +    chk_error(strlen(tmpdir));
>
> That line looks wrong to me. According to my man-page of mkdtemp(), it
> returns either NULL or a pointer to the modified string.
> In case of NULL, strlen(tmpdir) will simply crash. And even if it would
> not crash, strlen() only returns values >= 0, so there is no way the
> chk_error could ever report an error here.

As we only really want to check we did actually do a mkdtemp would:

  chk_error(tmpdir)

Be enough?

>
>  Thomas


--
Alex Bennée

Reply via email to