Re: [Qemu-devel] [PATCH v1 09/24] tests/tcg: move architecture independent tests into subdir

2018-04-16 Thread Alex Bennée

Philippe Mathieu-Daudé  writes:

> Hi Alex,
>
> On 04/10/2018 04:39 PM, Alex Bennée wrote:
>> We will want to build these for all supported guest architectures so
>> lets move them all into one place. We also drop test_path at this
>> point because it needs qemu utils and glib bits which is hard to
>> support for cross compiling.
>
> Can we keep it for the $target==$host case (or when NOT cross
> compiling)? Maybe move it to tests/tcg/host/test_path.c

I'd rather not have tests/tcg/ including anything from QEMU as that
implies more libraries and hence a trickier cross-compile environment.
That said I didn't actually dig into what exactly
init_paths("/tmp/qemu-test_path") was intended to achieve.

>
>> 
>> Signed-off-by: Alex Bennée 
>> ---
>>  tests/tcg/README   |  10 +--
>>  tests/tcg/multiarch/README |   1 +
>>  tests/tcg/{ => multiarch}/linux-test.c |   0
>>  tests/tcg/{ => multiarch}/sha1.c   |   0
>>  tests/tcg/{ => multiarch}/test-mmap.c  |   0
>>  tests/tcg/{ => multiarch}/testthread.c |   0
>>  tests/tcg/test_path.c  | 157 
>> -
>>  7 files changed, 5 insertions(+), 163 deletions(-)
>>  create mode 100644 tests/tcg/multiarch/README
>>  rename tests/tcg/{ => multiarch}/linux-test.c (100%)
>>  rename tests/tcg/{ => multiarch}/sha1.c (100%)
>>  rename tests/tcg/{ => multiarch}/test-mmap.c (100%)
>>  rename tests/tcg/{ => multiarch}/testthread.c (100%)
>>  delete mode 100644 tests/tcg/test_path.c
>> 
>> diff --git a/tests/tcg/README b/tests/tcg/README
>> index 5dcfb4852b..0890044cf0 100644
>> --- a/tests/tcg/README
>> +++ b/tests/tcg/README
>> @@ -1,9 +1,7 @@
>> -This directory contains various interesting programs for
>> -regression testing.
>> -
>> -The target "make test" runs the programs and, if applicable,
>> -runs "diff" to detect mismatches between output on the host and
>> -output on QEMU.
>> +This directory contains various interesting guest programs for
>> +regression testing. Tests are either multi-arch, meaning they can be
>> +built for all guest architectures that support linux-user executable,
>> +or they are architecture specific.
>>  
>>  i386
>>  
>> diff --git a/tests/tcg/multiarch/README b/tests/tcg/multiarch/README
>> new file mode 100644
>> index 00..522c9d2ea3
>> --- /dev/null
>> +++ b/tests/tcg/multiarch/README
>> @@ -0,0 +1 @@
>> +Multi-architecture linux-user tests
>> diff --git a/tests/tcg/linux-test.c b/tests/tcg/multiarch/linux-test.c
>> similarity index 100%
>> rename from tests/tcg/linux-test.c
>> rename to tests/tcg/multiarch/linux-test.c
>> diff --git a/tests/tcg/sha1.c b/tests/tcg/multiarch/sha1.c
>> similarity index 100%
>> rename from tests/tcg/sha1.c
>> rename to tests/tcg/multiarch/sha1.c
>> diff --git a/tests/tcg/test-mmap.c b/tests/tcg/multiarch/test-mmap.c
>> similarity index 100%
>> rename from tests/tcg/test-mmap.c
>> rename to tests/tcg/multiarch/test-mmap.c
>> diff --git a/tests/tcg/testthread.c b/tests/tcg/multiarch/testthread.c
>> similarity index 100%
>> rename from tests/tcg/testthread.c
>> rename to tests/tcg/multiarch/testthread.c
>> diff --git a/tests/tcg/test_path.c b/tests/tcg/test_path.c
>> deleted file mode 100644
>> index 1c29bce263..00
>> --- a/tests/tcg/test_path.c
>> +++ /dev/null
>> @@ -1,157 +0,0 @@
>> -/* Test path override code */
>> -#include "config-host.h"
>> -#include "util/cutils.c"
>> -#include "util/hexdump.c"
>> -#include "util/iov.c"
>> -#include "util/path.c"
>> -#include "util/qemu-timer-common.c"
>> -#include 
>> -#include 
>> -#include 
>> -
>> -void qemu_log(const char *fmt, ...);
>> -
>> -/* Any log message kills the test. */
>> -void qemu_log(const char *fmt, ...)
>> -{
>> -va_list ap;
>> -
>> -fprintf(stderr, "FATAL: ");
>> -va_start(ap, fmt);
>> -vfprintf(stderr, fmt, ap);
>> -va_end(ap);
>> -exit(1);
>> -}
>> -
>> -#define NO_CHANGE(_path)\
>> -do {\
>> -if (strcmp(path(_path), _path) != 0) return __LINE__;   \
>> -} while(0)
>> -
>> -#define CHANGE_TO(_path, _newpath)  \
>> -do {\
>> -if (strcmp(path(_path), _newpath) != 0) return __LINE__;\
>> -} while(0)
>> -
>> -static void cleanup(void)
>> -{
>> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE");
>> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE2");
>> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE3");
>> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE4");
>> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE5");
>> -rmdir("/tmp/qemu-test_path/DIR1/DIR2");
>> -rmdir("/tmp/qemu-test_path/DIR1/DIR3");
>> -rmdir("/tmp/qemu-test_path/DIR1");
>> -rmdir("/tmp/qemu-test_path");
>> -}
>> -
>> -static unsigned int do_test(void)
>> -{
>> -if (mkdir("/tmp/qemu-test_path", 0700) != 0)
>> -return __L

Re: [Qemu-devel] [PATCH v1 09/24] tests/tcg: move architecture independent tests into subdir

2018-04-15 Thread Philippe Mathieu-Daudé
Hi Alex,

On 04/10/2018 04:39 PM, Alex Bennée wrote:
> We will want to build these for all supported guest architectures so
> lets move them all into one place. We also drop test_path at this
> point because it needs qemu utils and glib bits which is hard to
> support for cross compiling.

Can we keep it for the $target==$host case (or when NOT cross
compiling)? Maybe move it to tests/tcg/host/test_path.c

> 
> Signed-off-by: Alex Bennée 
> ---
>  tests/tcg/README   |  10 +--
>  tests/tcg/multiarch/README |   1 +
>  tests/tcg/{ => multiarch}/linux-test.c |   0
>  tests/tcg/{ => multiarch}/sha1.c   |   0
>  tests/tcg/{ => multiarch}/test-mmap.c  |   0
>  tests/tcg/{ => multiarch}/testthread.c |   0
>  tests/tcg/test_path.c  | 157 
> -
>  7 files changed, 5 insertions(+), 163 deletions(-)
>  create mode 100644 tests/tcg/multiarch/README
>  rename tests/tcg/{ => multiarch}/linux-test.c (100%)
>  rename tests/tcg/{ => multiarch}/sha1.c (100%)
>  rename tests/tcg/{ => multiarch}/test-mmap.c (100%)
>  rename tests/tcg/{ => multiarch}/testthread.c (100%)
>  delete mode 100644 tests/tcg/test_path.c
> 
> diff --git a/tests/tcg/README b/tests/tcg/README
> index 5dcfb4852b..0890044cf0 100644
> --- a/tests/tcg/README
> +++ b/tests/tcg/README
> @@ -1,9 +1,7 @@
> -This directory contains various interesting programs for
> -regression testing.
> -
> -The target "make test" runs the programs and, if applicable,
> -runs "diff" to detect mismatches between output on the host and
> -output on QEMU.
> +This directory contains various interesting guest programs for
> +regression testing. Tests are either multi-arch, meaning they can be
> +built for all guest architectures that support linux-user executable,
> +or they are architecture specific.
>  
>  i386
>  
> diff --git a/tests/tcg/multiarch/README b/tests/tcg/multiarch/README
> new file mode 100644
> index 00..522c9d2ea3
> --- /dev/null
> +++ b/tests/tcg/multiarch/README
> @@ -0,0 +1 @@
> +Multi-architecture linux-user tests
> diff --git a/tests/tcg/linux-test.c b/tests/tcg/multiarch/linux-test.c
> similarity index 100%
> rename from tests/tcg/linux-test.c
> rename to tests/tcg/multiarch/linux-test.c
> diff --git a/tests/tcg/sha1.c b/tests/tcg/multiarch/sha1.c
> similarity index 100%
> rename from tests/tcg/sha1.c
> rename to tests/tcg/multiarch/sha1.c
> diff --git a/tests/tcg/test-mmap.c b/tests/tcg/multiarch/test-mmap.c
> similarity index 100%
> rename from tests/tcg/test-mmap.c
> rename to tests/tcg/multiarch/test-mmap.c
> diff --git a/tests/tcg/testthread.c b/tests/tcg/multiarch/testthread.c
> similarity index 100%
> rename from tests/tcg/testthread.c
> rename to tests/tcg/multiarch/testthread.c
> diff --git a/tests/tcg/test_path.c b/tests/tcg/test_path.c
> deleted file mode 100644
> index 1c29bce263..00
> --- a/tests/tcg/test_path.c
> +++ /dev/null
> @@ -1,157 +0,0 @@
> -/* Test path override code */
> -#include "config-host.h"
> -#include "util/cutils.c"
> -#include "util/hexdump.c"
> -#include "util/iov.c"
> -#include "util/path.c"
> -#include "util/qemu-timer-common.c"
> -#include 
> -#include 
> -#include 
> -
> -void qemu_log(const char *fmt, ...);
> -
> -/* Any log message kills the test. */
> -void qemu_log(const char *fmt, ...)
> -{
> -va_list ap;
> -
> -fprintf(stderr, "FATAL: ");
> -va_start(ap, fmt);
> -vfprintf(stderr, fmt, ap);
> -va_end(ap);
> -exit(1);
> -}
> -
> -#define NO_CHANGE(_path) \
> - do {\
> - if (strcmp(path(_path), _path) != 0) return __LINE__;   \
> - } while(0)
> -
> -#define CHANGE_TO(_path, _newpath)   \
> - do {\
> - if (strcmp(path(_path), _newpath) != 0) return __LINE__;\
> - } while(0)
> -
> -static void cleanup(void)
> -{
> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE");
> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE2");
> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE3");
> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE4");
> -unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE5");
> -rmdir("/tmp/qemu-test_path/DIR1/DIR2");
> -rmdir("/tmp/qemu-test_path/DIR1/DIR3");
> -rmdir("/tmp/qemu-test_path/DIR1");
> -rmdir("/tmp/qemu-test_path");
> -}
> -
> -static unsigned int do_test(void)
> -{
> -if (mkdir("/tmp/qemu-test_path", 0700) != 0)
> - return __LINE__;
> -
> -if (mkdir("/tmp/qemu-test_path/DIR1", 0700) != 0)
> - return __LINE__;
> -
> -if (mkdir("/tmp/qemu-test_path/DIR1/DIR2", 0700) != 0)
> - return __LINE__;
> -
> -if (mkdir("/tmp/qemu-test_path/DIR1/DIR3", 0700) != 0)
> - return __LINE__;
> -
> -if (close(creat("/tmp/qemu-test_path/DIR1/DIR2/FILE", 0600)) != 0)
> - return __LINE__;
> -
> -if (close(creat("/t

Re: [Qemu-devel] [PATCH v1 09/24] tests/tcg: move architecture independent tests into subdir

2018-04-11 Thread Thomas Huth
On 10.04.2018 21:39, Alex Bennée wrote:
> We will want to build these for all supported guest architectures so
> lets move them all into one place. We also drop test_path at this
> point because it needs qemu utils and glib bits which is hard to
> support for cross compiling.
> 
> Signed-off-by: Alex Bennée 
> ---
>  tests/tcg/README   |  10 +--
>  tests/tcg/multiarch/README |   1 +
>  tests/tcg/{ => multiarch}/linux-test.c |   0
>  tests/tcg/{ => multiarch}/sha1.c   |   0
>  tests/tcg/{ => multiarch}/test-mmap.c  |   0
>  tests/tcg/{ => multiarch}/testthread.c |   0
>  tests/tcg/test_path.c  | 157 
> -
>  7 files changed, 5 insertions(+), 163 deletions(-)
>  create mode 100644 tests/tcg/multiarch/README
>  rename tests/tcg/{ => multiarch}/linux-test.c (100%)
>  rename tests/tcg/{ => multiarch}/sha1.c (100%)
>  rename tests/tcg/{ => multiarch}/test-mmap.c (100%)
>  rename tests/tcg/{ => multiarch}/testthread.c (100%)
>  delete mode 100644 tests/tcg/test_path.c

Reviewed-by: Thomas Huth