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. | Test suite is available at http://hg.nginx.org/nginx-tests. | ||||||
| Check the http://hg.nginx.org/nginx-tests/file/tip/README file | Check the http://hg.nginx.org/nginx-tests/file/tip/README file | ||||||
| for instructions on how to use it. | for instructions on how to use it. | ||||||
|  |  | ||||||
|  | @ -264,6 +264,7 @@ access to * | ||||||
|   by users read |   by users read | ||||||
|   by anonymous read |   by anonymous read | ||||||
| 
 | 
 | ||||||
|  | moduleload     back_hdb | ||||||
| database hdb | database hdb | ||||||
| suffix "dc=test,dc=local" | suffix "dc=test,dc=local" | ||||||
| rootdn "cn=root,dc=test,dc=local" | rootdn "cn=root,dc=test,dc=local" | ||||||
|  | @ -298,6 +299,7 @@ access to * | ||||||
|   by users read |   by users read | ||||||
|   by anonymous read |   by anonymous read | ||||||
| 
 | 
 | ||||||
|  | moduleload     back_hdb | ||||||
| database hdb | database hdb | ||||||
| suffix "ou=Users, dc=test,dc=local" | suffix "ou=Users, dc=test,dc=local" | ||||||
| rootdn "cn=root, 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