From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aePhb-0003DZ-DW for qemu-devel@nongnu.org; Fri, 11 Mar 2016 11:14:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aePhX-0005Xj-0e for qemu-devel@nongnu.org; Fri, 11 Mar 2016 11:14:11 -0500 Received: from mail-wm0-x233.google.com ([2a00:1450:400c:c09::233]:35152) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aePhW-0005XB-Jd for qemu-devel@nongnu.org; Fri, 11 Mar 2016 11:14:06 -0500 Received: by mail-wm0-x233.google.com with SMTP id l68so25384454wml.0 for ; Fri, 11 Mar 2016 08:14:06 -0800 (PST) References: <1457086720-30391-1-git-send-email-famz@redhat.com> <1457086720-30391-11-git-send-email-famz@redhat.com> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1457086720-30391-11-git-send-email-famz@redhat.com> Date: Fri, 11 Mar 2016 16:14:04 +0000 Message-ID: <87k2l9t2k3.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v3 10/13] docker: Add travis tool List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: kwolf@redhat.com, peter.maydell@linaro.org, sw@weilnetz.de, qemu-devel@nongnu.org, stefanha@redhat.com, Paolo Bonzini , jsnow@redhat.com, david@gibson.dropbear.id.au Fam Zheng writes: > The script is not named test-travis.sh so it won't run with "make > docker-run", because it can take too long. > > Run it with "make docker-run-travis.sh@ubuntu". 16:08 alex@zen/x86_64 [qemu.git/review/docker-v3] >make docker-run-travis.sh@ubuntu ARCHIVE qemu.tgz COPY RUNNER RUN travis.sh in ubuntu ./run: line 49: /tmp/qemu-test/src/tests/docker/travis.sh: No such file or directory > > Signed-off-by: Fam Zheng > --- > tests/docker/travis | 21 +++++++++++++++++++++ > tests/docker/travis.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 69 insertions(+) > create mode 100755 tests/docker/travis > create mode 100755 tests/docker/travis.py > > diff --git a/tests/docker/travis b/tests/docker/travis > new file mode 100755 > index 0000000..d345393 > --- /dev/null > +++ b/tests/docker/travis > @@ -0,0 +1,21 @@ > +#!/bin/bash -e > +# > +# Mimic a travis testing matrix > +# > +# Copyright (c) 2016 Red Hat Inc. > +# > +# Authors: > +# Fam Zheng > +# > +# This work is licensed under the terms of the GNU GPL, version 2 > +# or (at your option) any later version. See the COPYING file in > +# the top-level directory. > + > +. common.rc > + > +requires pyyaml > +cmdfile=/tmp/travis_cmd_list.sh > +$QEMU_SRC/tests/docker/travis.py $QEMU_SRC/.travis.yml > $cmdfile > +chmod +x $cmdfile > +cd "$QEMU_SRC" > +$cmdfile > diff --git a/tests/docker/travis.py b/tests/docker/travis.py > new file mode 100755 > index 0000000..8dcc964 > --- /dev/null > +++ b/tests/docker/travis.py > @@ -0,0 +1,48 @@ > +#!/usr/bin/env python > +# > +# Travis YAML config parser > +# > +# Copyright (c) 2016 Red Hat Inc. > +# > +# Authors: > +# Fam Zheng > +# > +# This work is licensed under the terms of the GNU GPL, version 2 > +# or (at your option) any later version. See the COPYING file in > +# the top-level directory. > + > +import sys > +import yaml > +import itertools > + > +def load_yaml(fname): > + return yaml.load(open(fname, "r").read()) > + > +def conf_iter(conf): > + def env_to_list(env): > + return env if isinstance(env, list) else [env] > + global_env = conf["env"]["global"] > + for entry in conf["matrix"]["include"]: > + yield {"env": global_env + env_to_list(entry["env"]), > + "compiler": entry["compiler"]} > + for entry in itertools.product(conf["compiler"], > + conf["env"]["matrix"]): > + yield {"env": global_env + env_to_list(entry[1]), > + "compiler": entry[0]} > + > +def main(): > + if len(sys.argv) < 2: > + sys.stderr.write("Usage: %s \n" % sys.argv[0]) > + return 1 > + conf = load_yaml(sys.argv[1]) > + for config in conf_iter(conf): > + print "(" > + print "\n".join(config["env"]) > + print "alias cc=" + config["compiler"] > + print "\n".join(conf["before_script"]) > + print "\n".join(conf["script"]) > + print ")" > + return 0 > + > +if __name__ == "__main__": > + sys.exit(main()) -- Alex Bennée