summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rwxr-xr-xserver/autobuild42
-rw-r--r--server/test/.gitignore1
-rw-r--r--server/test/Makefile6
-rwxr-xr-xserver/test/docker/lib/run-tests21
-rw-r--r--server/test/docker/templates/Dockerfile.common.in6
-rw-r--r--server/test/docker/templates/emacs-26.Dockerfile.in5
-rw-r--r--server/test/docker/templates/emacs-27.Dockerfile.in5
-rw-r--r--server/test/docker/templates/emacs-28.Dockerfile.in5
-rw-r--r--server/test/docker/templates/emacs-29.Dockerfile.in5
9 files changed, 86 insertions, 10 deletions
diff --git a/server/autobuild b/server/autobuild
index d9f7975..517a30c 100755
--- a/server/autobuild
+++ b/server/autobuild
@@ -239,6 +239,17 @@ os_freebsd() {
return 0
}
+# NetBSD
+os_netbsd() {
+ if ! which uname >/dev/null 2>&1 || [ "$(uname -s)" != "NetBSD" ]; then
+ return 1
+ fi
+ PKGCMD=pkgin
+ PKGARGS=install
+ PACKAGES="autoconf automake poppler-glib png pkgconf"
+ return 0
+}
+
# OpenBSD
os_openbsd() {
if ! which uname >/dev/null 2>&1 || [ "$(uname -s)" != "OpenBSD" ]; then
@@ -353,7 +364,7 @@ os_macos() {
PKG_INSTALL_AS_ROOT=
# brew installs libffi as keg-only, meaning we need to set
# PKG_CONFIG_PATH manually so configure can find it
- export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(brew --prefix libffi)/lib/pkgconfig/"
+ export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(brew --prefix libffi)/lib/pkgconfig/:$(brew --prefix zlib)/lib/pkgconfig/"
elif which port >/dev/null 2>&1; then
PKGCMD=port
PKGARGS=install
@@ -455,6 +466,28 @@ os_opensuse() {
return 0
}
+# Alpine Linux
+os_alpine() {
+ if [ -f "/etc/os-release" ]; then
+ . /etc/os-release
+ if [ "$ID" != "alpine" ]; then
+ return 1
+ fi
+ else
+ return 1
+ fi
+ PACKAGES="autoconf
+ automake
+ libpng-dev
+ poppler-dev
+ glib-dev
+ gcc
+ build-base"
+ PKGCMD=apk
+ PKGARGS="add"
+ return 0
+}
+
# By Parameter --os
os_argument() {
[ -z "$OS" ] && return 1
@@ -463,6 +496,7 @@ os_argument() {
freebsd) os_freebsd "$@";;
arch) os_arch "$@";;
centos) os_centos "$@";;
+ netbsd) os_netbsd "$@";;
openbsd) os_openbsd "$@";;
fedora) os_fedora "$@";;
debian) os_debian "$@";;
@@ -471,6 +505,7 @@ os_argument() {
nixos) os_nixos "$@";;
void) os_void "$@";;
opensuse) os_opensuse "$@";;
+ alpine) os_alpine "$@";;
*) echo "Invalid --os argument: $OS"
exit 1
esac || {
@@ -480,7 +515,8 @@ os_argument() {
}
## +-----------------------------------------------------------+
-## * Figure out were we are, install deps and build the program
+## * Figure out where we are
+## ** install deps and build the program
## +-----------------------------------------------------------+
handle_options "$@"
@@ -490,6 +526,7 @@ os_macos "$@" || \
os_freebsd "$@" || \
os_arch "$@" || \
os_centos "$@" || \
+os_netbsd "$@" || \
os_openbsd "$@" || \
os_fedora "$@" || \
os_debian "$@" || \
@@ -498,6 +535,7 @@ os_msys2 "$@" || \
os_nixos "$@" || \
os_void "$@" || \
os_opensuse "$@" || \
+os_alpine "$@" || \
{
OS_IS_HANDLED=
if [ -z "$DRY_RUN" ]; then
diff --git a/server/test/.gitignore b/server/test/.gitignore
new file mode 100644
index 0000000..aaedb1f
--- /dev/null
+++ b/server/test/.gitignore
@@ -0,0 +1 @@
+.start-vm
diff --git a/server/test/Makefile b/server/test/Makefile
index 303b9a1..26a0f36 100644
--- a/server/test/Makefile
+++ b/server/test/Makefile
@@ -39,10 +39,10 @@ docker/%.Dockerfile: docker/templates/%.Dockerfile.in \
@echo Creating Dockerfile for target $*
cat $^ > $@
-# Build the Docker Image
+# Build the Docker Image. Since we are building a new image, remove the existing container.
docker/.%.build: docker/%.Dockerfile ../autobuild docker/lib
@echo Building target image $*
- podman image build $(DOCKER_BUILD_ARGS) epdfinfo/$* -f $< ../
+ podman image build $(DOCKER_BUILD_ARGS) epdfinfo/$* -f $< ../../
touch $@
# Build the Docker Container
@@ -68,6 +68,8 @@ docker/.%.clean:
docker/clean: $(patsubst %, docker/.%.clean, $(DOCKER_OS))
+test: docker/test
+
clean: docker/clean
rm -f -- docker/.[^.]*.build
rm -f -- docker/.[^.]*.container
diff --git a/server/test/docker/lib/run-tests b/server/test/docker/lib/run-tests
index 43fe5e5..31887bf 100755
--- a/server/test/docker/lib/run-tests
+++ b/server/test/docker/lib/run-tests
@@ -2,8 +2,23 @@
PATH="$(dirname "$0")":$PATH
-set -e
+run_tests_exit_success()
+{
+ echo "==============================="
+ echo " Elisp Tests succeeded. :O) "
+ echo "==============================="
+ exit 0
+}
-yes-or-enter | ./autobuild -i /bin
-yes-or-enter | ./autobuild -i /usr/bin | \
+set -e
+# Check that install completes successfully
+yes-or-enter | ./server/autobuild -i /bin
+# Check that re-install skips package installation
+yes-or-enter | ./server/autobuild -i /usr/bin | \
grep -q "Skipping package installation (already installed)"
+# Check that lisp tests run correctly, if emacs is installed and available on PATH
+echo
+if which emacs > /dev/null 2> /dev/null; then
+ echo "Emacs found installed! Running elisp tests"
+ make test && run_tests_exit_success
+fi
diff --git a/server/test/docker/templates/Dockerfile.common.in b/server/test/docker/templates/Dockerfile.common.in
index 083b19a..142f062 100644
--- a/server/test/docker/templates/Dockerfile.common.in
+++ b/server/test/docker/templates/Dockerfile.common.in
@@ -1,4 +1,4 @@
-ADD . /epdfinfo
-WORKDIR /epdfinfo
+COPY . /pdf-tools
+WORKDIR /pdf-tools
RUN make -s distclean || true
-CMD ["sh", "./test/docker/lib/run-tests"]
+CMD ["sh", "./server/test/docker/lib/run-tests"]
diff --git a/server/test/docker/templates/emacs-26.Dockerfile.in b/server/test/docker/templates/emacs-26.Dockerfile.in
new file mode 100644
index 0000000..088a991
--- /dev/null
+++ b/server/test/docker/templates/emacs-26.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM silex/emacs:26-ci-cask
+ARG DEBIAN_FRONTEND=noninteractive
+# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild
+RUN apt-get update -y && apt-get install -y make tzdata
diff --git a/server/test/docker/templates/emacs-27.Dockerfile.in b/server/test/docker/templates/emacs-27.Dockerfile.in
new file mode 100644
index 0000000..50cd820
--- /dev/null
+++ b/server/test/docker/templates/emacs-27.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM silex/emacs:27-ci-cask
+ARG DEBIAN_FRONTEND=noninteractive
+# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild
+RUN apt-get update -y && apt-get install -y make tzdata
diff --git a/server/test/docker/templates/emacs-28.Dockerfile.in b/server/test/docker/templates/emacs-28.Dockerfile.in
new file mode 100644
index 0000000..c6895ac
--- /dev/null
+++ b/server/test/docker/templates/emacs-28.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM silex/emacs:28-ci-cask
+ARG DEBIAN_FRONTEND=noninteractive
+# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild
+RUN apt-get update -y && apt-get install -y make tzdata
diff --git a/server/test/docker/templates/emacs-29.Dockerfile.in b/server/test/docker/templates/emacs-29.Dockerfile.in
new file mode 100644
index 0000000..edbf764
--- /dev/null
+++ b/server/test/docker/templates/emacs-29.Dockerfile.in
@@ -0,0 +1,5 @@
+# -*- dockerfile -*-
+FROM silex/emacs:master-ci-cask
+ARG DEBIAN_FRONTEND=noninteractive
+# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild
+RUN apt-get update -y && apt-get install -y make tzdata