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