Test Suite - Docker

From Libreswan
Revision as of 17:17, 2 December 2014 by Antony (talk | contribs)
Jump to navigation Jump to search

Libreswan testing suite docker adventures.

Everything below runs as root on Fedora 20

#swantest depend on python 3.3 or later

yum install python3-setproctitle python3-pexpect

# install docker 1.3
yum -y remove docker 
yum -y install docker-io bridge-utils
yum -y update docker-io
systemctl start docker
systemctl enable docker

wget -O /usr/local/bin/pipework  https://github.com/jpetazzo/pipework/raw/master/pipework
chmod a+x /usr/local/bin/pipework

cd /home/build/
# clone an up to date libreswan tree from somewhere to  /home/build/

cd /home/build/libreswan/testing/docker/
# check authorized_keys file edit or add your your keys in there

docker build -t swanbase .
# coffee break. It will download Fedora 20 + about 200 packages 
# my experience on swantest real 19m31.907s, on parallels vm from Toronto real 7m1.228s

# make sure the host has netkey stack loaded 
ipsec _stackmanager start --netkey
ipsec version |grep klips && echo you need netkey

cd /home/build/libreswan/
make programs
cd /home/build/libreswan/testing/pluto/ikev2-37-docker-rw
../../utils/swantest --docker

Docker related diagnostics commands

# show running docker containers
docker ps -a 

# check if you have a proper docker installation?
docker images

# stop ALL containers 
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

# if your tests it create a bunch of bridge devices too. Not all of them are cleaned up.

brctl show

Check if you got correct image

cd /home/build/libreswan/testing/docker

docker build -t swanbase .

root@jes:/home/build/libreswan/testing/docker# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
swanbase            latest              e8e73564a0ae        55 minutes ago      2.84 GB
fedora              20                  7d3f07f8de5f        6 weeks ago         374.1 MB

Prerequisites

The swantest need Python 3.3 or later. It is necessary for subprocess to deal with 100s of threads/processes. Also pexpect is works better in 3.3.