qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH  v1 00/10] testing/next updates (tweaks and re-greening)
@ 2020-03-02 18:18 Alex Bennée
  2020-03-02 18:18 ` [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently Alex Bennée
                   ` (9 more replies)
  0 siblings, 10 replies; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:18 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée

Hi,

I was reviewing Roberts vm-build.aarch64 patches when I ran into some
problems with testing. Then I noticed the CI had turned red again so I
went to fix those problems and here we are.

The following patches are mine and need review:

 - travis.yml: install python3 numpy and opencv libraries
 - tests/acceptance: move @skipUnless decoration to test itself
 - configure: detect and report genisoimage
 - configure: fix check for libzstd

Alex Bennée (4):
  configure: fix check for libzstd
  configure: detect and report genisoimage
  tests/acceptance: move @skipUnless decoration to test itself
  travis.yml: install python3 numpy and opencv libraries

Laurent Vivier (1):
  travis: enable tools build on OS X

Robert Foley (5):
  tests/vm: use $(PYTHON) consistently
  tests/vm: Debug mode shows ssh output.
  tests/vm: increased max timeout for vm boot.
  tests/vm: give wait_ssh() option to wait for root
  tests/vm: Added gen_cloud_init_iso() to basevm.py

 configure                              | 15 ++++++-
 .travis.yml                            |  3 ++
 tests/acceptance/machine_mips_malta.py |  4 +-
 tests/vm/Makefile.include              | 16 +++++--
 tests/vm/basevm.py                     | 61 ++++++++++++++++++++++++--
 tests/vm/centos                        | 33 +-------------
 tests/vm/ubuntu.i386                   | 37 +---------------
 7 files changed, 91 insertions(+), 78 deletions(-)

-- 
2.20.1



^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH  v1 01/10] tests/vm: use $(PYTHON) consistently
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
@ 2020-03-02 18:18 ` Alex Bennée
  2020-03-02 18:29   ` Philippe Mathieu-Daudé
  2020-03-02 18:18 ` [PATCH v1 02/10] tests/vm: Debug mode shows ssh output Alex Bennée
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:18 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Puhov, Alex Bennée, Robert Foley,
	Philippe Mathieu-Daudé

From: Robert Foley <robert.foley@linaro.org>

Change Makefile.include to use $(PYTHON) so for vm-boot-ssh to be
consistent with other cases like vm-build.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200219163537.22098-2-robert.foley@linaro.org>
---
 tests/vm/Makefile.include | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index 9e7c46a4735..778e5067554 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -80,7 +80,7 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
 
 vm-boot-ssh-%: $(IMAGES_DIR)/%.img
 	$(call quiet-command, \
-		$(SRC_PATH)/tests/vm/$* \
+		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
 		$(if $(J),--jobs $(J)) \
 		--image "$<" \
 		--interactive \
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 02/10] tests/vm: Debug mode shows ssh output.
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
  2020-03-02 18:18 ` [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently Alex Bennée
@ 2020-03-02 18:18 ` Alex Bennée
  2020-03-02 18:30   ` Philippe Mathieu-Daudé
  2020-03-02 18:19 ` [PATCH v1 03/10] tests/vm: increased max timeout for vm boot Alex Bennée
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:18 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Puhov, Alex Bennée, Robert Foley,
	Philippe Mathieu-Daudé

From: Robert Foley <robert.foley@linaro.org>

Add changes to tests/vm/basevm.py so that during debug mode we show ssh output.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200219163537.22098-3-robert.foley@linaro.org>
---
 tests/vm/basevm.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 4dee6647e6e..c99725b8c0d 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -120,11 +120,16 @@ class BaseVM(object):
         return fname
 
     def _ssh_do(self, user, cmd, check):
-        ssh_cmd = ["ssh", "-q", "-t",
+        ssh_cmd = ["ssh",
+                   "-t",
                    "-o", "StrictHostKeyChecking=no",
                    "-o", "UserKnownHostsFile=" + os.devnull,
                    "-o", "ConnectTimeout=1",
                    "-p", self.ssh_port, "-i", self._ssh_key_file]
+        # If not in debug mode, set ssh to quiet mode to
+        # avoid printing the results of commands.
+        if not self.debug:
+            ssh_cmd.append("-q")
         for var in self.envvars:
             ssh_cmd += ['-o', "SendEnv=%s" % var ]
         assert not isinstance(cmd, str)
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 03/10] tests/vm: increased max timeout for vm boot.
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
  2020-03-02 18:18 ` [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently Alex Bennée
  2020-03-02 18:18 ` [PATCH v1 02/10] tests/vm: Debug mode shows ssh output Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 18:32   ` Philippe Mathieu-Daudé
  2020-03-02 18:19 ` [PATCH v1 04/10] tests/vm: give wait_ssh() option to wait for root Alex Bennée
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Puhov, Alex Bennée, Robert Foley,
	Philippe Mathieu-Daudé

From: Robert Foley <robert.foley@linaro.org>

Add change to increase timeout waiting for VM to boot.
Needed for some emulation cases where it can take longer
than 5 minutes to boot.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200219163537.22098-4-robert.foley@linaro.org>
---
 tests/vm/basevm.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index c99725b8c0d..5ca445e29af 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -57,6 +57,10 @@ class BaseVM(object):
     poweroff = "poweroff"
     # enable IPv6 networking
     ipv6 = True
+    # Scale up some timeouts under TCG.
+    # 4 is arbitrary, but greater than 2,
+    # since we found we need to wait more than twice as long.
+    tcg_ssh_timeout_multiplier = 4
     def __init__(self, debug=False, vcpus=None):
         self._guest = None
         self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
@@ -309,6 +313,9 @@ class BaseVM(object):
         sys.stderr.write("### %s ...\n" % text)
 
     def wait_ssh(self, seconds=300):
+        # Allow more time for VM to boot under TCG.
+        if not kvm_available(self.arch):
+            seconds *= self.tcg_ssh_timeout_multiplier
         starttime = datetime.datetime.now()
         endtime = starttime + datetime.timedelta(seconds=seconds)
         guest_up = False
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 04/10] tests/vm: give wait_ssh() option to wait for root
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (2 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 03/10] tests/vm: increased max timeout for vm boot Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 18:19 ` [PATCH v1 05/10] tests/vm: Added gen_cloud_init_iso() to basevm.py Alex Bennée
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Puhov, Alex Bennée, Robert Foley,
	Philippe Mathieu-Daudé

From: Robert Foley <robert.foley@linaro.org>

Allow wait_ssh to wait for root user to be ready.
This solves the issue where we perform a wait_ssh()
successfully, but the root user is not yet ready
to be logged in.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200219163537.22098-5-robert.foley@linaro.org>
---
 tests/vm/basevm.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 5ca445e29af..7f268922685 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -312,7 +312,7 @@ class BaseVM(object):
     def print_step(self, text):
         sys.stderr.write("### %s ...\n" % text)
 
-    def wait_ssh(self, seconds=300):
+    def wait_ssh(self, wait_root=False, seconds=300):
         # Allow more time for VM to boot under TCG.
         if not kvm_available(self.arch):
             seconds *= self.tcg_ssh_timeout_multiplier
@@ -320,7 +320,10 @@ class BaseVM(object):
         endtime = starttime + datetime.timedelta(seconds=seconds)
         guest_up = False
         while datetime.datetime.now() < endtime:
-            if self.ssh("exit 0") == 0:
+            if wait_root and self.ssh_root("exit 0") == 0:
+                guest_up = True
+                break
+            elif self.ssh("exit 0") == 0:
                 guest_up = True
                 break
             seconds = (endtime - datetime.datetime.now()).total_seconds()
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 05/10] tests/vm: Added gen_cloud_init_iso() to basevm.py
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (3 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 04/10] tests/vm: give wait_ssh() option to wait for root Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 18:32   ` Philippe Mathieu-Daudé
  2020-03-02 18:19 ` [PATCH v1 06/10] travis: enable tools build on OS X Alex Bennée
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Puhov, Alex Bennée, Robert Foley,
	Philippe Mathieu-Daudé

From: Robert Foley <robert.foley@linaro.org>

This method was located in both centos and ubuntu.i386.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200219163537.22098-6-robert.foley@linaro.org>
---
 tests/vm/basevm.py   | 40 ++++++++++++++++++++++++++++++++++++++++
 tests/vm/centos      | 33 +--------------------------------
 tests/vm/ubuntu.i386 | 37 +------------------------------------
 3 files changed, 42 insertions(+), 68 deletions(-)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 7f268922685..8400b0e07f6 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -345,6 +345,46 @@ class BaseVM(object):
     def qmp(self, *args, **kwargs):
         return self._guest.qmp(*args, **kwargs)
 
+    def gen_cloud_init_iso(self):
+        cidir = self._tmpdir
+        mdata = open(os.path.join(cidir, "meta-data"), "w")
+        name = self.name.replace(".","-")
+        mdata.writelines(["instance-id: {}-vm-0\n".format(name),
+                          "local-hostname: {}-guest\n".format(name)])
+        mdata.close()
+        udata = open(os.path.join(cidir, "user-data"), "w")
+        print("guest user:pw {}:{}".format(self._config['guest_user'],
+                                           self._config['guest_pass']))
+        udata.writelines(["#cloud-config\n",
+                          "chpasswd:\n",
+                          "  list: |\n",
+                          "    root:%s\n" % self._config['root_pass'],
+                          "    %s:%s\n" % (self._config['guest_user'],
+                                           self._config['guest_pass']),
+                          "  expire: False\n",
+                          "users:\n",
+                          "  - name: %s\n" % self._config['guest_user'],
+                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
+                          "    ssh-authorized-keys:\n",
+                          "    - %s\n" % self._config['ssh_pub_key'],
+                          "  - name: root\n",
+                          "    ssh-authorized-keys:\n",
+                          "    - %s\n" % self._config['ssh_pub_key'],
+                          "locale: en_US.UTF-8\n"])
+        proxy = os.environ.get("http_proxy")
+        if not proxy is None:
+            udata.writelines(["apt:\n",
+                              "  proxy: %s" % proxy])
+        udata.close()
+        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
+                               "-volid", "cidata", "-joliet", "-rock",
+                               "user-data", "meta-data"],
+                               cwd=cidir,
+                               stdin=self._devnull, stdout=self._stdout,
+                               stderr=self._stdout)
+
+        return os.path.join(cidir, "cloud-init.iso")
+
 def parse_args(vmcls):
 
     def get_default_jobs():
diff --git a/tests/vm/centos b/tests/vm/centos
index a41ff109eb5..0ad4ecf4190 100755
--- a/tests/vm/centos
+++ b/tests/vm/centos
@@ -31,37 +31,6 @@ class CentosVM(basevm.BaseVM):
         make docker-test-mingw@fedora  {verbose} J={jobs} NETWORK=1;
     """
 
-    def _gen_cloud_init_iso(self):
-        cidir = self._tmpdir
-        mdata = open(os.path.join(cidir, "meta-data"), "w")
-        mdata.writelines(["instance-id: centos-vm-0\n",
-                          "local-hostname: centos-guest\n"])
-        mdata.close()
-        udata = open(os.path.join(cidir, "user-data"), "w")
-        udata.writelines(["#cloud-config\n",
-                          "chpasswd:\n",
-                          "  list: |\n",
-                          "    root:%s\n" % self.ROOT_PASS,
-                          "    %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
-                          "  expire: False\n",
-                          "users:\n",
-                          "  - name: %s\n" % self.GUEST_USER,
-                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
-                          "    ssh-authorized-keys:\n",
-                          "    - %s\n" % basevm.SSH_PUB_KEY,
-                          "  - name: root\n",
-                          "    ssh-authorized-keys:\n",
-                          "    - %s\n" % basevm.SSH_PUB_KEY,
-                          "locale: en_US.UTF-8\n"])
-        udata.close()
-        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
-                               "-volid", "cidata", "-joliet", "-rock",
-                               "user-data", "meta-data"],
-                               cwd=cidir,
-                               stdin=self._devnull, stdout=self._stdout,
-                               stderr=self._stdout)
-        return os.path.join(cidir, "cloud-init.iso")
-
     def build_image(self, img):
         cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz")
         img_tmp = img + ".tmp"
@@ -69,7 +38,7 @@ class CentosVM(basevm.BaseVM):
         subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"])
         subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"])
         self.exec_qemu_img("resize", img_tmp, "50G")
-        self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
+        self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
         self.wait_ssh()
         self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
         self.ssh_root_check("yum update -y")
diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386
index 48e9cb1ad3d..3266038fbde 100755
--- a/tests/vm/ubuntu.i386
+++ b/tests/vm/ubuntu.i386
@@ -29,41 +29,6 @@ class UbuntuX86VM(basevm.BaseVM):
         make --output-sync {target} -j{jobs} {verbose};
     """
 
-    def _gen_cloud_init_iso(self):
-        cidir = self._tmpdir
-        mdata = open(os.path.join(cidir, "meta-data"), "w")
-        mdata.writelines(["instance-id: ubuntu-vm-0\n",
-                          "local-hostname: ubuntu-guest\n"])
-        mdata.close()
-        udata = open(os.path.join(cidir, "user-data"), "w")
-        udata.writelines(["#cloud-config\n",
-                          "chpasswd:\n",
-                          "  list: |\n",
-                          "    root:%s\n" % self.ROOT_PASS,
-                          "    %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
-                          "  expire: False\n",
-                          "users:\n",
-                          "  - name: %s\n" % self.GUEST_USER,
-                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
-                          "    ssh-authorized-keys:\n",
-                          "    - %s\n" % basevm.SSH_PUB_KEY,
-                          "  - name: root\n",
-                          "    ssh-authorized-keys:\n",
-                          "    - %s\n" % basevm.SSH_PUB_KEY,
-                          "locale: en_US.UTF-8\n"])
-        proxy = os.environ.get("http_proxy")
-        if not proxy is None:
-            udata.writelines(["apt:\n",
-                              "  proxy: %s" % proxy])
-        udata.close()
-        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
-                               "-volid", "cidata", "-joliet", "-rock",
-                               "user-data", "meta-data"],
-                               cwd=cidir,
-                               stdin=self._devnull, stdout=self._stdout,
-                               stderr=self._stdout)
-        return os.path.join(cidir, "cloud-init.iso")
-
     def build_image(self, img):
         cimg = self._download_with_cache(
             "https://cloud-images.ubuntu.com/releases/bionic/release-20191114/ubuntu-18.04-server-cloudimg-i386.img",
@@ -71,7 +36,7 @@ class UbuntuX86VM(basevm.BaseVM):
         img_tmp = img + ".tmp"
         subprocess.check_call(["cp", "-f", cimg, img_tmp])
         self.exec_qemu_img("resize", img_tmp, "50G")
-        self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
+        self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
         self.wait_ssh()
         self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
         self.ssh_root_check("apt-get update")
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 06/10] travis: enable tools build on OS X
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (4 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 05/10] tests/vm: Added gen_cloud_init_iso() to basevm.py Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 18:46   ` Philippe Mathieu-Daudé
  2020-03-02 18:19 ` [PATCH v1 07/10] configure: fix check for libzstd Alex Bennée
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Fam Zheng, Alex Bennée,
	Philippe Mathieu-Daudé

From: Laurent Vivier <lvivier@redhat.com>

As we can build tools on OS X we should check we don't break build
when we submit new codes.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200302154630.45620-3-lvivier@redhat.com>
---
 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.travis.yml b/.travis.yml
index 9867272177d..70a24bf2fc8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -273,6 +273,7 @@ jobs:
 
     - name: "OSX Xcode 10.3"
       env:
+        - BASE_CONFIG="--disable-docs --enable-tools"
         - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
       os: osx
       osx_image: xcode10.3
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 07/10] configure: fix check for libzstd
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (5 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 06/10] travis: enable tools build on OS X Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 22:02   ` Alex Bennée
  2020-03-02 18:19 ` [PATCH v1 08/10] configure: detect and report genisoimage Alex Bennée
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée

Fixes: 3a67848134d0
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index 7b373bc0bb8..caa65f58831 100755
--- a/configure
+++ b/configure
@@ -2464,7 +2464,7 @@ fi
 # zstd check
 
 if test "$zstd" != "no" ; then
-    if $pkg_config --exist libzstd ; then
+    if $pkg_config --exists libzstd ; then
         zstd_cflags="$($pkg_config --cflags libzstd)"
         zstd_libs="$($pkg_config --libs libzstd)"
         LIBS="$zstd_libs $LIBS"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH  v1 08/10] configure: detect and report genisoimage
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (6 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 07/10] configure: fix check for libzstd Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 18:25   ` Philippe Mathieu-Daudé
  2020-03-02 18:19 ` [PATCH v1 09/10] tests/acceptance: move @skipUnless decoration to test itself Alex Bennée
  2020-03-02 18:19 ` [PATCH v1 10/10] travis.yml: install python3 numpy and opencv libraries Alex Bennée
  9 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Fam Zheng, Philippe Mathieu-Daudé, Alex Bennée

This is used for some of the vm-build tests so lets detect it and
behave sanely when it is not installed.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 configure                 | 13 +++++++++++++
 tests/vm/Makefile.include | 14 +++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index caa65f58831..376ccb25623 100755
--- a/configure
+++ b/configure
@@ -936,6 +936,17 @@ do
     fi
 done
 
+# Check for ancillary tools used in testing
+genisoimage=
+for binary in genisoimage
+do
+    if has $binary
+    then
+        genisoimage=$(command -v "$binary")
+        break
+    fi
+done
+
 : ${smbd=${SMBD-/usr/sbin/smbd}}
 
 # Default objcc to clang if available, otherwise use CC
@@ -6567,6 +6578,7 @@ echo "python            $python ($python_version)"
 if test "$docs" != "no"; then
     echo "sphinx-build      $sphinx_build"
 fi
+echo "genisoimage       $genisoimage"
 echo "slirp support     $slirp $(echo_version $slirp $slirp_version)"
 if test "$slirp" != "no" ; then
     echo "smbd              $smbd"
@@ -7616,6 +7628,7 @@ echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
 echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
 echo "PYTHON=$python" >> $config_host_mak
 echo "SPHINX_BUILD=$sphinx_build" >> $config_host_mak
+echo "GENISOIMAGE=$genisoimage" >> $config_host_mak
 echo "CC=$cc" >> $config_host_mak
 if $iasl -h > /dev/null 2>&1; then
   echo "IASL=$iasl" >> $config_host_mak
diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index 778e5067554..1bf9693d195 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -2,7 +2,11 @@
 
 .PHONY: vm-build-all vm-clean-all
 
-IMAGES := ubuntu.i386 freebsd netbsd openbsd centos fedora
+IMAGES := freebsd netbsd openbsd centos fedora
+ifneq ($(GENISOIMAGE),)
+IMAGES += ubuntu.i386 centos
+endif
+
 IMAGES_DIR := $(HOME)/.cache/qemu-vm/images
 IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
 
@@ -12,12 +16,16 @@ IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
 vm-help vm-test:
 	@echo "vm-help: Test QEMU in preconfigured virtual machines"
 	@echo
-	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
 	@echo "  vm-build-freebsd                - Build QEMU in FreeBSD VM"
 	@echo "  vm-build-netbsd                 - Build QEMU in NetBSD VM"
 	@echo "  vm-build-openbsd                - Build QEMU in OpenBSD VM"
-	@echo "  vm-build-centos                 - Build QEMU in CentOS VM, with Docker"
 	@echo "  vm-build-fedora                 - Build QEMU in Fedora VM"
+ifneq ($(GENISOIMAGE),)
+	@echo "  vm-build-centos                 - Build QEMU in CentOS VM, with Docker"
+	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
+else
+	@echo "  (install genisoimage to build centos/ubuntu images)"
+endif
 	@echo ""
 	@echo "  vm-build-all                    - Build QEMU in all VMs"
 	@echo "  vm-clean-all                    - Clean up VM images"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v1 09/10] tests/acceptance: move @skipUnless decoration to test itself
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (7 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 08/10] configure: detect and report genisoimage Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  2020-03-02 18:19 ` [PATCH v1 10/10] travis.yml: install python3 numpy and opencv libraries Alex Bennée
  9 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Alex Bennée, Aurelien Jarno,
	Aleksandar Markovic

It appears ignore the decoration if just applied to the class.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/acceptance/machine_mips_malta.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/acceptance/machine_mips_malta.py b/tests/acceptance/machine_mips_malta.py
index 92b4f28a112..b8fac2a44d5 100644
--- a/tests/acceptance/machine_mips_malta.py
+++ b/tests/acceptance/machine_mips_malta.py
@@ -30,14 +30,14 @@ except ImportError:
     CV2_AVAILABLE = False
 
 
-@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
-@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
 class MaltaMachineFramebuffer(Test):
 
     timeout = 30
 
     KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
 
+    @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
+    @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
     def do_test_i6400_framebuffer_logo(self, cpu_cores_count):
         """
         Boot Linux kernel and check Tux logo is displayed on the framebuffer.
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v1 10/10] travis.yml: install python3 numpy and opencv libraries
  2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
                   ` (8 preceding siblings ...)
  2020-03-02 18:19 ` [PATCH v1 09/10] tests/acceptance: move @skipUnless decoration to test itself Alex Bennée
@ 2020-03-02 18:19 ` Alex Bennée
  9 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:19 UTC (permalink / raw)
  To: qemu-devel; +Cc: Fam Zheng, Philippe Mathieu-Daudé, Alex Bennée

These are used for the acceptance framebuffer tests to count Tux.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 70a24bf2fc8..9db6c1557f1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -323,6 +323,8 @@ jobs:
           packages:
             - python3-pil
             - python3-pip
+            - python3-numpy
+            - python3-opencv
             - python3.5-venv
             - rpm2cpio
             - tesseract-ocr
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 08/10] configure: detect and report genisoimage
  2020-03-02 18:19 ` [PATCH v1 08/10] configure: detect and report genisoimage Alex Bennée
@ 2020-03-02 18:25   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:25 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Fam Zheng, Wainer dos Santos Moschetta

Cc'ing Wainer

On 3/2/20 7:19 PM, Alex Bennée wrote:
> This is used for some of the vm-build tests so lets detect it and
> behave sanely when it is not installed.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   configure                 | 13 +++++++++++++
>   tests/vm/Makefile.include | 14 +++++++++++---
>   2 files changed, 24 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index caa65f58831..376ccb25623 100755
> --- a/configure
> +++ b/configure
> @@ -936,6 +936,17 @@ do
>       fi
>   done
>   
> +# Check for ancillary tools used in testing
> +genisoimage=
> +for binary in genisoimage
> +do
> +    if has $binary
> +    then
> +        genisoimage=$(command -v "$binary")
> +        break
> +    fi
> +done
> +
>   : ${smbd=${SMBD-/usr/sbin/smbd}}
>   
>   # Default objcc to clang if available, otherwise use CC
> @@ -6567,6 +6578,7 @@ echo "python            $python ($python_version)"
>   if test "$docs" != "no"; then
>       echo "sphinx-build      $sphinx_build"
>   fi
> +echo "genisoimage       $genisoimage"
>   echo "slirp support     $slirp $(echo_version $slirp $slirp_version)"
>   if test "$slirp" != "no" ; then
>       echo "smbd              $smbd"
> @@ -7616,6 +7628,7 @@ echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
>   echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
>   echo "PYTHON=$python" >> $config_host_mak
>   echo "SPHINX_BUILD=$sphinx_build" >> $config_host_mak
> +echo "GENISOIMAGE=$genisoimage" >> $config_host_mak
>   echo "CC=$cc" >> $config_host_mak
>   if $iasl -h > /dev/null 2>&1; then
>     echo "IASL=$iasl" >> $config_host_mak
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index 778e5067554..1bf9693d195 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -2,7 +2,11 @@
>   
>   .PHONY: vm-build-all vm-clean-all
>   
> -IMAGES := ubuntu.i386 freebsd netbsd openbsd centos fedora
> +IMAGES := freebsd netbsd openbsd centos fedora
> +ifneq ($(GENISOIMAGE),)
> +IMAGES += ubuntu.i386 centos
> +endif
> +
>   IMAGES_DIR := $(HOME)/.cache/qemu-vm/images
>   IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
>   
> @@ -12,12 +16,16 @@ IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
>   vm-help vm-test:
>   	@echo "vm-help: Test QEMU in preconfigured virtual machines"
>   	@echo
> -	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
>   	@echo "  vm-build-freebsd                - Build QEMU in FreeBSD VM"
>   	@echo "  vm-build-netbsd                 - Build QEMU in NetBSD VM"
>   	@echo "  vm-build-openbsd                - Build QEMU in OpenBSD VM"
> -	@echo "  vm-build-centos                 - Build QEMU in CentOS VM, with Docker"
>   	@echo "  vm-build-fedora                 - Build QEMU in Fedora VM"
> +ifneq ($(GENISOIMAGE),)
> +	@echo "  vm-build-centos                 - Build QEMU in CentOS VM, with Docker"
> +	@echo "  vm-build-ubuntu.i386            - Build QEMU in ubuntu i386 VM"
> +else
> +	@echo "  (install genisoimage to build centos/ubuntu images)"
> +endif
>   	@echo ""
>   	@echo "  vm-build-all                    - Build QEMU in all VMs"
>   	@echo "  vm-clean-all                    - Clean up VM images"
> 



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently
  2020-03-02 18:18 ` [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently Alex Bennée
@ 2020-03-02 18:29   ` Philippe Mathieu-Daudé
  2020-03-02 18:41     ` Alex Bennée
  0 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:29 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Fam Zheng, Peter Puhov, Robert Foley

On 3/2/20 7:18 PM, Alex Bennée wrote:
> From: Robert Foley <robert.foley@linaro.org>
> 
> Change Makefile.include to use $(PYTHON) so for vm-boot-ssh to be
> consistent with other cases like vm-build.

So what you are trying to fix here is when you have two python3 
installed (one from the distribution and one manually built), and you 
want to use the manually built?

> 
> Signed-off-by: Robert Foley <robert.foley@linaro.org>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20200219163537.22098-2-robert.foley@linaro.org>
> ---
>   tests/vm/Makefile.include | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index 9e7c46a4735..778e5067554 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -80,7 +80,7 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
>   
>   vm-boot-ssh-%: $(IMAGES_DIR)/%.img
>   	$(call quiet-command, \
> -		$(SRC_PATH)/tests/vm/$* \
> +		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
>   		$(if $(J),--jobs $(J)) \
>   		--image "$<" \
>   		--interactive \
> 



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 02/10] tests/vm: Debug mode shows ssh output.
  2020-03-02 18:18 ` [PATCH v1 02/10] tests/vm: Debug mode shows ssh output Alex Bennée
@ 2020-03-02 18:30   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:30 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Fam Zheng, Peter Puhov, Robert Foley

On 3/2/20 7:18 PM, Alex Bennée wrote:
> From: Robert Foley <robert.foley@linaro.org>
> 
> Add changes to tests/vm/basevm.py so that during debug mode we show ssh output.
> 
> Signed-off-by: Robert Foley <robert.foley@linaro.org>
> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20200219163537.22098-3-robert.foley@linaro.org>
> ---
>   tests/vm/basevm.py | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 4dee6647e6e..c99725b8c0d 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -120,11 +120,16 @@ class BaseVM(object):
>           return fname
>   
>       def _ssh_do(self, user, cmd, check):
> -        ssh_cmd = ["ssh", "-q", "-t",
> +        ssh_cmd = ["ssh",
> +                   "-t",
>                      "-o", "StrictHostKeyChecking=no",
>                      "-o", "UserKnownHostsFile=" + os.devnull,
>                      "-o", "ConnectTimeout=1",
>                      "-p", self.ssh_port, "-i", self._ssh_key_file]
> +        # If not in debug mode, set ssh to quiet mode to
> +        # avoid printing the results of commands.
> +        if not self.debug:
> +            ssh_cmd.append("-q")
>           for var in self.envvars:
>               ssh_cmd += ['-o', "SendEnv=%s" % var ]
>           assert not isinstance(cmd, str)
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 03/10] tests/vm: increased max timeout for vm boot.
  2020-03-02 18:19 ` [PATCH v1 03/10] tests/vm: increased max timeout for vm boot Alex Bennée
@ 2020-03-02 18:32   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:32 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Fam Zheng, Peter Puhov, Robert Foley

On 3/2/20 7:19 PM, Alex Bennée wrote:
> From: Robert Foley <robert.foley@linaro.org>
> 
> Add change to increase timeout waiting for VM to boot.
> Needed for some emulation cases where it can take longer
> than 5 minutes to boot.
> 
> Signed-off-by: Robert Foley <robert.foley@linaro.org>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20200219163537.22098-4-robert.foley@linaro.org>
> ---
>   tests/vm/basevm.py | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index c99725b8c0d..5ca445e29af 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -57,6 +57,10 @@ class BaseVM(object):
>       poweroff = "poweroff"
>       # enable IPv6 networking
>       ipv6 = True
> +    # Scale up some timeouts under TCG.
> +    # 4 is arbitrary, but greater than 2,
> +    # since we found we need to wait more than twice as long.
> +    tcg_ssh_timeout_multiplier = 4
>       def __init__(self, debug=False, vcpus=None):
>           self._guest = None
>           self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
> @@ -309,6 +313,9 @@ class BaseVM(object):
>           sys.stderr.write("### %s ...\n" % text)
>   
>       def wait_ssh(self, seconds=300):
> +        # Allow more time for VM to boot under TCG.
> +        if not kvm_available(self.arch):
> +            seconds *= self.tcg_ssh_timeout_multiplier
>           starttime = datetime.datetime.now()
>           endtime = starttime + datetime.timedelta(seconds=seconds)
>           guest_up = False
> 

A clean way might be to use a QMP socket and poll for networking events, 
then start counting when the network is up.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 05/10] tests/vm: Added gen_cloud_init_iso() to basevm.py
  2020-03-02 18:19 ` [PATCH v1 05/10] tests/vm: Added gen_cloud_init_iso() to basevm.py Alex Bennée
@ 2020-03-02 18:32   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:32 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Fam Zheng, Peter Puhov, Robert Foley

On 3/2/20 7:19 PM, Alex Bennée wrote:
> From: Robert Foley <robert.foley@linaro.org>
> 
> This method was located in both centos and ubuntu.i386.
> 
> Signed-off-by: Robert Foley <robert.foley@linaro.org>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20200219163537.22098-6-robert.foley@linaro.org>
> ---
>   tests/vm/basevm.py   | 40 ++++++++++++++++++++++++++++++++++++++++
>   tests/vm/centos      | 33 +--------------------------------
>   tests/vm/ubuntu.i386 | 37 +------------------------------------
>   3 files changed, 42 insertions(+), 68 deletions(-)
> 
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 7f268922685..8400b0e07f6 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -345,6 +345,46 @@ class BaseVM(object):
>       def qmp(self, *args, **kwargs):
>           return self._guest.qmp(*args, **kwargs)
>   
> +    def gen_cloud_init_iso(self):
> +        cidir = self._tmpdir
> +        mdata = open(os.path.join(cidir, "meta-data"), "w")
> +        name = self.name.replace(".","-")
> +        mdata.writelines(["instance-id: {}-vm-0\n".format(name),
> +                          "local-hostname: {}-guest\n".format(name)])
> +        mdata.close()
> +        udata = open(os.path.join(cidir, "user-data"), "w")
> +        print("guest user:pw {}:{}".format(self._config['guest_user'],
> +                                           self._config['guest_pass']))
> +        udata.writelines(["#cloud-config\n",
> +                          "chpasswd:\n",
> +                          "  list: |\n",
> +                          "    root:%s\n" % self._config['root_pass'],
> +                          "    %s:%s\n" % (self._config['guest_user'],
> +                                           self._config['guest_pass']),
> +                          "  expire: False\n",
> +                          "users:\n",
> +                          "  - name: %s\n" % self._config['guest_user'],
> +                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
> +                          "    ssh-authorized-keys:\n",
> +                          "    - %s\n" % self._config['ssh_pub_key'],
> +                          "  - name: root\n",
> +                          "    ssh-authorized-keys:\n",
> +                          "    - %s\n" % self._config['ssh_pub_key'],
> +                          "locale: en_US.UTF-8\n"])
> +        proxy = os.environ.get("http_proxy")
> +        if not proxy is None:
> +            udata.writelines(["apt:\n",
> +                              "  proxy: %s" % proxy])
> +        udata.close()
> +        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
> +                               "-volid", "cidata", "-joliet", "-rock",
> +                               "user-data", "meta-data"],
> +                               cwd=cidir,
> +                               stdin=self._devnull, stdout=self._stdout,
> +                               stderr=self._stdout)
> +
> +        return os.path.join(cidir, "cloud-init.iso")
> +
>   def parse_args(vmcls):
>   
>       def get_default_jobs():
> diff --git a/tests/vm/centos b/tests/vm/centos
> index a41ff109eb5..0ad4ecf4190 100755
> --- a/tests/vm/centos
> +++ b/tests/vm/centos
> @@ -31,37 +31,6 @@ class CentosVM(basevm.BaseVM):
>           make docker-test-mingw@fedora  {verbose} J={jobs} NETWORK=1;
>       """
>   
> -    def _gen_cloud_init_iso(self):
> -        cidir = self._tmpdir
> -        mdata = open(os.path.join(cidir, "meta-data"), "w")
> -        mdata.writelines(["instance-id: centos-vm-0\n",
> -                          "local-hostname: centos-guest\n"])
> -        mdata.close()
> -        udata = open(os.path.join(cidir, "user-data"), "w")
> -        udata.writelines(["#cloud-config\n",
> -                          "chpasswd:\n",
> -                          "  list: |\n",
> -                          "    root:%s\n" % self.ROOT_PASS,
> -                          "    %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
> -                          "  expire: False\n",
> -                          "users:\n",
> -                          "  - name: %s\n" % self.GUEST_USER,
> -                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
> -                          "    ssh-authorized-keys:\n",
> -                          "    - %s\n" % basevm.SSH_PUB_KEY,
> -                          "  - name: root\n",
> -                          "    ssh-authorized-keys:\n",
> -                          "    - %s\n" % basevm.SSH_PUB_KEY,
> -                          "locale: en_US.UTF-8\n"])
> -        udata.close()
> -        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
> -                               "-volid", "cidata", "-joliet", "-rock",
> -                               "user-data", "meta-data"],
> -                               cwd=cidir,
> -                               stdin=self._devnull, stdout=self._stdout,
> -                               stderr=self._stdout)
> -        return os.path.join(cidir, "cloud-init.iso")
> -
>       def build_image(self, img):
>           cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz")
>           img_tmp = img + ".tmp"
> @@ -69,7 +38,7 @@ class CentosVM(basevm.BaseVM):
>           subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"])
>           subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"])
>           self.exec_qemu_img("resize", img_tmp, "50G")
> -        self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
> +        self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
>           self.wait_ssh()
>           self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
>           self.ssh_root_check("yum update -y")
> diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386
> index 48e9cb1ad3d..3266038fbde 100755
> --- a/tests/vm/ubuntu.i386
> +++ b/tests/vm/ubuntu.i386
> @@ -29,41 +29,6 @@ class UbuntuX86VM(basevm.BaseVM):
>           make --output-sync {target} -j{jobs} {verbose};
>       """
>   
> -    def _gen_cloud_init_iso(self):
> -        cidir = self._tmpdir
> -        mdata = open(os.path.join(cidir, "meta-data"), "w")
> -        mdata.writelines(["instance-id: ubuntu-vm-0\n",
> -                          "local-hostname: ubuntu-guest\n"])
> -        mdata.close()
> -        udata = open(os.path.join(cidir, "user-data"), "w")
> -        udata.writelines(["#cloud-config\n",
> -                          "chpasswd:\n",
> -                          "  list: |\n",
> -                          "    root:%s\n" % self.ROOT_PASS,
> -                          "    %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
> -                          "  expire: False\n",
> -                          "users:\n",
> -                          "  - name: %s\n" % self.GUEST_USER,
> -                          "    sudo: ALL=(ALL) NOPASSWD:ALL\n",
> -                          "    ssh-authorized-keys:\n",
> -                          "    - %s\n" % basevm.SSH_PUB_KEY,
> -                          "  - name: root\n",
> -                          "    ssh-authorized-keys:\n",
> -                          "    - %s\n" % basevm.SSH_PUB_KEY,
> -                          "locale: en_US.UTF-8\n"])
> -        proxy = os.environ.get("http_proxy")
> -        if not proxy is None:
> -            udata.writelines(["apt:\n",
> -                              "  proxy: %s" % proxy])
> -        udata.close()
> -        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
> -                               "-volid", "cidata", "-joliet", "-rock",
> -                               "user-data", "meta-data"],
> -                               cwd=cidir,
> -                               stdin=self._devnull, stdout=self._stdout,
> -                               stderr=self._stdout)
> -        return os.path.join(cidir, "cloud-init.iso")
> -
>       def build_image(self, img):
>           cimg = self._download_with_cache(
>               "https://cloud-images.ubuntu.com/releases/bionic/release-20191114/ubuntu-18.04-server-cloudimg-i386.img",
> @@ -71,7 +36,7 @@ class UbuntuX86VM(basevm.BaseVM):
>           img_tmp = img + ".tmp"
>           subprocess.check_call(["cp", "-f", cimg, img_tmp])
>           self.exec_qemu_img("resize", img_tmp, "50G")
> -        self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
> +        self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
>           self.wait_ssh()
>           self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
>           self.ssh_root_check("apt-get update")
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently
  2020-03-02 18:29   ` Philippe Mathieu-Daudé
@ 2020-03-02 18:41     ` Alex Bennée
  2020-03-02 18:50       ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 18:41 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Fam Zheng, Peter Puhov, qemu-devel, Robert Foley


Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> On 3/2/20 7:18 PM, Alex Bennée wrote:
>> From: Robert Foley <robert.foley@linaro.org>
>> Change Makefile.include to use $(PYTHON) so for vm-boot-ssh to be
>> consistent with other cases like vm-build.
>
> So what you are trying to fix here is when you have two python3
> installed (one from the distribution and one manually built), and you 
> want to use the manually built?

No - just consistency with the rest of the build system. 

>
>> Signed-off-by: Robert Foley <robert.foley@linaro.org>
>> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Message-Id: <20200219163537.22098-2-robert.foley@linaro.org>
>> ---
>>   tests/vm/Makefile.include | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
>> index 9e7c46a4735..778e5067554 100644
>> --- a/tests/vm/Makefile.include
>> +++ b/tests/vm/Makefile.include
>> @@ -80,7 +80,7 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
>>     vm-boot-ssh-%: $(IMAGES_DIR)/%.img
>>   	$(call quiet-command, \
>> -		$(SRC_PATH)/tests/vm/$* \
>> +		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
>>   		$(if $(J),--jobs $(J)) \
>>   		--image "$<" \
>>   		--interactive \
>> 


-- 
Alex Bennée


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 06/10] travis: enable tools build on OS X
  2020-03-02 18:19 ` [PATCH v1 06/10] travis: enable tools build on OS X Alex Bennée
@ 2020-03-02 18:46   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:46 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Laurent Vivier, Fam Zheng

On 3/2/20 7:19 PM, Alex Bennée wrote:
> From: Laurent Vivier <lvivier@redhat.com>
> 
> As we can build tools on OS X we should check we don't break build
> when we submit new codes.
> 
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20200302154630.45620-3-lvivier@redhat.com>
> ---
>   .travis.yml | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 9867272177d..70a24bf2fc8 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -273,6 +273,7 @@ jobs:
>   
>       - name: "OSX Xcode 10.3"
>         env:
> +        - BASE_CONFIG="--disable-docs --enable-tools"
>           - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
>         os: osx
>         osx_image: xcode10.3
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently
  2020-03-02 18:41     ` Alex Bennée
@ 2020-03-02 18:50       ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-02 18:50 UTC (permalink / raw)
  To: Alex Bennée; +Cc: Fam Zheng, Peter Puhov, qemu-devel, Robert Foley

On 3/2/20 7:41 PM, Alex Bennée wrote:
> 
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> 
>> On 3/2/20 7:18 PM, Alex Bennée wrote:
>>> From: Robert Foley <robert.foley@linaro.org>
>>> Change Makefile.include to use $(PYTHON) so for vm-boot-ssh to be
>>> consistent with other cases like vm-build.
>>
>> So what you are trying to fix here is when you have two python3
>> installed (one from the distribution and one manually built), and you
>> want to use the manually built?
> 
> No - just consistency with the rest of the build system.

This patch was first posted on 2/5/20 but it shouldn't be necessary since:

commit c88ee46cdb9888fbe9ea45c174743d6f7544b737
Date:   Thu Jan 30 17:32:24 2020 +0100

     tests: Explicit usage of Python 3

     Use the program search path to find the Python 3 interpreter.

Anyway consistency is good:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> 
>>
>>> Signed-off-by: Robert Foley <robert.foley@linaro.org>
>>> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>>> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>> Message-Id: <20200219163537.22098-2-robert.foley@linaro.org>
>>> ---
>>>    tests/vm/Makefile.include | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
>>> index 9e7c46a4735..778e5067554 100644
>>> --- a/tests/vm/Makefile.include
>>> +++ b/tests/vm/Makefile.include
>>> @@ -80,7 +80,7 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
>>>      vm-boot-ssh-%: $(IMAGES_DIR)/%.img
>>>    	$(call quiet-command, \
>>> -		$(SRC_PATH)/tests/vm/$* \
>>> +		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
>>>    		$(if $(J),--jobs $(J)) \
>>>    		--image "$<" \
>>>    		--interactive \
>>>
> 
> 



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH  v1 07/10] configure: fix check for libzstd
  2020-03-02 18:19 ` [PATCH v1 07/10] configure: fix check for libzstd Alex Bennée
@ 2020-03-02 22:02   ` Alex Bennée
  2020-03-05  9:43     ` Juan Quintela
  0 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-02 22:02 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée


Alex Bennée <alex.bennee@linaro.org> writes:

> Fixes: 3a67848134d0
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 7b373bc0bb8..caa65f58831 100755
> --- a/configure
> +++ b/configure
> @@ -2464,7 +2464,7 @@ fi
>  # zstd check
>  
>  if test "$zstd" != "no" ; then
> -    if $pkg_config --exist libzstd ; then
> +    if $pkg_config --exists libzstd ; then

Dropping this patch as it breaks the build even more!

  CC      migration/block.o

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:24:5: error: unknown type name ‘ZSTD_CStream’

     ZSTD_CStream *zcs;

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:26:5: error: unknown type name ‘ZSTD_DStream’

     ZSTD_DStream *zds;

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:28:5: error: unknown type name ‘ZSTD_inBuffer’

     ZSTD_inBuffer in;

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:29:5: error: unknown type name ‘ZSTD_outBuffer’

     ZSTD_outBuffer out;

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_send_setup’:

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:55:14: error: implicit declaration of function ‘ZSTD_createCStream’ [-Werror=implicit-function-declaration]

     z->zcs = ZSTD_createCStream();

              ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:55:5: error: nested extern declaration of ‘ZSTD_createCStream’ [-Werror=nested-externs]

     z->zcs = ZSTD_createCStream();

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:55:12: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]

     z->zcs = ZSTD_createCStream();

            ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:62:11: error: implicit declaration of function ‘ZSTD_initCStream’ [-Werror=implicit-function-declaration]

     res = ZSTD_initCStream(z->zcs, migrate_multifd_zstd_level());

           ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:62:5: error: nested extern declaration of ‘ZSTD_initCStream’ [-Werror=nested-externs]

     res = ZSTD_initCStream(z->zcs, migrate_multifd_zstd_level());

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:64:9: error: implicit declaration of function ‘ZSTD_freeCStream’ [-Werror=implicit-function-declaration]

         ZSTD_freeCStream(z->zcs);

         ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:64:9: error: nested extern declaration of ‘ZSTD_freeCStream’ [-Werror=nested-externs]

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_send_prepare’:

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:120:11: error: request for member ‘dst’ in something not a structure or union

     z->out.dst = z->zbuff;

           ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:121:11: error: request for member ‘size’ in something not a structure or union

     z->out.size = z->zbuff_len;

           ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:122:11: error: request for member ‘pos’ in something not a structure or union

     z->out.pos = 0;

           ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:125:9: error: unknown type name ‘ZSTD_EndDirective’

         ZSTD_EndDirective flush = ZSTD_e_continue;

         ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:125:35: error: ‘ZSTD_e_continue’ undeclared (first use in this function)

         ZSTD_EndDirective flush = ZSTD_e_continue;

                                   ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:125:35: note: each undeclared identifier is reported only once for each function it appears in

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:128:21: error: ‘ZSTD_e_flush’ undeclared (first use in this function)

             flush = ZSTD_e_flush;

                     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:130:14: error: request for member ‘src’ in something not a structure or union

         z->in.src = iov[i].iov_base;

              ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:131:14: error: request for member ‘size’ in something not a structure or union

         z->in.size = iov[i].iov_len;

              ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:132:14: error: request for member ‘pos’ in something not a structure or union

         z->in.pos = 0;

              ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:143:19: error: implicit declaration of function ‘ZSTD_compressStream2’ [-Werror=implicit-function-declaration]

             ret = ZSTD_compressStream2(z->zcs, &z->out, &z->in, flush);

                   ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:143:13: error: nested extern declaration of ‘ZSTD_compressStream2’ [-Werror=nested-externs]

             ret = ZSTD_compressStream2(z->zcs, &z->out, &z->in, flush);

             ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:144:35: error: request for member ‘size’ in something not a structure or union

         } while (ret > 0 && (z->in.size - z->in.pos > 0)

                                   ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:144:48: error: request for member ‘pos’ in something not a structure or union

         } while (ret > 0 && (z->in.size - z->in.pos > 0)

                                                ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:145:36: error: request for member ‘size’ in something not a structure or union

                          && (z->out.size - z->out.pos > 0));

                                    ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:145:50: error: request for member ‘pos’ in something not a structure or union

                          && (z->out.size - z->out.pos > 0));

                                                  ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:146:30: error: request for member ‘size’ in something not a structure or union

         if (ret > 0 && (z->in.size - z->in.pos > 0)) {

                              ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:146:43: error: request for member ‘pos’ in something not a structure or union

         if (ret > 0 && (z->in.size - z->in.pos > 0)) {

                                           ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:157:33: error: request for member ‘pos’ in something not a structure or union

     p->next_packet_size = z->out.pos;

                                 ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_recv_setup’:

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:199:14: error: implicit declaration of function ‘ZSTD_createDStream’ [-Werror=implicit-function-declaration]

     z->zds = ZSTD_createDStream();

              ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:199:5: error: nested extern declaration of ‘ZSTD_createDStream’ [-Werror=nested-externs]

     z->zds = ZSTD_createDStream();

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:199:12: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]

     z->zds = ZSTD_createDStream();

            ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:206:11: error: implicit declaration of function ‘ZSTD_initDStream’ [-Werror=implicit-function-declaration]

     ret = ZSTD_initDStream(z->zds);

           ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:206:5: error: nested extern declaration of ‘ZSTD_initDStream’ [-Werror=nested-externs]

     ret = ZSTD_initDStream(z->zds);

     ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:208:9: error: implicit declaration of function ‘ZSTD_freeDStream’ [-Werror=implicit-function-declaration]

         ZSTD_freeDStream(z->zds);

         ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:208:9: error: nested extern declaration of ‘ZSTD_freeDStream’ [-Werror=nested-externs]

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_recv_pages’:

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:281:10: error: request for member ‘src’ in something not a structure or union

     z->in.src = z->zbuff;

          ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:282:10: error: request for member ‘size’ in something not a structure or union

     z->in.size = in_size;

          ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:283:10: error: request for member ‘pos’ in something not a structure or union

     z->in.pos = 0;

          ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:288:15: error: request for member ‘dst’ in something not a structure or union

         z->out.dst = iov->iov_base;

               ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:289:15: error: request for member ‘size’ in something not a structure or union

         z->out.size = iov->iov_len;

               ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:290:15: error: request for member ‘pos’ in something not a structure or union

         z->out.pos = 0;

               ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:301:19: error: implicit declaration of function ‘ZSTD_decompressStream’ [-Werror=implicit-function-declaration]

             ret = ZSTD_decompressStream(z->zds, &z->out, &z->in);

                   ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:301:13: error: nested extern declaration of ‘ZSTD_decompressStream’ [-Werror=nested-externs]

             ret = ZSTD_decompressStream(z->zds, &z->out, &z->in);

             ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:302:35: error: request for member ‘size’ in something not a structure or union

         } while (ret > 0 && (z->in.size - z->in.pos > 0)

                                   ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:302:48: error: request for member ‘pos’ in something not a structure or union

         } while (ret > 0 && (z->in.size - z->in.pos > 0)

                                                ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:303:36: error: request for member ‘pos’ in something not a structure or union

                          && (z->out.pos < iov->iov_len));

                                    ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:304:31: error: request for member ‘pos’ in something not a structure or union

         if (ret > 0 && (z->out.pos < iov->iov_len)) {

                               ^

/home/travis/build/stsquad/qemu/migration/multifd-zstd.c:314:27: error: request for member ‘pos’ in something not a structure or union

         out_size += z->out.pos;

                           ^

cc1: all warnings being treated as errors

/home/travis/build/stsquad/qemu/rules.mak:69: recipe for target 'migration/multifd-zstd.o' failed

make: *** [migration/multifd-zstd.o] Error 1

make: *** Waiting for unfinished jobs....

rm tests/qemu-iotests/socket_scm_helper.o

>          zstd_cflags="$($pkg_config --cflags libzstd)"
>          zstd_libs="$($pkg_config --libs libzstd)"
>          LIBS="$zstd_libs $LIBS"


-- 
Alex Bennée


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH  v1 07/10] configure: fix check for libzstd
  2020-03-02 22:02   ` Alex Bennée
@ 2020-03-05  9:43     ` Juan Quintela
  2020-03-05 10:09       ` Alex Bennée
  0 siblings, 1 reply; 23+ messages in thread
From: Juan Quintela @ 2020-03-05  9:43 UTC (permalink / raw)
  To: Alex Bennée; +Cc: qemu-devel

Alex Bennée <alex.bennee@linaro.org> wrote:
> Alex Bennée <alex.bennee@linaro.org> writes:
>
>> Fixes: 3a67848134d0
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  configure | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 7b373bc0bb8..caa65f58831 100755
>> --- a/configure
>> +++ b/configure
>> @@ -2464,7 +2464,7 @@ fi
>>  # zstd check
>>  
>>  if test "$zstd" != "no" ; then
>> -    if $pkg_config --exist libzstd ; then
>> +    if $pkg_config --exists libzstd ; then

Hi

several things:

a- I found why I didn't get the error.  Fedora pkg-config is really
"smart":

b- I have tried (with this patch), the following configurations:
   * --enable-zstd
   * --disable-zstd
   with both libzstd-devel installed and not installed. Everything
   worked as expected.
   (BTW, I tested that before submmiting the patch in the first place, I
   thought that I had done all testing needed for such a check).

Can you told me what architecture/distro/os are you using.


> Dropping this patch as it breaks the build even more!
>
>   CC      migration/block.o
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:24:5: error: unknown type name ‘ZSTD_CStream’
>
>      ZSTD_CStream *zcs;
>
>      ^

This is really weird.  if you arrive here, that means:
- you have zstd devel installed (whatever is that called for your
  os/distro/whatever).

- pkg-config has found zstd devel packages and configured them (that
  file depends on CONFiG_ZSTD beoing defined)

- gcc has found <zstd.h> (i.e. it don't give one error about that
  include file not found).

And zstd don't have ZSTD_CStream defined?  What is going on here?
Can you post/show what is on your zstd.h file?
What zstd library version do you have?

I thought that zstd was a new library, and that we didn't need to check
for versions.  It appears that I was wrong.  And no, the include file
don't show what features are new/old.

Sorry for the inconveniences.

Later, Juan.

>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:26:5: error: unknown type name ‘ZSTD_DStream’
>
>      ZSTD_DStream *zds;
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:28:5: error: unknown type name ‘ZSTD_inBuffer’
>
>      ZSTD_inBuffer in;
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:29:5: error: unknown type name ‘ZSTD_outBuffer’
>
>      ZSTD_outBuffer out;
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_send_setup’:
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:55:14: error: implicit declaration of function ‘ZSTD_createCStream’ [-Werror=implicit-function-declaration]
>
>      z->zcs = ZSTD_createCStream();
>
>               ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:55:5: error: nested extern declaration of ‘ZSTD_createCStream’ [-Werror=nested-externs]
>
>      z->zcs = ZSTD_createCStream();
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:55:12: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]
>
>      z->zcs = ZSTD_createCStream();
>
>             ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:62:11: error: implicit declaration of function ‘ZSTD_initCStream’ [-Werror=implicit-function-declaration]
>
>      res = ZSTD_initCStream(z->zcs, migrate_multifd_zstd_level());
>
>            ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:62:5: error: nested extern declaration of ‘ZSTD_initCStream’ [-Werror=nested-externs]
>
>      res = ZSTD_initCStream(z->zcs, migrate_multifd_zstd_level());
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:64:9: error: implicit declaration of function ‘ZSTD_freeCStream’ [-Werror=implicit-function-declaration]
>
>          ZSTD_freeCStream(z->zcs);
>
>          ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:64:9: error: nested extern declaration of ‘ZSTD_freeCStream’ [-Werror=nested-externs]
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_send_prepare’:
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:120:11: error: request for member ‘dst’ in something not a structure or union
>
>      z->out.dst = z->zbuff;
>
>            ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:121:11: error: request for member ‘size’ in something not a structure or union
>
>      z->out.size = z->zbuff_len;
>
>            ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:122:11: error: request for member ‘pos’ in something not a structure or union
>
>      z->out.pos = 0;
>
>            ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:125:9: error: unknown type name ‘ZSTD_EndDirective’
>
>          ZSTD_EndDirective flush = ZSTD_e_continue;
>
>          ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:125:35: error: ‘ZSTD_e_continue’ undeclared (first use in this function)
>
>          ZSTD_EndDirective flush = ZSTD_e_continue;
>
>                                    ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:125:35: note: each undeclared identifier is reported only once for each function it appears in
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:128:21: error: ‘ZSTD_e_flush’ undeclared (first use in this function)
>
>              flush = ZSTD_e_flush;
>
>                      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:130:14: error: request for member ‘src’ in something not a structure or union
>
>          z->in.src = iov[i].iov_base;
>
>               ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:131:14: error: request for member ‘size’ in something not a structure or union
>
>          z->in.size = iov[i].iov_len;
>
>               ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:132:14: error: request for member ‘pos’ in something not a structure or union
>
>          z->in.pos = 0;
>
>               ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:143:19: error: implicit declaration of function ‘ZSTD_compressStream2’ [-Werror=implicit-function-declaration]
>
>              ret = ZSTD_compressStream2(z->zcs, &z->out, &z->in, flush);
>
>                    ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:143:13: error: nested extern declaration of ‘ZSTD_compressStream2’ [-Werror=nested-externs]
>
>              ret = ZSTD_compressStream2(z->zcs, &z->out, &z->in, flush);
>
>              ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:144:35: error: request for member ‘size’ in something not a structure or union
>
>          } while (ret > 0 && (z->in.size - z->in.pos > 0)
>
>                                    ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:144:48: error: request for member ‘pos’ in something not a structure or union
>
>          } while (ret > 0 && (z->in.size - z->in.pos > 0)
>
>                                                 ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:145:36: error: request for member ‘size’ in something not a structure or union
>
>                           && (z->out.size - z->out.pos > 0));
>
>                                     ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:145:50: error: request for member ‘pos’ in something not a structure or union
>
>                           && (z->out.size - z->out.pos > 0));
>
>                                                   ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:146:30: error: request for member ‘size’ in something not a structure or union
>
>          if (ret > 0 && (z->in.size - z->in.pos > 0)) {
>
>                               ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:146:43: error: request for member ‘pos’ in something not a structure or union
>
>          if (ret > 0 && (z->in.size - z->in.pos > 0)) {
>
>                                            ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:157:33: error: request for member ‘pos’ in something not a structure or union
>
>      p->next_packet_size = z->out.pos;
>
>                                  ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_recv_setup’:
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:199:14: error: implicit declaration of function ‘ZSTD_createDStream’ [-Werror=implicit-function-declaration]
>
>      z->zds = ZSTD_createDStream();
>
>               ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:199:5: error: nested extern declaration of ‘ZSTD_createDStream’ [-Werror=nested-externs]
>
>      z->zds = ZSTD_createDStream();
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:199:12: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]
>
>      z->zds = ZSTD_createDStream();
>
>             ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:206:11: error: implicit declaration of function ‘ZSTD_initDStream’ [-Werror=implicit-function-declaration]
>
>      ret = ZSTD_initDStream(z->zds);
>
>            ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:206:5: error: nested extern declaration of ‘ZSTD_initDStream’ [-Werror=nested-externs]
>
>      ret = ZSTD_initDStream(z->zds);
>
>      ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:208:9: error: implicit declaration of function ‘ZSTD_freeDStream’ [-Werror=implicit-function-declaration]
>
>          ZSTD_freeDStream(z->zds);
>
>          ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:208:9: error: nested extern declaration of ‘ZSTD_freeDStream’ [-Werror=nested-externs]
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c: In function ‘zstd_recv_pages’:
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:281:10: error: request for member ‘src’ in something not a structure or union
>
>      z->in.src = z->zbuff;
>
>           ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:282:10: error: request for member ‘size’ in something not a structure or union
>
>      z->in.size = in_size;
>
>           ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:283:10: error: request for member ‘pos’ in something not a structure or union
>
>      z->in.pos = 0;
>
>           ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:288:15: error: request for member ‘dst’ in something not a structure or union
>
>          z->out.dst = iov->iov_base;
>
>                ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:289:15: error: request for member ‘size’ in something not a structure or union
>
>          z->out.size = iov->iov_len;
>
>                ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:290:15: error: request for member ‘pos’ in something not a structure or union
>
>          z->out.pos = 0;
>
>                ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:301:19: error: implicit declaration of function ‘ZSTD_decompressStream’ [-Werror=implicit-function-declaration]
>
>              ret = ZSTD_decompressStream(z->zds, &z->out, &z->in);
>
>                    ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:301:13: error: nested extern declaration of ‘ZSTD_decompressStream’ [-Werror=nested-externs]
>
>              ret = ZSTD_decompressStream(z->zds, &z->out, &z->in);
>
>              ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:302:35: error: request for member ‘size’ in something not a structure or union
>
>          } while (ret > 0 && (z->in.size - z->in.pos > 0)
>
>                                    ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:302:48: error: request for member ‘pos’ in something not a structure or union
>
>          } while (ret > 0 && (z->in.size - z->in.pos > 0)
>
>                                                 ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:303:36: error: request for member ‘pos’ in something not a structure or union
>
>                           && (z->out.pos < iov->iov_len));
>
>                                     ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:304:31: error: request for member ‘pos’ in something not a structure or union
>
>          if (ret > 0 && (z->out.pos < iov->iov_len)) {
>
>                                ^
>
> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:314:27: error: request for member ‘pos’ in something not a structure or union
>
>          out_size += z->out.pos;
>
>                            ^
>
> cc1: all warnings being treated as errors
>
> /home/travis/build/stsquad/qemu/rules.mak:69: recipe for target 'migration/multifd-zstd.o' failed
>
> make: *** [migration/multifd-zstd.o] Error 1
>
> make: *** Waiting for unfinished jobs....
>
> rm tests/qemu-iotests/socket_scm_helper.o
>
>>          zstd_cflags="$($pkg_config --cflags libzstd)"
>>          zstd_libs="$($pkg_config --libs libzstd)"
>>          LIBS="$zstd_libs $LIBS"



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH  v1 07/10] configure: fix check for libzstd
  2020-03-05  9:43     ` Juan Quintela
@ 2020-03-05 10:09       ` Alex Bennée
  2020-03-05 10:28         ` Juan Quintela
  0 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-03-05 10:09 UTC (permalink / raw)
  To: quintela; +Cc: qemu-devel


Juan Quintela <quintela@redhat.com> writes:

> Alex Bennée <alex.bennee@linaro.org> wrote:
>> Alex Bennée <alex.bennee@linaro.org> writes:
>>
>>> Fixes: 3a67848134d0
>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>> ---
>>>  configure | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/configure b/configure
>>> index 7b373bc0bb8..caa65f58831 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -2464,7 +2464,7 @@ fi
>>>  # zstd check
>>>  
>>>  if test "$zstd" != "no" ; then
>>> -    if $pkg_config --exist libzstd ; then
>>> +    if $pkg_config --exists libzstd ; then
>
> Hi
>
> several things:
>
> a- I found why I didn't get the error.  Fedora pkg-config is really
> "smart":
>
> b- I have tried (with this patch), the following configurations:
>    * --enable-zstd
>    * --disable-zstd
>    with both libzstd-devel installed and not installed. Everything
>    worked as expected.
>    (BTW, I tested that before submmiting the patch in the first place, I
>    thought that I had done all testing needed for such a check).
>
> Can you told me what architecture/distro/os are you using.

It broke on the CI setup - it could be another issue with the ageing
Travis images (Ubuntu 16.04).

>> Dropping this patch as it breaks the build even more!
>>
>>   CC      migration/block.o
>>
>> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:24:5: error: unknown type name ‘ZSTD_CStream’
>>
>>      ZSTD_CStream *zcs;
>>
>>      ^
>
> This is really weird.  if you arrive here, that means:
> - you have zstd devel installed (whatever is that called for your
>   os/distro/whatever).

Well it detected it:

  zstd support      yes

>
> - pkg-config has found zstd devel packages and configured them (that
>   file depends on CONFiG_ZSTD beoing defined)
>
> - gcc has found <zstd.h> (i.e. it don't give one error about that
>   include file not found).
>
> And zstd don't have ZSTD_CStream defined?  What is going on here?
> Can you post/show what is on your zstd.h file?
> What zstd library version do you have?
>
> I thought that zstd was a new library, and that we didn't need to check
> for versions.  It appears that I was wrong.  And no, the include file
> don't show what features are new/old.

Obviously not that new but has changed since it first got introduced.

-- 
Alex Bennée


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH  v1 07/10] configure: fix check for libzstd
  2020-03-05 10:09       ` Alex Bennée
@ 2020-03-05 10:28         ` Juan Quintela
  0 siblings, 0 replies; 23+ messages in thread
From: Juan Quintela @ 2020-03-05 10:28 UTC (permalink / raw)
  To: Alex Bennée; +Cc: qemu-devel

Alex Bennée <alex.bennee@linaro.org> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> Alex Bennée <alex.bennee@linaro.org> wrote:
>>> Alex Bennée <alex.bennee@linaro.org> writes:
>>>

>>
>> Can you told me what architecture/distro/os are you using.
>
> It broke on the CI setup - it could be another issue with the ageing
> Travis images (Ubuntu 16.04).
>
>>> Dropping this patch as it breaks the build even more!
>>>
>>>   CC      migration/block.o
>>>
>>> /home/travis/build/stsquad/qemu/migration/multifd-zstd.c:24:5: error: unknown type name ‘ZSTD_CStream’
>>>
>>>      ZSTD_CStream *zcs;
>>>
>>>      ^
>>
>> This is really weird.  if you arrive here, that means:
>> - you have zstd devel installed (whatever is that called for your
>>   os/distro/whatever).
>
> Well it detected it:
>
>   zstd support      yes
>
>>
>> - pkg-config has found zstd devel packages and configured them (that
>>   file depends on CONFiG_ZSTD beoing defined)
>>
>> - gcc has found <zstd.h> (i.e. it don't give one error about that
>>   include file not found).
>>
>> And zstd don't have ZSTD_CStream defined?  What is going on here?
>> Can you post/show what is on your zstd.h file?
>> What zstd library version do you have?
>>
>> I thought that zstd was a new library, and that we didn't need to check
>> for versions.  It appears that I was wrong.  And no, the include file
>> don't show what features are new/old.
>
> Obviously not that new but has changed since it first got introduced.

I put my archeology hat, and went digging.

Streaming API was introduced on this commit:

commit 5a0c8e24395079f8e8cdc90aa1659cd5ab1b7427
Author: Yann Collet <yann.collet.73@gmail.com>
Date:   Fri Aug 12 01:20:36 2016 +0200

    new streaming API (compression)

And it first appears on v0.8.1 version.

Posting a better fix on toplevel.  If you want to try, I have changed it
to:

diff --git a/configure b/configure
index 7b373bc0bb..1bf48df1ef 100755
--- a/configure
+++ b/configure
@@ -2464,7 +2464,8 @@ fi
 # zstd check
 
 if test "$zstd" != "no" ; then
-    if $pkg_config --exist libzstd ; then
+    libzstd_minver="0.8.1"
+    if $pkg_config --atleast-version=$libzstd_minver libzstd ; then
         zstd_cflags="$($pkg_config --cflags libzstd)"
         zstd_libs="$($pkg_config --libs libzstd)"
         LIBS="$zstd_libs $LIBS"


If you can check that this works for you, thanks.



^ permalink raw reply related	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2020-03-05 10:29 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-02 18:18 [PATCH v1 00/10] testing/next updates (tweaks and re-greening) Alex Bennée
2020-03-02 18:18 ` [PATCH v1 01/10] tests/vm: use $(PYTHON) consistently Alex Bennée
2020-03-02 18:29   ` Philippe Mathieu-Daudé
2020-03-02 18:41     ` Alex Bennée
2020-03-02 18:50       ` Philippe Mathieu-Daudé
2020-03-02 18:18 ` [PATCH v1 02/10] tests/vm: Debug mode shows ssh output Alex Bennée
2020-03-02 18:30   ` Philippe Mathieu-Daudé
2020-03-02 18:19 ` [PATCH v1 03/10] tests/vm: increased max timeout for vm boot Alex Bennée
2020-03-02 18:32   ` Philippe Mathieu-Daudé
2020-03-02 18:19 ` [PATCH v1 04/10] tests/vm: give wait_ssh() option to wait for root Alex Bennée
2020-03-02 18:19 ` [PATCH v1 05/10] tests/vm: Added gen_cloud_init_iso() to basevm.py Alex Bennée
2020-03-02 18:32   ` Philippe Mathieu-Daudé
2020-03-02 18:19 ` [PATCH v1 06/10] travis: enable tools build on OS X Alex Bennée
2020-03-02 18:46   ` Philippe Mathieu-Daudé
2020-03-02 18:19 ` [PATCH v1 07/10] configure: fix check for libzstd Alex Bennée
2020-03-02 22:02   ` Alex Bennée
2020-03-05  9:43     ` Juan Quintela
2020-03-05 10:09       ` Alex Bennée
2020-03-05 10:28         ` Juan Quintela
2020-03-02 18:19 ` [PATCH v1 08/10] configure: detect and report genisoimage Alex Bennée
2020-03-02 18:25   ` Philippe Mathieu-Daudé
2020-03-02 18:19 ` [PATCH v1 09/10] tests/acceptance: move @skipUnless decoration to test itself Alex Bennée
2020-03-02 18:19 ` [PATCH v1 10/10] travis.yml: install python3 numpy and opencv libraries Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).