Added dockerfile for tests.
It is now possible to run testsuite in docker, using supplied file. See instructions in t/README. Tests are adjusted to run on alpine linux which includes modular builds of openldap server software.
This commit is contained in:
parent
6fad4f3715
commit
7c164a4887
|
|
@ -0,0 +1,49 @@
|
|||
FROM python:2-alpine
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
COPY nginx-ldap-auth-daemon.py /usr/src/app/
|
||||
|
||||
WORKDIR /tests
|
||||
COPY t/ldap-auth.t /tests
|
||||
COPY t/runtests.sh /tests
|
||||
|
||||
# Install required software
|
||||
RUN \
|
||||
apk --no-cache add openldap-dev && \
|
||||
apk --no-cache add openldap && \
|
||||
apk --no-cache add openldap-back-hdb && \
|
||||
apk --no-cache add openldap-clients && \
|
||||
apk --no-cache add openssl && \
|
||||
apk --no-cache add nginx && \
|
||||
apk --no-cache add nginx-mod-http-geoip && \
|
||||
apk --no-cache add nginx-mod-stream-geoip && \
|
||||
apk --no-cache add nginx-mod-http-image-filter && \
|
||||
apk --no-cache add nginx-mod-stream && \
|
||||
apk --no-cache add nginx-mod-mail && \
|
||||
apk --no-cache add nginx-mod-http-perl && \
|
||||
apk --no-cache add nginx-mod-http-xslt-filter && \
|
||||
apk --no-cache add mercurial && \
|
||||
apk --no-cache add perl && \
|
||||
apk --no-cache add --virtual build-dependencies build-base && \
|
||||
pip install python-ldap && \
|
||||
pip install coverage && \
|
||||
apk del build-dependencies
|
||||
|
||||
|
||||
# Install tests
|
||||
RUN \
|
||||
cd /tests && \
|
||||
hg clone https://hg.nginx.org/nginx-tests && \
|
||||
mv ldap-auth.t nginx-tests
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
ENV TEST_LDAP_DAEMON=/usr/sbin/slapd
|
||||
ENV TEST_LDAP_AUTH_DAEMON=/usr/src/app/nginx-ldap-auth-daemon.py
|
||||
ENV TEST_NGINX_BINARY=/usr/sbin/nginx
|
||||
ENV TEST_NGINX_MODULES=/usr/lib/nginx/modules
|
||||
ENV LDAPTLS_REQCERT=never
|
||||
|
||||
WORKDIR /tests/nginx-tests
|
||||
|
||||
CMD ["/tests/runtests.sh"]
|
||||
7
t/README
7
t/README
|
|
@ -1,3 +1,10 @@
|
|||
To run tests use supplied Dockerfile.test:
|
||||
|
||||
docker build -f Dockerfile.test -t my-tag .
|
||||
docker run my-tag
|
||||
|
||||
To run without Docker:
|
||||
|
||||
Test suite is available at http://hg.nginx.org/nginx-tests.
|
||||
Check the http://hg.nginx.org/nginx-tests/file/tip/README file
|
||||
for instructions on how to use it.
|
||||
|
|
|
|||
|
|
@ -264,6 +264,7 @@ access to *
|
|||
by users read
|
||||
by anonymous read
|
||||
|
||||
moduleload back_hdb
|
||||
database hdb
|
||||
suffix "dc=test,dc=local"
|
||||
rootdn "cn=root,dc=test,dc=local"
|
||||
|
|
@ -298,6 +299,7 @@ access to *
|
|||
by users read
|
||||
by anonymous read
|
||||
|
||||
moduleload back_hdb
|
||||
database hdb
|
||||
suffix "ou=Users, dc=test,dc=local"
|
||||
rootdn "cn=root, ou=Users, dc=test,dc=local"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
# shell script to start testsuite and run coverage
|
||||
# to be executed as Dockerfile CMD
|
||||
|
||||
export TEST_NGINX_LEAVE=1
|
||||
rm -rf /tmp/nginx-test-*
|
||||
|
||||
perl ldap-auth.t
|
||||
|
||||
testdir=$(find /tmp -name 'nginx-test-*' -print -quit)
|
||||
cd $testdir
|
||||
coverage2 html && printf "Coverage report: docker cp <cid>:$testdir/htmlcov <hostdir>\n"
|
||||
Loading…
Reference in New Issue