[Qemu-devel] [RFC PATCH] travis: Test out-of-tree builds

Philippe Mathieu-Daudé posted 1 patch 5 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180621122638.12113-1-f4bug@amsat.org
Test checkpatch passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test s390x passed
.travis.yml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
[Qemu-devel] [RFC PATCH] travis: Test out-of-tree builds
Posted by Philippe Mathieu-Daudé 5 years, 10 months ago
Force one config to build 'out-of-tree' (object files and executables
are created in a tree outside the project source code).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
I noticed various out-of-tree issue in the last 2 merge windows.

Pseudo-randomly picked a build from the matrix which covers system + user.

 .travis.yml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index fabfe9ec34..02e096f6a9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -50,6 +50,8 @@ notifications:
     on_failure: always
 env:
   global:
+    - SRC_DIR="."
+    - BUILD_DIR="."
     - TEST_CMD="make check"
     - MAKEFLAGS="-j3"
   matrix:
@@ -69,11 +71,15 @@ before_install:
   - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
   - git submodule update --init --recursive
 before_script:
-  - ./configure ${CONFIG} || { cat config.log && exit 1; }
+  - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
+  - ${SRC_DIR}/configure ${CONFIG} || { cat config.log && exit 1; }
 script:
   - make ${MAKEFLAGS} && ${TEST_CMD}
 matrix:
   include:
+    # Test out-of-tree builds
+    - env: CONFIG="--enable-debug --enable-debug-tcg"
+           BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
     # Test with Clang for compile portability (Travis uses clang-5.0)
     - env: CONFIG="--disable-system"
       compiler: clang
-- 
2.18.0.rc2


Re: [Qemu-devel] [RFC PATCH] travis: Test out-of-tree builds
Posted by Peter Maydell 5 years, 9 months ago
On 21 June 2018 at 13:26, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> Force one config to build 'out-of-tree' (object files and executables
> are created in a tree outside the project source code).
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> I noticed various out-of-tree issue in the last 2 merge windows.

That's odd, because all my pre-merge build tests are out-of-tree
(in-tree is the case I don't cover). Presumably they were only
for specific oddball configs ?

(Not that there's any harm in covering this in travis too.)

thanks
-- PMM

Re: [Qemu-devel] [RFC PATCH] travis: Test out-of-tree builds
Posted by Fam Zheng 5 years, 9 months ago
On Thu, 06/21 09:26, Philippe Mathieu-Daudé wrote:
> Force one config to build 'out-of-tree' (object files and executables
> are created in a tree outside the project source code).
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> I noticed various out-of-tree issue in the last 2 merge windows.
> 
> Pseudo-randomly picked a build from the matrix which covers system + user.
> 
>  .travis.yml | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index fabfe9ec34..02e096f6a9 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -50,6 +50,8 @@ notifications:
>      on_failure: always
>  env:
>    global:
> +    - SRC_DIR="."
> +    - BUILD_DIR="."
>      - TEST_CMD="make check"
>      - MAKEFLAGS="-j3"
>    matrix:
> @@ -69,11 +71,15 @@ before_install:
>    - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
>    - git submodule update --init --recursive
>  before_script:
> -  - ./configure ${CONFIG} || { cat config.log && exit 1; }
> +  - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
> +  - ${SRC_DIR}/configure ${CONFIG} || { cat config.log && exit 1; }
>  script:
>    - make ${MAKEFLAGS} && ${TEST_CMD}
>  matrix:
>    include:
> +    # Test out-of-tree builds
> +    - env: CONFIG="--enable-debug --enable-debug-tcg"
> +           BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."

Is a three-level nesting really necessary? I think a simple './build' dir should
do.

>      # Test with Clang for compile portability (Travis uses clang-5.0)
>      - env: CONFIG="--disable-system"
>        compiler: clang
> -- 
> 2.18.0.rc2
> 

Fam