1
0
Fork 0
golang-forgejo-f3-gof3/tests/run.sh

134 lines
3.4 KiB
Bash
Raw Normal View History

#!/bin/bash
# SPDX-License-Identifier: MIT
PS4='${BASH_SOURCE[0]}:$LINENO: ${FUNCNAME[0]}: '
set -e
TESTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
export PATH=$TESTDIR/setup-forgejo:$PATH
if test "$SCRATCHDIR"; then
mkdir -p $SCRATCHDIR
else
SCRATCHDIR=$(mktemp -d)
trap "rm -fr $SCRATCHDIR" EXIT
fi
SELF_DIR="$TESTDIR/end-to-end"
SELF="$TESTDIR/end-to-end/end-to-end.sh"
FORGEJO_INSTANCE=https://code.forgejo.org
source $SELF_DIR/lib/lib.sh
source $SELF_DIR/upgrade/upgrade.sh
GO=$(go env GOROOT)/bin/go
HOVERFLY_VERSION=1.11.0 # renovate: datasource=github-tags depName=SpectoLabs/hoverfly
function hoverfly_version() {
echo ${HOVERFLY_VERSION}
}
GITEA_VERSION=1.23 # renovate: datasource=docker depName=gitea/gitea
function gitea_version() {
echo ${GITEA_VERSION}
}
FORGEJO_VERSION=10.0 # renovate: datasource=docker depName=data.forgejo.org/forgejo/forgejo
function forgejo_version() {
echo ${FORGEJO_VERSION}
}
GITLAB_VERSION=17.11.1-ce.0 # renovate: datasource=docker depName=gitlab/gitlab-ce
function gitlab_version() {
echo ${GITLAB_VERSION}
}
function test_run_coverage() {
local name=$1
shift
local coveragedir="$SCRATCHDIR/coverage-$name"
mkdir -p $coveragedir
rm -f $coveragedir/*
$GO test -cover -coverpkg code.forgejo.org/f3/gof3/... "$@" -args -test.gocoverdir=$coveragedir
}
function test_merge_coverage() {
local coveragedirs=$(ls --directory --width=0 --format=commas $SCRATCHDIR/coverage-* | tr -d ' ')
rm -fr $SCRATCHDIR/merged*
mkdir -p $SCRATCHDIR/merged
$GO tool covdata merge -i=$coveragedirs -o $SCRATCHDIR/merged
$GO tool covdata textfmt -i=$SCRATCHDIR/merged -o $SCRATCHDIR/merged.out
}
function test_display_coverage() {
test_merge_coverage
echo "Coverage percentage per package"
$GO tool covdata percent -i=$SCRATCHDIR/merged
}
function run_forgejo() {
local version=$FORGEJO_VERSION
echo "========= Forgejo driver compliance with version $version"
stop_forgejo $TESTDIR/forgejo-app.ini
reset_forgejo $TESTDIR/forgejo-app.ini
start_forgejo $version $TESTDIR/forgejo-app.ini
}
function test_forgejo() {
run_forgejo
GOF3_FORGEJO_HOST_PORT=$(get_host_port $TESTDIR/forgejo-app.ini) test_run_coverage forgejo code.forgejo.org/f3/gof3/v3/...
}
function run_gitea() {
local version=$GITEA_VERSION
echo "========= Gitea driver compliance with version $version"
stop_forgejo $TESTDIR/gitea-app.ini
reset_forgejo $TESTDIR/gitea-app.ini
start_gitea $version $TESTDIR/gitea-app.ini
}
function test_gitea() {
local token="$1"
GITEA_AUTHORIZATION_HEADER="Authorization: token $token"
run_gitea
GOF3_GITEA_HOST_PORT=$(get_host_port $TESTDIR/gitea-app.ini) test_run_coverage gitea -run=TestF3Forge/gitea code.forgejo.org/f3/gof3/v3/tree/tests/...
}
function run_gitlab() {
local version=gitlab/gitlab-ce:${GITLAB_VERSION}
echo "========= GitLab driver compliance with version $version"
stop_gitlab
start_gitlab $version
}
function test_gitlab() {
run_gitlab
GOF3_GITLAB_HOST_PORT=$IP:8181 test_run_coverage gitlab -run=TestF3Forge/gitlab code.forgejo.org/f3/gof3/v3/tree/tests/...
}
function run() {
test_forgejo
test_gitlab
test_display_coverage
}
function prepare_container() {
$SUDO apt-get install -y -qq skopeo wget # replace with gitlab_install_dependencies
forgejo-dependencies.sh install_docker
forgejo-binary.sh ensure_user forgejo
mkdir -p /srv/forgejo-binaries
chown -R forgejo /srv
chmod -R +x /srv
clobber
}
"${@:-run}"