On Mon, 02/15 14:10, Alex Bennée wrote: > > Fam Zheng <f...@redhat.com> writes: > > > On Mon, 02/15 12:45, Alex Bennée wrote: > >> > >> Alex Bennée <alex.ben...@linaro.org> writes: > >> > >> > Fam Zheng <f...@redhat.com> writes: > >> > > >> >> It's better to have a launcher for all tests, to make it easier to > >> >> initialize and manage the environment. > >> >> > >> >> Signed-off-by: Fam Zheng <f...@redhat.com> > >> >> --- > >> >> tests/docker/run | 23 +++++++++++++++++++++++ > >> >> 1 file changed, 23 insertions(+) > >> >> create mode 100755 tests/docker/run > >> >> > <snip> > >> OK that won't work if you have alternates in your git setup. It seems to > >> me the creation of the pristine tree for docker should be done before we > >> enter the docker environment. > >> > >> There is a slight wrinkle as to what happens if the user wants to enter > >> an interactive session for debugging. However that doesn't seem possible > >> via the makefile and perhaps that is just as well. Perhaps that should > >> be a helper script for the user? > > > > We can use "make distclean" in the copied tree. > > I wouldn't - distclean isn't always that clean due to *mumble mumble* > makefile reasons. You could try this approach: > > commit f838d3bbe2f71c731dfe172f1c3286084de203c8 > Author: Alex Bennée <alex.ben...@linaro.org> > Date: Mon Feb 15 12:52:21 2016 +0000 > > tests/docker/Makefile.include: snapshot the src for docker > > Instead of providing a live version of the source tree to the docker > container we snapshot it with git-archive. This ensure the tree is in a > pristine state for whatever operations the container is going to run on > them. > > Uncommitted changes known to files known by the git index will be > included in the snapshot if there are any. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > > diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include > index ca84c35..63a799c 100644 > --- a/tests/docker/Makefile.include > +++ b/tests/docker/Makefile.include > @@ -2,7 +2,7 @@ > > $(if $(quiet-command),,$(eval include $(SRC_PATH)/rules.mak)) > > -.PHONY: docker docker-build docker-run docker-clean > +.PHONY: docker docker-build docker-qemu-src docker-run docker-clean > > DOCKER_SUFFIX = .docker > > @@ -16,12 +16,17 @@ DOCKER_TOOLS := $(filter-out test-%, $(DOCKER_SCRIPTS)) > TESTS ?= % > IMAGES ?= % > > +docker-qemu-src: > + $(if git diff-index --quiet HEAD --, > \ > + git archive -1 HEAD --prefix=qemu-docker-snapshot/ > --format=tar.gz | tar -xz -C /tmp, \ > + git archive -1 `git stash create` > --prefix=qemu-docker-snapshot/ --format=tar.gz | tar -xz -C /tmp)
Does this clutter the user's git stash list? Or we can just error out if the working tree is not clean. Fam