summaryrefslogtreecommitdiff
path: root/server/test
diff options
context:
space:
mode:
authorAndreas Politz <politza@hochschule-trier.de>2017-09-10 10:10:50 +0200
committerAndreas Politz <politza@hochschule-trier.de>2017-09-10 10:13:00 +0200
commit1835a5d9fc2fc944c0554504d978d3eaaddd23b7 (patch)
tree42da82937517d1aa9d6d9a39f76a373aafae7957 /server/test
parentbd843ca3f7569d435673e67ed1dc1513a9d3776f (diff)
Add docker tests for the autobuild script
Diffstat (limited to 'server/test')
-rw-r--r--server/test/Makefile49
-rw-r--r--server/test/docker/lib/yes-or-enter9
-rw-r--r--server/test/docker/templates/Dockerfile.in4
-rw-r--r--server/test/docker/templates/arch.Dockerfile.in6
-rw-r--r--server/test/docker/templates/centos-7.Dockerfile.in3
-rw-r--r--server/test/docker/templates/debian-8.Dockerfile.in4
-rw-r--r--server/test/docker/templates/debian-9.Dockerfile.in4
-rw-r--r--server/test/docker/templates/fedora-24.Dockerfile.in5
-rw-r--r--server/test/docker/templates/fedora-25.Dockerfile.in5
-rw-r--r--server/test/docker/templates/fedora-26.Dockerfile.in5
-rw-r--r--server/test/docker/templates/ubuntu-14.Dockerfile.in4
-rw-r--r--server/test/docker/templates/ubuntu-16.Dockerfile.in4
-rw-r--r--server/test/docker/templates/ubuntu-17.Dockerfile.in4
13 files changed, 106 insertions, 0 deletions
diff --git a/server/test/Makefile b/server/test/Makefile
new file mode 100644
index 0000000..7069c6b
--- /dev/null
+++ b/server/test/Makefile
@@ -0,0 +1,49 @@
+# +-----------------------------------------------------------+
+# * Docker tests for the autobuild script
+# +-----------------------------------------------------------+
+
+# List of available OS.
+DOCKER_OS = $(patsubst %.Dockerfile.in, %, \
+ $(notdir $(wildcard docker/templates/*.Dockerfile.in)))
+
+# Arguments to pass to docker build .
+DOCKER_BUILD_ARGS = -q
+
+# Advice make not to delete these "intermediate" files.
+.PRECIOUS: docker/%.Dockerfile docker/.%.build
+
+.PHONY: all test check docker/build
+
+all: docker/test
+test: docker/test
+check: docker/test
+
+# Create the Dockerfile
+docker/%.Dockerfile: docker/templates/%.Dockerfile.in \
+ docker/templates/Dockerfile.in
+ @echo Creating Dockerfile for target $*
+ cat $^ > $@
+
+# Build the Dockerfile
+docker/.%.build: docker/%.Dockerfile ../autobuild docker/lib
+ @echo Building target $*
+ docker build $(DOCKER_BUILD_ARGS) -t epdfinfo/$* -f $< ../
+ touch $@
+
+# Run the Dockerfile
+docker/%: docker/.%.build
+ @echo Running tests on target $*
+ docker run epdfinfo/$*
+
+# Run all Dockerfiles
+docker/test: docker/build $(patsubst %, docker/%, $(DOCKER_OS))
+
+# Build all Dockerfiles
+docker/build: $(patsubst %, docker/.%.build, $(DOCKER_OS))
+
+clean:
+ rm -f -- docker/.[^.]*.build
+ rm -f -- docker/*.Dockerfile
+
+print:
+ @for os in $(DOCKER_OS); do echo $$os; done | sort
diff --git a/server/test/docker/lib/yes-or-enter b/server/test/docker/lib/yes-or-enter
new file mode 100644
index 0000000..b19cc5a
--- /dev/null
+++ b/server/test/docker/lib/yes-or-enter
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Step over prompts from the package-manager.
+if [ -f /etc/arch-release ]; then
+ yes ''
+else
+ yes
+fi
+
diff --git a/server/test/docker/templates/Dockerfile.in b/server/test/docker/templates/Dockerfile.in
new file mode 100644
index 0000000..f1a9c1e
--- /dev/null
+++ b/server/test/docker/templates/Dockerfile.in
@@ -0,0 +1,4 @@
+ADD . /epdfinfo
+WORKDIR /epdfinfo
+RUN make -s distclean || true
+CMD ["sh", "-c", "sh test/docker/lib/yes-or-enter | ./autobuild"]
diff --git a/server/test/docker/templates/arch.Dockerfile.in b/server/test/docker/templates/arch.Dockerfile.in
new file mode 100644
index 0000000..50e6658
--- /dev/null
+++ b/server/test/docker/templates/arch.Dockerfile.in
@@ -0,0 +1,6 @@
+# -*- dockerfile -*-
+FROM base/archlinux
+RUN pacman -Syu --noconfirm --noprogressbar && \
+ pacman -S --noconfirm --noprogressbar poppler-glib base-devel
+
+
diff --git a/server/test/docker/templates/centos-7.Dockerfile.in b/server/test/docker/templates/centos-7.Dockerfile.in
new file mode 100644
index 0000000..62f2eb4
--- /dev/null
+++ b/server/test/docker/templates/centos-7.Dockerfile.in
@@ -0,0 +1,3 @@
+# -*- dockerfile -*-
+FROM centos:7
+RUN yum update -y && yum install -y gcc gcc-c++ poppler-glib-devel
diff --git a/server/test/docker/templates/debian-8.Dockerfile.in b/server/test/docker/templates/debian-8.Dockerfile.in
new file mode 100644
index 0000000..adcc6d3
--- /dev/null
+++ b/server/test/docker/templates/debian-8.Dockerfile.in
@@ -0,0 +1,4 @@
+# -*- dockerfile -*-
+FROM debian:8
+RUN apt-get update -y && apt-get install -y gcc g++ libpoppler-glib-dev
+
diff --git a/server/test/docker/templates/debian-9.Dockerfile.in b/server/test/docker/templates/debian-9.Dockerfile.in
new file mode 100644
index 0000000..1f4ece7
--- /dev/null
+++ b/server/test/docker/templates/debian-9.Dockerfile.in
@@ -0,0 +1,4 @@
+# -*- dockerfile -*-
+FROM debian:9
+RUN apt-get update -y && apt-get install -y gcc g++ libpoppler-glib-dev
+
diff --git a/server/test/docker/templates/fedora-24.Dockerfile.in b/server/test/docker/templates/fedora-24.Dockerfile.in
new file mode 100644
index 0000000..a2490ad
--- /dev/null
+++ b/server/test/docker/templates/fedora-24.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM fedora:24
+RUN dnf update -y && dnf install -y gcc gcc-c++ poppler-glib-devel
+
+
diff --git a/server/test/docker/templates/fedora-25.Dockerfile.in b/server/test/docker/templates/fedora-25.Dockerfile.in
new file mode 100644
index 0000000..6f5f8c2
--- /dev/null
+++ b/server/test/docker/templates/fedora-25.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM fedora:25
+RUN dnf update -y && dnf install -y gcc gcc-c++ poppler-glib-devel
+
+
diff --git a/server/test/docker/templates/fedora-26.Dockerfile.in b/server/test/docker/templates/fedora-26.Dockerfile.in
new file mode 100644
index 0000000..8c43d1d
--- /dev/null
+++ b/server/test/docker/templates/fedora-26.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM fedora:26
+RUN dnf update -y && dnf install -y gcc gcc-c++ poppler-glib-devel
+
+
diff --git a/server/test/docker/templates/ubuntu-14.Dockerfile.in b/server/test/docker/templates/ubuntu-14.Dockerfile.in
new file mode 100644
index 0000000..1c9aaa7
--- /dev/null
+++ b/server/test/docker/templates/ubuntu-14.Dockerfile.in
@@ -0,0 +1,4 @@
+# -*- dockerfile -*-
+FROM ubuntu:trusty
+RUN apt-get update -y && apt-get install -y gcc g++ libpoppler-glib-dev
+
diff --git a/server/test/docker/templates/ubuntu-16.Dockerfile.in b/server/test/docker/templates/ubuntu-16.Dockerfile.in
new file mode 100644
index 0000000..e7d477e
--- /dev/null
+++ b/server/test/docker/templates/ubuntu-16.Dockerfile.in
@@ -0,0 +1,4 @@
+# -*- dockerfile -*-
+FROM ubuntu:xenial
+RUN apt-get update -y && apt-get install -y gcc g++ libpoppler-glib-dev
+
diff --git a/server/test/docker/templates/ubuntu-17.Dockerfile.in b/server/test/docker/templates/ubuntu-17.Dockerfile.in
new file mode 100644
index 0000000..bf2dc3d
--- /dev/null
+++ b/server/test/docker/templates/ubuntu-17.Dockerfile.in
@@ -0,0 +1,4 @@
+# -*- dockerfile -*-
+FROM ubuntu:artful
+RUN apt-get update -y && apt-get install -y gcc g++ libpoppler-glib-dev
+