aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/.ci/local
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2021-07-31 17:39:46 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2021-07-31 17:39:46 +0300
commit8d2422274ae948f7412b6960597f5de91f3d8830 (patch)
tree88cc766fb5b0b11b685840dde7a896600583be6f /.ci/local
parentrename "ssh" to "clone_via_ssh" in config (diff)
downloadcgitize-8d2422274ae948f7412b6960597f5de91f3d8830.tar.gz
cgitize-8d2422274ae948f7412b6960597f5de91f3d8830.zip
move all tests to test/
Diffstat (limited to '.ci/local')
-rwxr-xr-x.ci/local/test.sh229
1 files changed, 0 insertions, 229 deletions
diff --git a/.ci/local/test.sh b/.ci/local/test.sh
deleted file mode 100755
index 088539b..0000000
--- a/.ci/local/test.sh
+++ /dev/null
@@ -1,229 +0,0 @@
-#!/usr/bin/env bash
-
-set -o errexit -o nounset -o pipefail
-
-script_dir="$( dirname -- "${BASH_SOURCE[0]}" )"
-script_dir="$( cd -- "$script_dir" && pwd )"
-readonly script_dir
-
-upstream_repo_dir=
-readonly etc_dir="$script_dir/etc"
-readonly cgitize_toml_path="$etc_dir/cgitize.toml"
-readonly output_dir="$script_dir/output"
-
-cleanup() {
- echo
- echo ----------------------------------------------------------------------
- echo Cleaning up
- echo ----------------------------------------------------------------------
-
- echo "Removing upstream repository directory: $upstream_repo_dir"
- rm -rf -- "$upstream_repo_dir"
- echo "Removing etc directory: $etc_dir"
- rm -rf -- "$etc_dir"
- echo "Removing output directory: $output_dir"
- rm -rf -- "$output_dir"
-}
-
-setup_upstream_repo() {
- echo
- echo ----------------------------------------------------------------------
- echo Setting up upstream repository
- echo ----------------------------------------------------------------------
-
- upstream_repo_dir="$( mktemp -d )"
- pushd -- "$upstream_repo_dir" > /dev/null
-
- git init
- echo '1' > 1.txt
- git add .
- git commit -m 'first commit'
- echo '2' > 2.txt
- git add .
- git commit -m 'second commit'
-
- popd > /dev/null
-}
-
-add_commits() {
- echo
- echo ----------------------------------------------------------------------
- echo Adding new commits
- echo ----------------------------------------------------------------------
-
- pushd -- "$upstream_repo_dir" > /dev/null
-
- echo '3' > 3.txt
- git add .
- git commit -m 'third commit'
-
- popd > /dev/null
-}
-
-setup_cgitize_toml() {
- echo
- echo ----------------------------------------------------------------------
- echo cgitize.toml
- echo ----------------------------------------------------------------------
-
- local conf_dir
- conf_dir="$( dirname -- "$cgitize_toml_path" )"
- mkdir -p -- "$conf_dir"
-
- cat <<EOF | tee "$cgitize_toml_path"
-output_dir = "$output_dir"
-
-[repositories.test_repo]
-name = "test_repo"
-clone_url = "$upstream_repo_dir"
-EOF
-}
-
-setup_cgitize() {
- setup_cgitize_toml
-}
-
-setup_bare() {
- setup_upstream_repo
- setup_cgitize
-}
-
-setup_workdir() {
- setup_bare
-
- echo
- echo ----------------------------------------------------------------------
- echo Setting up local repository clone
- echo ----------------------------------------------------------------------
-
- mkdir -p -- "$output_dir"
- git clone --quiet -- "$upstream_repo_dir" "$output_dir/test_repo"
-}
-
-cgitize() {
- echo
- echo ----------------------------------------------------------------------
- echo Running cgitize
- echo ----------------------------------------------------------------------
-
- python3 -m cgitize.main --config "$cgitize_toml_path" --verbose
-}
-
-check_contains() {
- if [ "$#" -lt 1 ]; then
- echo "usage: ${FUNCNAME[0]} TEST_STRING [PATTERN...]" >&2
- return 1
- fi
-
- local test_string="$1"
- shift
-
- local pattern
- for pattern; do
- # Be careful to _not_ use grep -q, since this fucks stuff up:
- # https://mywiki.wooledge.org/BashPitfalls#pipefail.
- if ! echo "$test_string" | grep --fixed-strings -- "$pattern" > /dev/null; then
- echo "${FUNCNAME[0]}: couldn't find the following pattern: $pattern" >&2
- return 1
- fi
- done
-}
-
-verify_commits() {
- # This is fucking stupid, but otherwise stuff like `if verify_commits;`
- # doesn't work: https://stackoverflow.com/q/4072984/514684
- # TODO: figure this out?
- pushd -- "$output_dir" > /dev/null &&
- cd -- test_repo &&
- local output &&
- output="$( git log --oneline )" &&
- echo "$output" &&
- check_contains "$output" "$@" &&
- popd > /dev/null
-}
-
-verify_initial_commits() {
- echo
- echo ----------------------------------------------------------------------
- echo Checking the initial commits
- echo ----------------------------------------------------------------------
-
- verify_commits 'first commit' 'second commit'
-}
-
-verify_added_commits() {
- echo
- echo ----------------------------------------------------------------------
- echo Checking the added commits
- echo ----------------------------------------------------------------------
-
- verify_commits 'first commit' 'second commit' 'third commit'
-}
-
-test_bare() {
- echo
- echo ======================================================================
- echo "${FUNCNAME[0]}"
- echo ======================================================================
-
- setup_bare
- cgitize
- verify_initial_commits
- add_commits
- cgitize
- verify_added_commits
- cleanup
-}
-
-test_workdir() {
- echo
- echo ======================================================================
- echo "${FUNCNAME[0]}"
- echo ======================================================================
-
- setup_workdir
- cgitize
- verify_initial_commits
- add_commits
- cgitize
- verify_added_commits
- cleanup
-}
-
-test_failure() {
- echo
- echo ======================================================================
- echo "${FUNCNAME[0]}"
- echo ======================================================================
-
- setup_bare
- cgitize
- verify_initial_commits
- add_commits
-
- echo
- echo ----------------------------------------------------------------------
- echo Removing upstream repository
- echo ----------------------------------------------------------------------
- rm -rf -- "$upstream_repo_dir"
-
- if cgitize; then
- echo "cgitize should have failed to pull the upstream repository." >&2
- return 1
- fi
- verify_initial_commits
- if verify_added_commits; then
- echo "The added commits should not have been pulled." >&2
- return 1
- fi
- cleanup
-}
-
-main() {
- trap cleanup EXIT
- test_bare
- test_workdir
- test_failure
-}
-
-main