Implemented a FakeStorage alternative that supports spinning up a remote container on DOCKER_TEST_HOST to serve files over an offline-compiled Go static web server image so that tests which use URLs in Dockerfile can build them over at the daemon side. `fakeStorage` function now automatically chooses if it should use a local httptest.Server or a remote container. This fixes the following tests when running against a remote daemon: - `TestBuildCacheADD` - `TestBuildCopyWildcardNoFind` - `TestBuildCopyWildcardCache` - `TestBuildADDRemoteFileWithCache` - `TestBuildADDRemoteFileWithoutCache` - `TestBuildADDRemoteFileMTime` - `TestBuildADDLocalAndRemoteFilesWithCache` - `TestBuildADDLocalAndRemoteFilesWithoutCache` - `TestBuildFromURLWithF` - `TestBuildApiDockerFileRemote` Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com> Upstream-commit: 2e95bb5f1a65d90f412568d6df82a9e2cdd3e790 Component: engine
32 lines
780 B
Bash
32 lines
780 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
DEST=$1
|
|
|
|
bundle_test_integration_cli() {
|
|
go_test_dir ./integration-cli
|
|
}
|
|
|
|
# subshell so that we can export PATH without breaking other things
|
|
(
|
|
source "$(dirname "$BASH_SOURCE")/.integration-daemon-start"
|
|
|
|
# we need to wrap up everything in between integration-daemon-start and
|
|
# integration-daemon-stop to make sure we kill the daemon and don't hang,
|
|
# even and especially on test failures
|
|
didFail=
|
|
if ! {
|
|
source "$(dirname "$BASH_SOURCE")/.ensure-busybox"
|
|
source "$(dirname "$BASH_SOURCE")/.ensure-httpserver"
|
|
source "$(dirname "$BASH_SOURCE")/.ensure-emptyfs"
|
|
|
|
bundle_test_integration_cli
|
|
}; then
|
|
didFail=1
|
|
fi
|
|
|
|
source "$(dirname "$BASH_SOURCE")/.integration-daemon-stop"
|
|
|
|
[ -z "$didFail" ] # "set -e" ftw
|
|
) 2>&1 | tee -a $DEST/test.log
|