Merge branch 'makepkg-regression-tests' into 'master'
Draft: tests: add some tests for makepkg See merge request pacman/pacman!186
This commit is contained in:
commit
e258e81c90
4 changed files with 115 additions and 0 deletions
|
@ -466,6 +466,7 @@ TEST_ENV.set('PMTEST_SCRIPT_DIR', join_paths(meson.project_build_root(), 'script
|
||||||
subdir('test/pacman')
|
subdir('test/pacman')
|
||||||
subdir('test/scripts')
|
subdir('test/scripts')
|
||||||
subdir('test/util')
|
subdir('test/util')
|
||||||
|
subdir('test/makepkg')
|
||||||
|
|
||||||
message('\n '.join([
|
message('\n '.join([
|
||||||
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
|
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
|
||||||
|
|
48
test/makepkg/makepkg-build-git-head-twice.sh
Normal file
48
test/makepkg/makepkg-build-git-head-twice.sh
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
tempdir=$(mktemp -d)
|
||||||
|
cleanup() { rm -rf "$tempdir"; }
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
export MAKEPKG_LIBRARY="${PMTEST_LIBMAKEPKG_DIR}"
|
||||||
|
export MAKEPKG_CONF="${PMTEST_UTIL_DIR}/makepkg.conf"
|
||||||
|
export PACMAN="${PMTEST_UTIL_DIR}/pacman"
|
||||||
|
MAKEPKG="${PMTEST_SCRIPT_DIR}/makepkg"
|
||||||
|
|
||||||
|
# https://gitlab.archlinux.org/pacman/pacman/-/issues/142
|
||||||
|
# Running makepkg twice if the source is git without a fragment
|
||||||
|
# should not fail.
|
||||||
|
test() {
|
||||||
|
# Dummy git repo
|
||||||
|
export GIT_COMMITTER_NAME="Test User"
|
||||||
|
export GIT_COMMITTER_EMAIL="test@example.com"
|
||||||
|
export GIT_AUTHOR_NAME="$GIT_COMMITTER_NAME"
|
||||||
|
export GIT_AUTHOR_EMAIL="$GIT_COMMITTER_EMAIL"
|
||||||
|
local gitrepo="$tempdir/gitrepo"
|
||||||
|
mkdir -p $gitrepo && cd $gitrepo
|
||||||
|
git init .
|
||||||
|
git checkout -b main
|
||||||
|
git commit --allow-empty -m "test"
|
||||||
|
|
||||||
|
# Dummy PKGBUILD
|
||||||
|
local pkgbuild_content=$(cat <<EOF
|
||||||
|
pkgname=test
|
||||||
|
pkgver=1
|
||||||
|
pkgrel=1
|
||||||
|
arch=('any')
|
||||||
|
source=(git+file://$gitrepo)
|
||||||
|
sha256sums=('SKIP')
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
local pkgdir="$tempdir/pkgdir"
|
||||||
|
mkdir -p "$pkgdir" && cd "$pkgdir"
|
||||||
|
echo "$pkgbuild_content" > "PKGBUILD"
|
||||||
|
|
||||||
|
"$MAKEPKG"
|
||||||
|
"$MAKEPKG" -f
|
||||||
|
}
|
||||||
|
|
||||||
|
test;
|
57
test/makepkg/makepkg-checkout-dir-matches-branch.sh
Normal file
57
test/makepkg/makepkg-checkout-dir-matches-branch.sh
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
tempdir=$(mktemp -d)
|
||||||
|
cleanup() { rm -rf "$tempdir"; }
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
export MAKEPKG_LIBRARY="${PMTEST_LIBMAKEPKG_DIR}"
|
||||||
|
export MAKEPKG_CONF="${PMTEST_UTIL_DIR}/makepkg.conf"
|
||||||
|
export PACMAN="${PMTEST_UTIL_DIR}/pacman"
|
||||||
|
MAKEPKG="${PMTEST_SCRIPT_DIR}/makepkg"
|
||||||
|
|
||||||
|
# https://gitlab.archlinux.org/pacman/pacman/-/issues/143
|
||||||
|
# Always check out the default branch, and not a branch matching
|
||||||
|
# the directory name.
|
||||||
|
test() {
|
||||||
|
# Dummy git repo
|
||||||
|
export GIT_COMMITTER_NAME="Test User"
|
||||||
|
export GIT_COMMITTER_EMAIL="test@example.com"
|
||||||
|
export GIT_AUTHOR_NAME="$GIT_COMMITTER_NAME"
|
||||||
|
export GIT_AUTHOR_EMAIL="$GIT_COMMITTER_EMAIL"
|
||||||
|
|
||||||
|
local gitrepo="$tempdir/gitrepo"
|
||||||
|
mkdir -p $gitrepo && cd $gitrepo
|
||||||
|
git init --initial-branch=main
|
||||||
|
git checkout -b main
|
||||||
|
touch good
|
||||||
|
git add good
|
||||||
|
git commit -m "good"
|
||||||
|
git checkout -b somebranch
|
||||||
|
git rm good
|
||||||
|
git commit -m "bad"
|
||||||
|
git checkout main
|
||||||
|
|
||||||
|
# Dummy PKGBUILD
|
||||||
|
local pkgbuild_content=$(cat <<EOF
|
||||||
|
pkgname=test
|
||||||
|
pkgver=1
|
||||||
|
pkgrel=1
|
||||||
|
arch=('any')
|
||||||
|
source=(somebranch::git+file://$gitrepo)
|
||||||
|
sha256sums=('SKIP')
|
||||||
|
package() {
|
||||||
|
[[ -e somebranch/good ]]
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
local pkgdir="$tempdir/pkgdir"
|
||||||
|
mkdir -p "$pkgdir" && cd "$pkgdir"
|
||||||
|
echo "$pkgbuild_content" > "PKGBUILD"
|
||||||
|
|
||||||
|
"$MAKEPKG"
|
||||||
|
}
|
||||||
|
|
||||||
|
test;
|
9
test/makepkg/meson.build
Normal file
9
test/makepkg/meson.build
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
find_program('git', required: true)
|
||||||
|
|
||||||
|
test('makepkg-build-git-head-twice',
|
||||||
|
find_program('makepkg-build-git-head-twice.sh'),
|
||||||
|
env: TEST_ENV)
|
||||||
|
|
||||||
|
test('makepkg-checkout-dir-matches-branch',
|
||||||
|
find_program('makepkg-checkout-dir-matches-branch.sh'),
|
||||||
|
env: TEST_ENV)
|
Loading…
Add table
Reference in a new issue