134 lines
3.4 KiB
Bash
134 lines
3.4 KiB
Bash
|
#!/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}"
|