Browse Source

Add mixed case tests, rename duckdns tests

pull/539/head
Tim Kimber 6 years ago
parent
commit
125fabdc33
No known key found for this signature in database GPG Key ID: 3E1804964E76BD18
13 changed files with 125 additions and 19 deletions
  1. +4
    -4
      .github/workflows/run-all-tests.yml
  2. +24
    -0
      test/10-mixed-case-staging.bats
  3. +45
    -0
      test/10-mixed-case.bats
  4. +1
    -1
      test/7-staging-dns01-dig.bats
  5. +1
    -1
      test/7-staging-dns01-nslookup.bats
  6. +2
    -2
      test/8-staging-ecdsa.bats
  7. +34
    -0
      test/9-test--all.bats
  8. +0
    -0
      test/Dockerfile-centos7-staging
  9. +0
    -0
      test/Dockerfile-ubuntu-staging
  10. +5
    -5
      test/run-test.cmd
  11. +3
    -3
      test/run-test.sh
  12. +0
    -0
      test/test-config/getssl-staging-dns01.cfg
  13. +6
    -3
      test/test_helper.bash

+ 4
- 4
.github/workflows/run-all-tests.yml View File

@ -31,14 +31,14 @@ jobs:
run: docker-compose up -d --build
- name: Run test suite on CentOS7
run: test/run-test.sh centos7
test-centos7-duckdns:
test-centos7-staging:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build the docker-compose stack
run: docker-compose up -d --build
- name: Run test suite on CentOS7 against Staging using DuckDNS
run: test/run-test.sh centos7-duckdns
run: test/run-test.sh centos7-staging
test-debian:
runs-on: ubuntu-latest
steps:
@ -71,11 +71,11 @@ jobs:
run: docker-compose up -d --build
- name: Run test suite on Ubuntu18
run: test/run-test.sh ubuntu18
test-ubuntu-duckdns:
test-ubuntu-staging:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build the docker-compose stack
run: docker-compose up -d --build
- name: Run test suite on Ubuntu against Staging using DuckDNS
run: test/run-test.sh ubuntu-duckdns
run: test/run-test.sh ubuntu-staging

+ 24
- 0
test/10-mixed-case-staging.bats View File

@ -0,0 +1,24 @@
#! /usr/bin/env bats
load '/bats-support/load.bash'
load '/bats-assert/load.bash'
load '/getssl/test/test_helper.bash'
@test "Check can create certificate if domain is not lowercase using staging server and DuckDNS" {
if [ -z "$STAGING" ]; then
skip "Running internal tests, skipping external test"
fi
CONFIG_FILE="getssl-staging-dns01.cfg"
GETSSL_CMD_HOST=$(echo $GETSSL_HOST | tr a-z A-Z)
setup_environment
init_getssl
create_certificate
assert_success
refute_output --regexp '[Ff][Aa][Ii][Ll][Ee][Dd]'
refute_output --regexp '[Ee][Rr][Rr][Oo][Rr]'
refute_output --regexp '[Ww][Aa][Rr][Nn][Ii][Nn][Gg]'
}

+ 45
- 0
test/10-mixed-case.bats View File

@ -0,0 +1,45 @@
#! /usr/bin/env bats
load '/bats-support/load.bash'
load '/bats-assert/load.bash'
load '/getssl/test/test_helper.bash'
# This is run for every test
setup() {
export CURL_CA_BUNDLE=/root/pebble-ca-bundle.crt
}
@test "Check that HTTP-01 verification works if the domain is not lowercase" {
if [ -n "$STAGING" ]; then
skip "Using staging server, skipping internal test"
fi
CONFIG_FILE="getssl-http01.cfg"
GETSSL_CMD_HOST=$(echo $GETSSL_HOST | tr a-z A-Z)
setup_environment
init_getssl
create_certificate
assert_success
refute_output --regexp '[Ff][Aa][Ii][Ll][Ee][Dd]'
refute_output --regexp '[Ee][Rr][Rr][Oo][Rr]'
refute_output --regexp '[Ww][Aa][Rr][Nn][Ii][Nn][Gg]'
}
@test "Check that DNS-01 verification works if the domain is not lowercase" {
if [ -n "$STAGING" ]; then
skip "Using staging server, skipping internal test"
fi
CONFIG_FILE="getssl-dns01.cfg"
GETSSL_CMD_HOST=$(echo $GETSSL_HOST | tr a-z A-Z)
setup_environment
init_getssl
create_certificate
assert_success
refute_output --regexp '[Ff][Aa][Ii][Ll][Ee][Dd]'
refute_output --regexp '[Ee][Rr][Rr][Oo][Rr]'
refute_output --regexp '[Ww][Aa][Rr][Nn][Ii][Nn][Gg]'
}

test/7-duckdns-dns01-dig.bats → test/7-staging-dns01-dig.bats View File


test/7-duckdns-dns01-nslookup.bats → test/7-staging-dns01-nslookup.bats View File


test/8-duckdns-ecdsa.bats → test/8-staging-ecdsa.bats View File


+ 34
- 0
test/9-test--all.bats View File

@ -0,0 +1,34 @@
#! /usr/bin/env bats
load '/bats-support/load.bash'
load '/bats-assert/load.bash'
load '/getssl/test/test_helper.bash'
# This is run for every test
setup() {
export CURL_CA_BUNDLE=/root/pebble-ca-bundle.crt
export PATH=$PATH:/getssl
}
@test "Create new certificate using --all" {
if [ -n "$STAGING" ]; then
skip "Using staging server, skipping internal test"
fi
# Setup
CONFIG_FILE="getssl-http01.cfg"
setup_environment
init_getssl
cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/${GETSSL_HOST}/getssl.cfg"
# Run test
run ${CODE_DIR}/getssl --all
# Check success conditions
assert_success
refute_output --regexp '[Ff][Aa][Ii][Ll][Ee][Dd]'
refute_output --regexp '[Ee][Rr][Rr][Oo][Rr]'
refute_output --regexp '[Ww][Aa][Rr][Nn][Ii][Nn][Gg]'
}

test/Dockerfile-centos7-duckdns → test/Dockerfile-centos7-staging View File


test/Dockerfile-ubuntu-duckdns → test/Dockerfile-ubuntu-staging View File


+ 5
- 5
test/run-test.cmd View File

@ -7,8 +7,8 @@ IF %2.==. GOTO NoCmd
set COMMAND=%2 %3
:CheckAlias
REM check if OS *contains* duckdns
IF NOT x%OS:duckdns=%==x%OS% GOTO duckdns
REM check if OS *contains* staging
IF NOT x%OS:staging=%==x%OS% GOTO staging
set ALIAS=%OS%.getssl.test
set STAGING=
GOTO Run
@ -22,8 +22,8 @@ REM set COMMAND=/getssl/test/run-bats.sh
set COMMAND=bats /getssl/test
GOTO CheckAlias
:duckdns
set ALIAS=%OS:-duckdns=%-getssl.duckdns.org
:staging
set ALIAS=%OS:-staging=%-getssl.duckdns.org
set STAGING=--env STAGING=true
:Run
@ -33,7 +33,7 @@ docker build --rm -f "test\Dockerfile-%OS%" -t getssl-%OS% .
@echo on
docker run -it ^
--env GETSSL_HOST=%ALIAS% %STAGING% ^
--env GETSSL_OS=%OS:-duckdns=% ^
--env GETSSL_OS=%OS:-staging=% ^
-v %cd%:/getssl ^
--rm ^
--network %CurrDirName%_acmenet ^


+ 3
- 3
test/run-test.sh View File

@ -14,8 +14,8 @@ else
COMMAND="bats /getssl/test"
fi
if [[ "$OS" == *"duckdns"* ]]; then
ALIAS="${OS%-duckdns}-getssl.duckdns.org"
if [[ "$OS" == *"staging"* ]]; then
ALIAS="${OS%-staging}-getssl.duckdns.org"
STAGING="--env STAGING=true"
else
ALIAS="$OS.getssl.test"
@ -26,7 +26,7 @@ docker build --rm -f "test/Dockerfile-$OS" -t "getssl-$OS" .
# shellcheck disable=SC2086
docker run \
--env GETSSL_HOST=$ALIAS $STAGING \
--env GETSSL_OS=${OS%-duckdns} \
--env GETSSL_OS=${OS%-staging} \
-v "$(pwd)":/getssl \
--rm \
--network ${PWD##*/}_acmenet \


test/test-config/getssl-duckdns01.cfg → test/test-config/getssl-staging-dns01.cfg View File


+ 6
- 3
test/test_helper.bash View File

@ -21,7 +21,7 @@ cleanup_environment() {
init_getssl() {
# Run initialisation (create account key, etc)
run ${CODE_DIR}/getssl -c "$GETSSL_HOST"
run ${CODE_DIR}/getssl -c "$GETSSL_CMD_HOST"
assert_success
[ -d "$INSTALL_DIR/.getssl" ]
}
@ -29,9 +29,9 @@ init_getssl() {
create_certificate() {
# Create certificate
cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/${GETSSL_HOST}/getssl.cfg"
cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/${GETSSL_CMD_HOST}/getssl.cfg"
# shellcheck disable=SC2086
run ${CODE_DIR}/getssl $1 "$GETSSL_HOST"
run ${CODE_DIR}/getssl $1 "$GETSSL_CMD_HOST"
}
# start nginx in background on alpine via supervisord
@ -68,6 +68,9 @@ fi
export GETSSL_IP
GETSSL_CMD_HOST=$GETSSL_HOST
export GETSSL_CMD_HOST
if [ ! -f ${INSTALL_DIR}/pebble.minica.pem ]; then
wget --quiet --no-clobber https://raw.githubusercontent.com/letsencrypt/pebble/master/test/certs/pebble.minica.pem 2>&1
CERT_FILE=/etc/ssl/certs/ca-certificates.crt


Loading…
Cancel
Save