mirror of https://github.com/docker/docs.git
46 lines
1.3 KiB
Bash
46 lines
1.3 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load ../helpers
|
|
|
|
function teardown() {
|
|
swarm_manage_cleanup
|
|
stop_docker
|
|
}
|
|
|
|
@test "docker attach" {
|
|
start_docker_with_busybox 2
|
|
swarm_manage
|
|
|
|
# container run in background
|
|
docker_swarm run -d -i --name test_container busybox sh -c "head -n 1; echo output"
|
|
|
|
# inject input into the container
|
|
attach_output=`echo input | docker_swarm attach test_container`
|
|
# unfortunately, we cannot test `attach_output` because attach is not
|
|
# properly returning the output (see docker/docker#12974)
|
|
run docker_swarm logs test_container
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"input"* ]]
|
|
[[ "${output}" == *"output"* ]]
|
|
}
|
|
|
|
@test "docker attach through websocket" {
|
|
skip
|
|
CLIENT_API_VERSION="v1.17"
|
|
start_docker_with_busybox 2
|
|
swarm_manage
|
|
|
|
#create a container
|
|
docker_swarm run -d --name test_container busybox sleep 1000
|
|
|
|
# test attach-ws api
|
|
# jimmyxian/centos7-wssh is an image with websocket CLI(WSSH) wirtten in Python
|
|
# if connected successful, it returns two lines, "Session Open" and "Session Closed"
|
|
# Note: with stdout=1&stdin=1&stream=1: it can be used as SSH
|
|
URL="ws://${SWARM_HOST}/${CLIENT_API_VERSION}/containers/test_container/attach/ws?stderr=1"
|
|
run docker_host run --rm --net=host jimmyxian/centos7-wssh wssh $URL
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"Session Open"* ]]
|
|
[[ "${output}" == *"Session Closed"* ]]
|
|
}
|