- .devcontainer
- .github
- api
- builder
- cli
-
client
-
buildkit
-
testdata
- README.md
- build_cancel.go
- build_prune.go
- checkpoint_create.go
- checkpoint_create_test.go
- checkpoint_delete.go
- checkpoint_delete_test.go
- checkpoint_list.go
- checkpoint_list_test.go
- client.go
- client_deprecated.go
- client_mock_test.go
- client_test.go
- client_unix.go
- client_windows.go
- config_create.go
- config_create_test.go
- config_inspect.go
- config_inspect_test.go
- config_list.go
- config_list_test.go
- config_remove.go
- config_remove_test.go
- config_update.go
- config_update_test.go
- container_attach.go
- container_commit.go
- container_commit_test.go
- container_copy.go
- container_copy_test.go
- container_create.go
- container_create_test.go
- container_diff.go
- container_diff_test.go
- container_exec.go
- container_exec_test.go
- container_export.go
- container_export_test.go
- container_inspect.go
- container_inspect_test.go
- container_kill.go
- container_kill_test.go
- container_list.go
- container_list_test.go
- container_logs.go
- container_logs_test.go
- container_pause.go
- container_pause_test.go
- container_prune.go
- container_prune_test.go
- container_remove.go
- container_remove_test.go
- container_rename.go
- container_rename_test.go
- container_resize.go
- container_resize_test.go
- container_restart.go
- container_restart_test.go
- container_start.go
- container_start_test.go
- container_stats.go
- container_stats_test.go
- container_stop.go
- container_stop_test.go
- container_top.go
- container_top_test.go
- container_unpause.go
- container_unpause_test.go
- container_update.go
- container_update_test.go
- container_wait.go
- container_wait_test.go
- disk_usage.go
- disk_usage_test.go
- distribution_inspect.go
- distribution_inspect_test.go
- envvars.go
- errors.go
- events.go
- events_test.go
- hijack.go
- hijack_test.go
- image_build.go
- image_build_test.go
- image_create.go
- image_create_test.go
- image_history.go
- image_history_test.go
- image_import.go
- image_import_test.go
- image_inspect.go
- image_inspect_test.go
- image_list.go
- image_list_test.go
- image_load.go
- image_load_test.go
- image_prune.go
- image_prune_test.go
- image_pull.go
- image_pull_test.go
- image_push.go
- image_push_test.go
- image_remove.go
- image_remove_test.go
- image_save.go
- image_save_test.go
- image_search.go
- image_search_test.go
- image_tag.go
- image_tag_test.go
- info.go
- info_test.go
- interface.go
- interface_experimental.go
- interface_stable.go
- login.go
- network_connect.go
- network_connect_test.go
- network_create.go
- network_create_test.go
- network_disconnect.go
- network_disconnect_test.go
- network_inspect.go
- network_inspect_test.go
- network_list.go
- network_list_test.go
- network_prune.go
- network_prune_test.go
- network_remove.go
- network_remove_test.go
- node_inspect.go
- node_inspect_test.go
- node_list.go
- node_list_test.go
- node_remove.go
- node_remove_test.go
- node_update.go
- node_update_test.go
- options.go
- options_test.go
- ping.go
- ping_test.go
- plugin_create.go
- plugin_disable.go
- plugin_disable_test.go
- plugin_enable.go
- plugin_enable_test.go
- plugin_inspect.go
- plugin_inspect_test.go
- plugin_install.go
- plugin_list.go
- plugin_list_test.go
- plugin_push.go
- plugin_push_test.go
- plugin_remove.go
- plugin_remove_test.go
- plugin_set.go
- plugin_set_test.go
- plugin_upgrade.go
- request.go
- request_test.go
- secret_create.go
- secret_create_test.go
- secret_inspect.go
- secret_inspect_test.go
- secret_list.go
- secret_list_test.go
- secret_remove.go
- secret_remove_test.go
- secret_update.go
- secret_update_test.go
- service_create.go
- service_create_test.go
- service_inspect.go
- service_inspect_test.go
- service_list.go
- service_list_test.go
- service_logs.go
- service_logs_test.go
- service_remove.go
- service_remove_test.go
- service_update.go
- service_update_test.go
- swarm_get_unlock_key.go
- swarm_get_unlock_key_test.go
- swarm_init.go
- swarm_init_test.go
- swarm_inspect.go
- swarm_inspect_test.go
- swarm_join.go
- swarm_join_test.go
- swarm_leave.go
- swarm_leave_test.go
- swarm_unlock.go
- swarm_unlock_test.go
- swarm_update.go
- swarm_update_test.go
- task_inspect.go
- task_inspect_test.go
- task_list.go
- task_list_test.go
- task_logs.go
- utils.go
- version.go
- volume_create.go
- volume_create_test.go
- volume_inspect.go
- volume_inspect_test.go
- volume_list.go
- volume_list_test.go
- volume_prune.go
- volume_remove.go
- volume_remove_test.go
- volume_update.go
- volume_update_test.go
-
buildkit
- cmd
-
container
-
stream
- archive_windows.go
- attach_context.go
- container.go
- container_unit_test.go
- container_unix.go
- container_windows.go
- env.go
- env_test.go
- exec.go
- health.go
- history.go
- memory_store.go
- memory_store_test.go
- monitor.go
- mounts_unix.go
- mounts_windows.go
- state.go
- state_test.go
- store.go
- view.go
- view_test.go
-
stream
-
contrib
-
apparmor
-
busybox
-
gitdm
-
httpserver
-
init
-
nnp-test
-
syntax
-
syscall-test
-
udev
- README.md
- check-config.sh
- dockerd-rootless-setuptool.sh
- dockerd-rootless.sh
- dockerize-disk.sh
- download-frozen-image-v2.sh
- editorconfig
- mac-install-bundle.sh
- mkimage-alpine.sh
- mkimage-arch-pacman.conf
- mkimage-arch.sh
- mkimage-archarm-pacman.conf
- mkimage-crux.sh
- mkimage-pld.sh
- mkimage-yum.sh
- nuke-graph-directory.sh
-
apparmor
-
daemon
-
cluster
-
config
-
containerd
-
events
-
graphdriver
-
images
-
initlayer
-
links
-
listeners
-
logger
-
names
-
network
-
snapshotter
-
stats
-
testdata
- apparmor_default.go
- apparmor_default_unsupported.go
- archive.go
- archive_tarcopyoptions.go
- archive_tarcopyoptions_unix.go
- archive_tarcopyoptions_windows.go
- archive_unix.go
- archive_windows.go
- attach.go
- auth.go
- cdi.go
- changes.go
- checkpoint.go
- cluster.go
- commit.go
- configs.go
- configs_linux.go
- configs_unsupported.go
- configs_windows.go
- container.go
- container_linux.go
- container_operations.go
- container_operations_test.go
- container_operations_unix.go
- container_operations_windows.go
- container_unix_test.go
- container_windows.go
- containerfs_linux.go
- content.go
- create.go
- create_unix.go
- create_windows.go
- daemon.go
- daemon_linux.go
- daemon_linux_test.go
- daemon_test.go
- daemon_unix.go
- daemon_unix_test.go
- daemon_unsupported.go
- daemon_windows.go
- daemon_windows_test.go
- debugtrap_unix.go
- debugtrap_unsupported.go
- debugtrap_windows.go
- delete.go
- delete_test.go
- dependency.go
- devices.go
- disk_usage.go
- errors.go
- errors_test.go
- events.go
- events_test.go
- exec.go
- exec_linux.go
- exec_linux_test.go
- exec_windows.go
- export.go
- health.go
- health_test.go
- id.go
- image_service.go
- info.go
- info_unix.go
- info_unix_test.go
- info_windows.go
- inspect.go
- inspect_linux.go
- inspect_test.go
- inspect_windows.go
- keys.go
- keys_unsupported.go
- kill.go
- licensing.go
- licensing_test.go
- links.go
- list.go
- list_test.go
- list_unix.go
- list_windows.go
- logdrivers_linux.go
- logdrivers_windows.go
- logs.go
- logs_test.go
- metrics.go
- metrics_unix.go
- metrics_unsupported.go
- monitor.go
- mounts.go
- names.go
- network.go
- network_windows.go
- nvidia_linux.go
- oci_linux.go
- oci_linux_test.go
- oci_opts.go
- oci_utils.go
- oci_windows.go
- oci_windows_test.go
- pause.go
- prune.go
- reload.go
- reload_test.go
- reload_unix.go
- reload_windows.go
- rename.go
- resize.go
- resize_test.go
- restart.go
- runtime_unix.go
- runtime_unix_test.go
- runtime_windows.go
- seccomp_linux.go
- seccomp_linux_test.go
- seccomp_unsupported.go
- secrets.go
- secrets_linux.go
- secrets_unsupported.go
- secrets_windows.go
- start.go
- start_linux.go
- start_notlinux.go
- start_unix.go
- start_windows.go
- stats.go
- stats_collector.go
- stats_unix.go
- stats_windows.go
- stop.go
- top_unix.go
- top_unix_test.go
- top_windows.go
- unpause.go
- update.go
- update_linux.go
- update_linux_test.go
- update_windows.go
- volumes.go
- volumes_linux.go
- volumes_linux_test.go
- volumes_unit_test.go
- volumes_unix.go
- volumes_windows.go
- wait.go
- workdir.go
-
cluster
- distribution
- dockerversion
- docs
- errdefs
- hack
- image
- integration
-
integration-cli
-
checker
-
cli
-
daemon
-
environment
-
fixtures
-
requirement
-
testdata
- benchmark_test.go
- check_test.go
- daemon_swarm_hack_test.go
- docker_api_attach_test.go
- docker_api_build_test.go
- docker_api_build_windows_test.go
- docker_api_containers_test.go
- docker_api_containers_unix_test.go
- docker_api_containers_windows_test.go
- docker_api_exec_resize_test.go
- docker_api_exec_test.go
- docker_api_images_test.go
- docker_api_inspect_test.go
- docker_api_logs_test.go
- docker_api_network_test.go
- docker_api_stats_test.go
- docker_api_swarm_node_test.go
- docker_api_swarm_service_test.go
- docker_api_swarm_test.go
- docker_api_test.go
- docker_cli_attach_test.go
- docker_cli_attach_unix_test.go
- docker_cli_build_test.go
- docker_cli_build_unix_test.go
- docker_cli_by_digest_test.go
- docker_cli_commit_test.go
- docker_cli_cp_from_container_test.go
- docker_cli_cp_test.go
- docker_cli_cp_to_container_test.go
- docker_cli_cp_to_container_unix_test.go
- docker_cli_cp_utils_test.go
- docker_cli_create_test.go
- docker_cli_daemon_plugins_test.go
- docker_cli_daemon_test.go
- docker_cli_events_test.go
- docker_cli_events_unix_test.go
- docker_cli_exec_test.go
- docker_cli_exec_unix_test.go
- docker_cli_external_volume_driver_test.go
- docker_cli_health_test.go
- docker_cli_history_test.go
- docker_cli_images_test.go
- docker_cli_import_test.go
- docker_cli_info_test.go
- docker_cli_info_unix_test.go
- docker_cli_inspect_test.go
- docker_cli_links_test.go
- docker_cli_login_test.go
- docker_cli_logout_test.go
- docker_cli_logs_test.go
- docker_cli_netmode_test.go
- docker_cli_network_test.go
- docker_cli_network_unix_test.go
- docker_cli_plugins_logdriver_test.go
- docker_cli_plugins_test.go
- docker_cli_port_test.go
- docker_cli_proxy_test.go
- docker_cli_prune_test.go
- docker_cli_prune_unix_test.go
- docker_cli_ps_test.go
- docker_cli_pull_local_test.go
- docker_cli_pull_test.go
- docker_cli_push_test.go
- docker_cli_registry_user_agent_test.go
- docker_cli_restart_test.go
- docker_cli_rmi_test.go
- docker_cli_run_test.go
- docker_cli_run_unix_test.go
- docker_cli_save_load_test.go
- docker_cli_save_load_unix_test.go
- docker_cli_search_test.go
- docker_cli_service_create_test.go
- docker_cli_service_health_test.go
- docker_cli_service_logs_test.go
- docker_cli_service_scale_test.go
- docker_cli_sni_test.go
- docker_cli_start_test.go
- docker_cli_stats_test.go
- docker_cli_swarm_test.go
- docker_cli_swarm_unix_test.go
- docker_cli_top_test.go
- docker_cli_update_test.go
- docker_cli_update_unix_test.go
- docker_cli_userns_test.go
- docker_cli_v2_only_test.go
- docker_cli_volume_test.go
- docker_hub_pull_suite_test.go
- docker_utils_test.go
- events_utils_test.go
- fixtures_linux_daemon_test.go
- requirements_test.go
- requirements_unix_test.go
- requirements_windows_test.go
- test_vars_test.go
- test_vars_unix_test.go
- test_vars_windows_test.go
- utils_test.go
- utils_unix_test.go
- utils_windows_test.go
-
checker
- internal
- layer
- libcontainerd
-
libnetwork
-
bitmap
-
cluster
-
cmd
-
config
-
datastore
-
diagnostic
-
discoverapi
-
docs
-
driverapi
-
drivers
-
drvregistry
-
etchosts
-
internal
-
ipam
-
ipamapi
-
ipams
-
ipamutils
-
ipbits
-
iptables
-
netlabel
-
netutils
-
networkdb
-
ns
-
options
-
osl
-
portallocator
-
portmapper
-
resolvconf
-
scope
-
support
-
types
- .dockerignore
- .gitignore
- README.md
- agent.go
- agent.pb.go
- agent.proto
- controller.go
- controller_linux.go
- controller_others.go
- default_gateway.go
- default_gateway_freebsd.go
- default_gateway_linux.go
- default_gateway_windows.go
- drivers_freebsd.go
- drivers_ipam.go
- drivers_linux.go
- drivers_unsupported.go
- drivers_windows.go
- endpoint.go
- endpoint_cnt.go
- endpoint_info.go
- endpoint_info_unix.go
- endpoint_info_windows.go
- endpoint_test.go
- endpoint_unix_test.go
- error.go
- errors_test.go
- firewall_linux.go
- firewall_linux_test.go
- firewall_others.go
- libnetwork_internal_test.go
- libnetwork_linux_test.go
- libnetwork_unix_test.go
- libnetwork_windows_test.go
- network.go
- network_unix.go
- network_windows.go
- resolver.go
- resolver_test.go
- resolver_unix.go
- resolver_unix_test.go
- resolver_windows.go
- sandbox.go
- sandbox_dns_unix.go
- sandbox_dns_unix_test.go
- sandbox_dns_windows.go
- sandbox_externalkey_unix.go
- sandbox_externalkey_unsupported.go
- sandbox_linux.go
- sandbox_options.go
- sandbox_store.go
- sandbox_unix_test.go
- sandbox_unsupported.go
- service.go
- service_common.go
- service_common_unix_test.go
- service_linux.go
- service_unsupported.go
- service_windows.go
- store.go
- store_linux_test.go
- store_test.go
-
bitmap
- oci
- opts
-
pkg
-
archive
-
authorization
-
broadcaster
-
capabilities
-
chrootarchive
-
containerfs
-
directory
-
dmesg
-
fileutils
-
homedir
-
idtools
-
ioutils
-
jsonmessage
-
longpath
-
meminfo
-
namesgenerator
-
parsers
-
pidfile
-
platform
-
plugingetter
-
plugins
-
pools
-
process
-
progress
-
reexec
-
rootless
-
stack
-
stdcopy
-
streamformatter
-
stringid
-
sysinfo
-
system
-
tailfile
-
tarsum
-
useragent
- README.md
-
archive
- plugin
- profiles
- project
- quota
- reference
- registry
- reports
- restartmanager
- runconfig
- testutil
- vendor
- volume
- .dockerignore
- .gitattributes
- .gitignore
- .golangci.yml
- .mailmap
- AUTHORS
- CONTRIBUTING.md
- Dockerfile
- Dockerfile.simple
- Dockerfile.windows
- Jenkinsfile
- LICENSE
- MAINTAINERS
- Makefile
- NOTICE
- README.md
- ROADMAP.md
- SECURITY.md
- TESTING.md
- VENDORING.md
- codecov.yml
- docker-bake.hcl
- vendor.mod
- vendor.sum
Explanation
This code defines a set of integration tests for the Docker CLI.
Key Components:
- TestMain: The entry point for the test suite. It initializes the test environment, including the Docker daemon and CLI binaries.
- DockerSuite: A base test suite with basic setup and teardown methods. It also provides a timeout handler to dump the daemon stack and quit on timeout.
- DockerRegistrySuite, DockerSchema1RegistrySuite, DockerRegistryAuthHtpasswdSuite, DockerRegistryAuthTokenSuite: Test suites specific to interactions with Docker registries. They set up a registry for testing image operations.
- DockerDaemonSuite: Test suite for testing daemon-level operations. It starts a new daemon for each test.
- DockerSwarmSuite: Test suite for testing Swarm functionalities. It manages multiple daemons in a Swarm cluster.
- DockerPluginSuite: Test suite for testing Docker plugins. It sets up a registry and a basic plugin for testing purposes.
- DockerExternalVolumeSuite: Test suite for testing external volumes.
- DockerNetworkSuite: Test suite for testing Docker networking functionalities.
- DockerHubPullSuite: Test suite for testing pulling images from Docker Hub.
- TestDockerAPISuite, TestDockerBenchmarkSuite, TestDockerCLIAttachSuite … TestDockerCLIVolumeSuite: Individual test suites for specific Docker CLI commands.
Test Environment:
- The test suite uses an
environment.Execution
object to manage the test environment. This object determines whether the tests are running on a local daemon or a remote one. - For local daemon tests, the suite uses
setupLocalInfo()
to configure the binary paths. - The tests also utilize a private registry for image operations.
- The test suite requires several environment variables to be set up, including
DEST
,DOCKER_BUILDKIT
, andDOCKER_HOST
.
Test Execution:
- Each test suite implements
SetUpTest
andTearDownTest
methods to set up and clean up the environment for each test. - The
TestDockerAPISuite
,TestDockerBenchmarkSuite
, etc. tests are executed using thesuite.Run
method, which automatically runs the tests in the corresponding suite. - The tests use the
cli.Docker
function to execute Docker CLI commands and assert the expected results using thegotest.tools/v3/assert
library.
Overall, this code defines a comprehensive set of integration tests for the Docker CLI, ensuring that the CLI functionality works as expected across various scenarios.
Graph
The graph shows the usage of functions within the codebase.
Select a code symbol to view it's graph