diff mbox series

[RFC] travis: Test out-of-tree builds

Message ID 20180621122638.12113-1-f4bug@amsat.org
State New
Headers show
Series [RFC] travis: Test out-of-tree builds | expand

Commit Message

Philippe Mathieu-Daudé June 21, 2018, 12:26 p.m. UTC
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(-)

Comments

Fam Zheng July 27, 2018, 9:10 a.m. UTC | #1
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
Peter Maydell July 27, 2018, 9:14 a.m. UTC | #2
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
diff mbox series

Patch

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