Commit Graph

30 Commits

Author SHA1 Message Date
b4b904d49b Cleanup test output, and binaries.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 4308e881cc00141a1dd187120d1c4e2106148282
Component: engine
2017-08-09 11:02:57 -04:00
9a9d90f97d Remove test-integration-cli and references to it.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: bc82b139955c4a0edb20b070926469cceea0fbbb
Component: engine
2017-08-09 11:02:57 -04:00
363d00bb4d Add go-autogen to integration tests
Integration test were failing in trial runs for docker-ce 17.07 due to
the lack of go-autogen being sourced in `hack/make.sh`. This re-adds
go-autogen to be sourced for test-integration-cli so that we can
actually run tests without the error found in:
https://github.com/moby/moby/pull/33857

Signed-off-by: Eli Uriegas <eli.uriegas@docker.com>
Upstream-commit: 3cdd471cac8193c34d8483255065c6c28a7b1645
Component: engine
2017-07-20 11:37:12 -07:00
ec2663feb9 Convert script shebangs from "#!/bin/bash" to "#!/usr/bin/env bash"
This is especially important for distributions like NixOS where `/bin/bash` doesn't exist, or for MacOS users who've installed a newer version of Bash than the one that comes with their OS.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
Upstream-commit: 52379fa76dee07ca038624d639d9e14f4fb719ff
Component: engine
2017-02-13 11:01:54 -08:00
aa2e0abc3e Support interactive integration testing.
Interactive integration testing is useful when you're developing new tests, or
making changes to cli code.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 1d945a9743748373cd5c5bfface3209d241007d7
Component: engine
2016-08-05 12:07:28 -04:00
c9e0f2fc4f Prevent CI from getting stuck if shims are left alive
This will kill any left over containerd-shims to avoid the integration
script to stay stuck while it waits on them.

It will then causes CI to fail (even if all the tests succeeded).

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
Upstream-commit: fd1129d31a4e1981da2b25e165a46bcc7a042725
Component: engine
2016-06-28 10:05:05 -07:00
4ae1bedbae Add support for repeating integration tests
`TEST_REPEAT=n` runs the test suite again n times or
until the first failure without doing building and
daemon setup. Useful for debugging flaky tests.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 477fe4846ac72a77d7b045d1b5619bc7cfdbb9aa
Component: engine
2016-03-26 23:05:55 -07:00
86b3710469 use per-check timeouts
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 11d3f7092e38e1e90d926595c5a4ab9ff0da535c
Component: engine
2016-03-11 14:38:52 -05:00
9e396973a1 Remove timer and use -check.v for tests formatting
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 4253a1f87ee90e3827090dc380bfda2332e23ff3
Component: engine
2015-06-18 14:22:40 -07:00
aeb5ca3cb3 hack: explicit bundles for integration-cli prequisites
no longer load hide critical code such as in .integration-daemon-{start,stop},
if this step failed, it will had logged the corresponding module before:

---> Making bundle: .integration-daemon-start (in bundles/1.7.0-dev/daemon-start)

which is nicer to debug.

This will make it also easier to execute a single tests in an interactive shell.

$ make shell
docker> . hack/make.sh binary .integration-daemon-start .integration-daemon-setup
docker> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED STATUS              PORTS               NAMES
docker> go test github.com/docker/docker/integration-cli

Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
Upstream-commit: 2b4facdf2ed6b1074a2a8abc031bf0827b6d5f33
Component: engine
2015-06-09 07:22:26 +02:00
c50b83a729 Make "DEST" a make.sh construct instead of ad-hoc
Using "DEST" for our build artifacts inside individual bundlescripts was already well-established convention, but this officializes it by having `make.sh` itself set the variable and create the directory, also handling CYGWIN oddities in a single central place (instead of letting them spread outward from `hack/make/binary` like was definitely on their roadmap, whether they knew it or not; sneaky oddities).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
Upstream-commit: ac3388367b6493987cef8017774fa4cdb5d2098f
Component: engine
2015-05-30 11:16:43 -07:00
d67e51c7b3 Fix daemon start/stop logic in hack/make/* scripts
From the Bash manual's `set -e` description:
(https://www.gnu.org/software/bash/manual/bashref.html#index-set)

> Exit immediately if a pipeline (see Pipelines), which may consist of a
> single simple command (see Simple Commands), a list (see Lists), or a
> compound command (see Compound Commands) returns a non-zero status.
> The shell does not exit if the command that fails is part of the
> command list immediately following a while or until keyword, part of
> the test in an if statement, part of any command executed in a && or
> || list except the command following the final && or ||, any command
> in a pipeline but the last, or if the command’s return status is being
> inverted with !. If a compound command other than a subshell returns a
> non-zero status because a command failed while -e was being ignored,
> the shell does not exit.

Additionally, further down:

> If a compound command or shell function executes in a context where -e
> is being ignored, none of the commands executed within the compound
> command or function body will be affected by the -e setting, even if
> -e is set and a command returns a failure status. If a compound
> command or shell function sets -e while executing in a context where
> -e is ignored, that setting will not have any effect until the
> compound command or the command containing the function call
> completes.

Thus, the only way to have our `.integration-daemon-stop` script
actually run appropriately to clean up our daemon on test/script failure
is to use `trap ... EXIT`, which we traditionally avoid because it does
not have any stacking capabilities, but in this case is a reasonable
compromise because it's going to be the only script using it (for now,
at least; we can evaluate more complex solutions in the future if they
actually become necessary).

The alternatives were much less reasonable.  One is to have the entire
complex chains in any script wanting to use `.integration-daemon-start`
/ `.integration-daemon-stop` be chained together with `&&` in an `if`
block, which is untenable.  The other I could think of was taking the
body of these scripts out into separate scripts, essentially meaning
we'd need two files for each of these, which further complicates the
maintenance.

Add to that the fact that our `trap ... EXIT` is scoped to the enclosing
subshell (`( ... )`) and we're in even more reasonable territory with
this pattern.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
Upstream-commit: 929af4c38d8ca4754d2a3ccf087d359bb67c33f3
Component: engine
2015-04-23 11:31:16 -06:00
64b904ff2d hack/make/test-integration-cli: introduce MAKEDIR variable
- every execution of dirname costs time
- less repeating

Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
Upstream-commit: 6533cb973f6bab672018148fd6a67644580cc61f
Component: engine
2015-04-15 10:44:14 +02:00
719f00fbf2 Move scripts back to hack/, leave docs in project/
This also removes the now-defunct `*maintainer*.sh` scripts that don't work with the new TOML format, and moves a couple not-build-or-release-related scripts to `contrib/` instead.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
Upstream-commit: 949a21b55f3b8d7d1ae7a7b9829111a8f0dbf7e2
Component: engine
2015-03-13 14:04:08 -06:00
e8e8b5b2cb Move 'hack' to the less confusing 'project'
We might want to break it up into smaller pieces (eg. tools in one
place, documents in another) but let's worry about that later.

Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 32e61b8f5c3f855f5e204064be1aea6a877dda43
Component: engine
2014-11-09 21:50:28 +00:00
c02ebae1f7 Add Daemon test utils
Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
Upstream-commit: 054b921a2c140f9b8250f6c7e12dec9fba23ce0f
Component: engine
2014-09-02 10:58:36 -07:00
91b861a49c Fix hanging on tests failing
Tee hanging when `go test` exit with non-zero code.
Fixes #5672
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: 7cd1e482309e944522d3506f8e15eeb3ab7fb796
Component: engine
2014-05-19 08:26:05 +04:00
bf18e83e5d Merge pull request #5464 from tianon/close-leftover-fds
Upstream-commit: e88ef454b7a8705570623e6d26f51731b8300e0f
Component: engine
2014-04-30 12:27:52 -07:00
614fad87b9 Close extraneous file descriptors in containers
Without this patch, containers inherit the open file descriptors of the daemon, so my "exec 42>&2" allows us to "echo >&42 some nasty error with some bad advice" directly into the daemon log. :)

Also, "hack/dind" was already doing this due to issues caused by the inheritance, so I'm removing that hack too since this patch obsoletes it by generalizing it for all containers.

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: d5d62ff95574a48816890d8d6e0785a79f559c3c
Component: engine
2014-04-29 16:45:28 -06:00
cc76f7eafc Use "docker load" to create "scratch" in hack/make/test-integration-cli (instead of implicitly pulling it from the index)
Creating the "docker save" tarball for "scratch" is pretty simple.  I've also extrapolated the "docker build -t busybox ." logic into a separate "hack/make/.ensure-busybox" file so that it can eventually be reused easier.

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: c8381d672226dd17f2e17f9cf9378f06d533911c
Component: engine
2014-04-28 22:26:25 -06:00
bf6a9b5906 Update some whitespace in hack/make/test-integration-cli for consistency
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: e4114e6b946dfc0f433fa0f6a9de42f80656ce08
Component: engine
2014-04-28 22:22:31 -06:00
abb1fb2274 Fetch the "busybox" image source so we can build locally instead of pulling during the integration tests
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: 7bb72fa080d13c3b90d624cb77530632c7705c56
Component: engine
2014-04-14 13:35:54 -06:00
103b32014b cli integ: don't fetch busybox if it exists
Don't make calls to the registry if the image exists already.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: 449f92f11ed34d4475fa24e2561b02cc263722bf
Component: engine
2014-04-13 15:06:15 +03:00
dce753ef81 Update bundlescripts to use "set -e" consistently
"set -e" is already inherited here from make.sh, but explicit is always better than implicit (hence the "set -e" in the first place!)

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: b298960aed8155e7dbedb6602cdbb42eacee83f7
Component: engine
2014-04-09 12:11:06 -06:00
0ebf538308 Update test-integration-cli bundlescript for consistency with other bundlescripts and slightly more verbose logging of which commands were executed
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: 4c3eb7db675c7f8f15ef0d55e99a6699908f930c
Component: engine
2014-04-07 23:10:40 -06:00
010f288951 cli integration: fix wait race
The wait at the end of cli integration script could end up failing if
the process had already exited. This was making it look like the tests
have failed.

This change fixes the problem.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: 22152ccc47e641050da85b80cebf2912b42fd122
Component: engine
2014-04-04 19:06:55 +03:00
3057a30784 cli integration: allow driver selection via vars
This makes it possible to choose the graphdriver and the execdriver
which is going to be used for the cli integration tests.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: 62b08f557db91cc5cd12ea9ceb0a4d8cf3d6e0f1
Component: engine
2014-04-04 19:03:07 +03:00
8adb937258 integration-cli: pull busybox before running
Make sure the busybox image is ready to be used when running the cli
integration tests.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: f7ae3a1381fdc53042bebec085bb3f108bc05da3
Component: engine
2014-03-31 22:07:23 +03:00
466e144973 Small tweaks to the hack scripts to make them simpler
Please do with this as you please (including rebasing and/or squashing it), especially under clause (c) of the DCO.

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: 3fb1fc0b7b225295b3059cb9a2f5fd9af7a73f36
Component: engine
2014-03-29 23:09:45 +02:00
624997be0f initial version of cli integration tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: 6db32fdefdae49843ed9535b3af1099e6bd2755d
Component: engine
2014-03-29 23:09:40 +02:00