mirror of
https://github.com/containers/podman.git
synced 2025-06-19 08:09:12 +08:00

- Added alias 'container()' to image model for CreateContainer() - Fixed return in containers_create.go to wrap error in varlink exception - Added a wait time to container.kill(), number of seconds to wait for the container to change state - Refactored cached_property() to use system libraries - Refactored tests to speed up performance Signed-off-by: Jhon Honce <jhonce@redhat.com> Closes: #821 Approved by: rhatdan
118 lines
2.6 KiB
Bash
Executable File
118 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# podman needs to play some games with resources
|
|
if [[ $(id -u) != 0 ]]; then
|
|
echo >&2 $0 must be run as root.
|
|
exit 2
|
|
fi
|
|
|
|
while getopts "vh" arg; do
|
|
case $arg in
|
|
v ) VERBOSE='-v' ;;
|
|
h ) echo >2 $0 [-v] [-h] [test.TestCase|test.TestCase.step] ; exit 2 ;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
|
|
# Create temporary directory for storage
|
|
export TMPDIR=`mktemp -d /tmp/podman.XXXXXXXXXX`
|
|
|
|
function umount {
|
|
# xargs -r always ran once, so write any mount points to file first
|
|
mount |awk "/$1/"' { print $3 }' >${TMPDIR}/mounts
|
|
if [[ -s ${TMPDIR}/mounts ]]; then
|
|
xargs <${TMPDIR}/mounts -t umount
|
|
fi
|
|
}
|
|
|
|
function cleanup {
|
|
umount '^(shm|nsfs)'
|
|
umount '\/run\/netns'
|
|
rm -fr ${TMPDIR}
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
# setup path to find new binaries _NOT_ system binaries
|
|
if [[ ! -x ../../bin/podman ]]; then
|
|
echo 1>&2 Cannot find podman binary from libpod root directory, Or, run \"make binaries\"
|
|
exit 1
|
|
fi
|
|
export PATH=../../bin:$PATH
|
|
|
|
function showlog {
|
|
[ -s "$1" ] && (echo $1 =====; cat "$1"; echo)
|
|
}
|
|
|
|
# Need a location to store the podman socket
|
|
mkdir -p ${TMPDIR}/{podman,crio,crio-run,cni/net.d}
|
|
|
|
# Cannot be done in python unittest fixtures. EnvVar not picked up.
|
|
export REGISTRIES_CONFIG_PATH=${TMPDIR}/registry.conf
|
|
cat >$REGISTRIES_CONFIG_PATH <<-EOT
|
|
[registries.search]
|
|
registries = ['docker.io']
|
|
[registries.insecure]
|
|
registries = []
|
|
[registries.block]
|
|
registries = []
|
|
EOT
|
|
|
|
export CNI_CONFIG_PATH=${TMPDIR}/cni/net.d
|
|
cat >$CNI_CONFIG_PATH/87-podman-bridge.conflist <<-EOT
|
|
{
|
|
"cniVersion": "0.3.0",
|
|
"name": "podman",
|
|
"plugins": [{
|
|
"type": "bridge",
|
|
"bridge": "cni0",
|
|
"isGateway": true,
|
|
"ipMasq": true,
|
|
"ipam": {
|
|
"type": "host-local",
|
|
"subnet": "10.88.0.0/16",
|
|
"routes": [{
|
|
"dst": "0.0.0.0/0"
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
"type": "portmap",
|
|
"capabilities": {
|
|
"portMappings": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
EOT
|
|
|
|
export PODMAN_HOST="unix:${TMPDIR}/podman/io.projectatomic.podman"
|
|
PODMAN_ARGS="--storage-driver=vfs\
|
|
--root=${TMPDIR}/crio\
|
|
--runroot=${TMPDIR}/crio-run\
|
|
--cni-config-dir=$CNI_CONFIG_PATH\
|
|
"
|
|
PODMAN="podman $PODMAN_ARGS"
|
|
|
|
# document what we're about to do...
|
|
$PODMAN --version
|
|
|
|
set -x
|
|
# Run podman in background without systemd for test purposes
|
|
$PODMAN varlink --timeout=0 ${PODMAN_HOST} >/tmp/test_runner.output 2>&1 &
|
|
|
|
if [[ -z $1 ]]; then
|
|
export PYTHONPATH=.
|
|
python3 -m unittest discover -s . $VERBOSE
|
|
else
|
|
export PYTHONPATH=.:./test
|
|
python3 -m unittest $1 $VERBOSE
|
|
fi
|
|
|
|
set +x
|
|
pkill -9 podman
|
|
pkill -9 conmon
|
|
|
|
showlog /tmp/test_runner.output
|
|
showlog /tmp/alpine.log
|
|
showlog /tmp/busybox.log
|