[PATCH] tests/Makefile.include: export PYTHON for check-block.sh

Vladimir Sementsov-Ogievskiy posted 1 patch 3 years, 3 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210129051346.56109-1-vsementsov@virtuozzo.com
tests/Makefile.include | 1 +
1 file changed, 1 insertion(+)
[PATCH] tests/Makefile.include: export PYTHON for check-block.sh
Posted by Vladimir Sementsov-Ogievskiy 3 years, 3 months ago
check-block.sh called by make check-block rely on PYTHON variable being
set.

Fixes: f203080bbd9f9e5b31041b1f2afcd6040c5aaec5
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---

Hi! As Peter reported, build fails on platforms where python3 is not
/usr/bin/python3.. This patch should help. At least it works for me if
I move /usr/bin/python3 to another location and configure it with
--python=. And doesn't work without the patch.
Don't know how the thing seemed to work for me before :\

 tests/Makefile.include | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/Makefile.include b/tests/Makefile.include
index 3a0524ce74..ceaf3f0d6e 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -138,6 +138,7 @@ check:
 ifeq ($(CONFIG_TOOLS)$(CONFIG_POSIX),yy)
 QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
 check: check-block
+export PYTHON
 check-block: $(SRC_PATH)/tests/check-block.sh qemu-img$(EXESUF) \
 		qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) \
 		$(filter qemu-system-%, $(ninja-targets))
-- 
2.29.2


Re: [PATCH] tests/Makefile.include: export PYTHON for check-block.sh
Posted by Thomas Huth 3 years, 3 months ago
On 29/01/2021 06.13, Vladimir Sementsov-Ogievskiy wrote:
> check-block.sh called by make check-block rely on PYTHON variable being
> set.
> 
> Fixes: f203080bbd9f9e5b31041b1f2afcd6040c5aaec5
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> 
> Hi! As Peter reported, build fails on platforms where python3 is not
> /usr/bin/python3.. This patch should help. At least it works for me if
> I move /usr/bin/python3 to another location and configure it with
> --python=. And doesn't work without the patch.
> Don't know how the thing seemed to work for me before :\
> 
>   tests/Makefile.include | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 3a0524ce74..ceaf3f0d6e 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -138,6 +138,7 @@ check:
>   ifeq ($(CONFIG_TOOLS)$(CONFIG_POSIX),yy)
>   QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
>   check: check-block
> +export PYTHON
>   check-block: $(SRC_PATH)/tests/check-block.sh qemu-img$(EXESUF) \
>   		qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) \
>   		$(filter qemu-system-%, $(ninja-targets))
> 

Tested-by: Thomas Huth <thuth@redhat.com>


Re: [PATCH] tests/Makefile.include: export PYTHON for check-block.sh
Posted by Kevin Wolf 3 years, 3 months ago
Am 29.01.2021 um 06:13 hat Vladimir Sementsov-Ogievskiy geschrieben:
> check-block.sh called by make check-block rely on PYTHON variable being
> set.
> 
> Fixes: f203080bbd9f9e5b31041b1f2afcd6040c5aaec5
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

Thanks, applied to the block branch.

Kevin


Re: [PATCH] tests/Makefile.include: export PYTHON for check-block.sh
Posted by Thomas Huth 3 years, 3 months ago
On 29/01/2021 06.13, Vladimir Sementsov-Ogievskiy wrote:
> check-block.sh called by make check-block rely on PYTHON variable being
> set.
> 
> Fixes: f203080bbd9f9e5b31041b1f2afcd6040c5aaec5
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> 
> Hi! As Peter reported, build fails on platforms where python3 is not
> /usr/bin/python3.. This patch should help. At least it works for me if
> I move /usr/bin/python3 to another location and configure it with
> --python=. And doesn't work without the patch.
> Don't know how the thing seemed to work for me before :\
> 
>   tests/Makefile.include | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 3a0524ce74..ceaf3f0d6e 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -138,6 +138,7 @@ check:
>   ifeq ($(CONFIG_TOOLS)$(CONFIG_POSIX),yy)
>   QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
>   check: check-block
> +export PYTHON
>   check-block: $(SRC_PATH)/tests/check-block.sh qemu-img$(EXESUF) \
>   		qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) \
>   		$(filter qemu-system-%, $(ninja-targets))
> 

That makes the iotests starting again when running the NetBSD tests ("make 
vm-build-netbsd"), but then some of the iotests are failing now, e.g.:

--- /home/qemu/qemu-test.N2qe9i/src/tests/qemu-iotests/040.out
+++ 040.out.bad
@@ -1,5 +1 @@
-.................................................................
-----------------------------------------------------------------------
-Ran 65 tests
-
-OK
+env: python3: No such file or directory

... so looks like this was not the complete fix yet?

  Thomas


Re: [PATCH] tests/Makefile.include: export PYTHON for check-block.sh
Posted by Vladimir Sementsov-Ogievskiy 3 years, 3 months ago
29.01.2021 11:25, Thomas Huth wrote:
> On 29/01/2021 06.13, Vladimir Sementsov-Ogievskiy wrote:
>> check-block.sh called by make check-block rely on PYTHON variable being
>> set.
>>
>> Fixes: f203080bbd9f9e5b31041b1f2afcd6040c5aaec5
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>> ---
>>
>> Hi! As Peter reported, build fails on platforms where python3 is not
>> /usr/bin/python3.. This patch should help. At least it works for me if
>> I move /usr/bin/python3 to another location and configure it with
>> --python=. And doesn't work without the patch.
>> Don't know how the thing seemed to work for me before :\
>>
>>   tests/Makefile.include | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/tests/Makefile.include b/tests/Makefile.include
>> index 3a0524ce74..ceaf3f0d6e 100644
>> --- a/tests/Makefile.include
>> +++ b/tests/Makefile.include
>> @@ -138,6 +138,7 @@ check:
>>   ifeq ($(CONFIG_TOOLS)$(CONFIG_POSIX),yy)
>>   QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
>>   check: check-block
>> +export PYTHON
>>   check-block: $(SRC_PATH)/tests/check-block.sh qemu-img$(EXESUF) \
>>           qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) \
>>           $(filter qemu-system-%, $(ninja-targets))
>>
> 
> That makes the iotests starting again when running the NetBSD tests ("make vm-build-netbsd"), but then some of the iotests are failing now, e.g.:
> 
> --- /home/qemu/qemu-test.N2qe9i/src/tests/qemu-iotests/040.out
> +++ 040.out.bad
> @@ -1,5 +1 @@
> -.................................................................
> -----------------------------------------------------------------------
> -Ran 65 tests
> -
> -OK
> +env: python3: No such file or directory
> 
> ... so looks like this was not the complete fix yet?
> 
>   Thomas
> 

Right, thanks.

Aha, we also need:

diff --git a/tests/qemu-iotests/testrunner.py b/tests/qemu-iotests/testrunner.py
index a581be6a29..24b3fba115 100644
--- a/tests/qemu-iotests/testrunner.py
+++ b/tests/qemu-iotests/testrunner.py
@@ -248,7 +248,7 @@ class TestRunner(ContextManager['TestRunner']):
  
          with f_test.open(encoding="utf-8") as f:
              try:
-                if f.readline() == '#!/usr/bin/env python3':
+                if f.readline().rstrip() == '#!/usr/bin/env python3':
                      args.insert(0, self.env.python)
              except UnicodeDecodeError:  # binary test? for future.
                  pass


will send as a separate patch.


-- 
Best regards,
Vladimir