summaryrefslogtreecommitdiffstats
path: root/test/lib
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2010-11-25 06:55:03 +0100
committerPierre Schmitz <pierre@archlinux.de>2010-11-25 06:55:03 +0100
commit5f72b8029c07f3357014d8716f18f21ce649c98a (patch)
treed2d8cd279515d3f1900ddd196f4cbcc710a66adc /test/lib
parentec20965dbd3180a92d2daa69a075284688b1be04 (diff)
downloaddbscripts-5f72b8029c07f3357014d8716f18f21ce649c98a.tar.gz
dbscripts-5f72b8029c07f3357014d8716f18f21ce649c98a.tar.xz
Provide more real test packages
* Use devtools instead of plain makepkg * This is a preparation for some more advanced test cases.
Diffstat (limited to 'test/lib')
-rw-r--r--test/lib/common.inc39
-rw-r--r--test/lib/makepkg-i686.conf115
-rw-r--r--test/lib/makepkg-x86_64.conf115
3 files changed, 33 insertions, 236 deletions
diff --git a/test/lib/common.inc b/test/lib/common.inc
index d7ea3d4..34de9eb 100644
--- a/test/lib/common.inc
+++ b/test/lib/common.inc
@@ -5,15 +5,42 @@ set -E
oneTimeSetUp() {
local p
+ local d
+ local a
+ local pkgname
+ local pkgarch
+ local pkgversion
+ local build
pkgdir="$(mktemp -d /dev/shm/$(basename $0).XXXXXXXXXX)"
cp -r ${curdir}/packages/* "${pkgdir}"
msg 'Building packages...'
- for p in "${pkgdir}"/*; do
- pushd $p >/dev/null
- linux32 makepkg -cf --config ${curdir}/lib/makepkg-i686.conf >/dev/null 2>&1 || die 'makepkg failed'
- [ -f *-any.pkg.tar.* ] \
- || linux64 makepkg -cf --config ${curdir}/lib/makepkg-x86_64.conf >/dev/null 2>&1 \
- || die 'makepkg failed'
+ for d in "${pkgdir}"/*; do
+ pushd $d >/dev/null
+ pkgname=($(. PKGBUILD; echo ${pkgname[@]}))
+ pkgarch=($(. PKGBUILD; echo ${arch[@]}))
+ pkgversion=$(. PKGBUILD; echo ${pkgver}-${pkgrel})
+
+ build=true
+ for a in ${pkgarch[@]}; do
+ for p in ${pkgname[@]}; do
+ [ ! -f ${p}-${pkgversion}-${a}${PKGEXT} ] && build=false
+ done
+ done
+
+ if ! ${build}; then
+ if [ "${pkgarch[0]}" == 'any' ]; then
+ extra-x86_64-build || die 'extra-x86_64-build failed'
+ else
+ for a in ${pkgarch[@]}; do
+ extra-${a}-build || die "extra-${a}-build failed"
+ done
+ fi
+ for a in ${pkgarch[@]}; do
+ for p in ${pkgname[@]}; do
+ cp ${p}-${pkgversion}-${a}${PKGEXT} ${curdir}/packages/$(basename ${d})
+ done
+ done
+ fi
popd >/dev/null
done
echo
diff --git a/test/lib/makepkg-i686.conf b/test/lib/makepkg-i686.conf
deleted file mode 100644
index 553f943..0000000
--- a/test/lib/makepkg-i686.conf
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-# /etc/makepkg.conf
-#
-
-#########################################################################
-# SOURCE ACQUISITION
-#########################################################################
-#
-#-- The download utilities that makepkg should use to acquire sources
-# Format: 'protocol::agent'
-DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
- 'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
- 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
- 'rsync::/usr/bin/rsync -z %u %o'
- 'scp::/usr/bin/scp -C %u %o')
-
-# Other common tools:
-# /usr/bin/snarf
-# /usr/bin/lftpget -c
-# /usr/bin/curl
-
-#########################################################################
-# ARCHITECTURE, COMPILE FLAGS
-#########################################################################
-#
-CARCH="i686"
-CHOST="i686-pc-linux-gnu"
-
-#-- Exclusive: will only run on i686
-# -march (or -mcpu) builds exclusively for an architecture
-# -mtune optimizes for an architecture, but builds for whole processor family
-CFLAGS="-march=i686 -mtune=generic -O2 -pipe"
-CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe"
-LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
-#-- Make Flags: change this for DistCC/SMP systems
-#MAKEFLAGS="-j2"
-
-#########################################################################
-# BUILD ENVIRONMENT
-#########################################################################
-#
-# Defaults: BUILDENV=(fakeroot !distcc color !ccache)
-# A negated environment option will do the opposite of the comments below.
-#
-#-- fakeroot: Allow building packages as a non-root user
-#-- distcc: Use the Distributed C/C++/ObjC compiler
-#-- color: Colorize output messages
-#-- ccache: Use ccache to cache compilation
-#
-BUILDENV=(fakeroot !distcc color !ccache)
-#
-#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
-#-- specify a space-delimited list of hosts running in the DistCC cluster.
-#DISTCC_HOSTS=""
-
-#########################################################################
-# GLOBAL PACKAGE OPTIONS
-# These are default values for the options=() settings
-#########################################################################
-#
-# Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
-# A negated option will do the opposite of the comments below.
-#
-#-- strip: Strip symbols from binaries/libraries in STRIP_DIRS
-#-- docs: Save doc directories specified by DOC_DIRS
-#-- libtool: Leave libtool (.la) files in packages
-#-- emptydirs: Leave empty directories in packages
-#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
-#-- purge: Remove files specified by PURGE_TARGETS
-#
-OPTIONS=(strip docs libtool emptydirs zipman purge)
-
-#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
-INTEGRITY_CHECK=(md5)
-#-- Options to be used when stripping binaries. See `man strip' for details.
-STRIP_BINARIES="--strip-all"
-#-- Options to be used when stripping shared libraries. See `man strip' for details.
-STRIP_SHARED="--strip-unneeded"
-#-- Options to be used when stripping static libraries. See `man strip' for details.
-STRIP_STATIC="--strip-debug"
-#-- Manual (man and info) directories to compress (if zipman is specified)
-MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
-#-- Doc directories to remove (if !docs is specified)
-DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
-#-- Directories to be searched for the strip option (if strip is specified)
-STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
-#-- Files to be removed from all packages (if purge is specified)
-PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
-
-#########################################################################
-# PACKAGE OUTPUT
-#########################################################################
-#
-# Default: put built package and cached source in build directory
-#
-#-- Destination: specify a fixed directory where all packages will be placed
-#PKGDEST=/home/packages
-#-- Source cache: specify a fixed directory where source files will be cached
-#SRCDEST=/home/sources
-#-- Source packages: specify a fixed directory where all src packages will be placed
-#SRCPKGDEST=/home/srcpackages
-#-- Packager: name/email of the person or organization building packages
-#PACKAGER="John Doe <john@doe.com>"
-
-#########################################################################
-# EXTENSION DEFAULTS
-#########################################################################
-#
-# WARNING: Do NOT modify these variables unless you know what you are
-# doing.
-#
-PKGEXT='.pkg.tar.xz'
-SRCEXT='.src.tar.gz'
-
-# vim: set ft=sh ts=2 sw=2 et:
diff --git a/test/lib/makepkg-x86_64.conf b/test/lib/makepkg-x86_64.conf
deleted file mode 100644
index e53375f..0000000
--- a/test/lib/makepkg-x86_64.conf
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-# /etc/makepkg.conf
-#
-
-#########################################################################
-# SOURCE ACQUISITION
-#########################################################################
-#
-#-- The download utilities that makepkg should use to acquire sources
-# Format: 'protocol::agent'
-DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
- 'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
- 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
- 'rsync::/usr/bin/rsync -z %u %o'
- 'scp::/usr/bin/scp -C %u %o')
-
-# Other common tools:
-# /usr/bin/snarf
-# /usr/bin/lftpget -c
-# /usr/bin/curl
-
-#########################################################################
-# ARCHITECTURE, COMPILE FLAGS
-#########################################################################
-#
-CARCH="x86_64"
-CHOST="x86_64-unknown-linux-gnu"
-
-#-- Exclusive: will only run on x86_64
-# -march (or -mcpu) builds exclusively for an architecture
-# -mtune optimizes for an architecture, but builds for whole processor family
-CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
-CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
-LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
-#-- Make Flags: change this for DistCC/SMP systems
-#MAKEFLAGS="-j2"
-
-#########################################################################
-# BUILD ENVIRONMENT
-#########################################################################
-#
-# Defaults: BUILDENV=(fakeroot !distcc color !ccache)
-# A negated environment option will do the opposite of the comments below.
-#
-#-- fakeroot: Allow building packages as a non-root user
-#-- distcc: Use the Distributed C/C++/ObjC compiler
-#-- color: Colorize output messages
-#-- ccache: Use ccache to cache compilation
-#
-BUILDENV=(fakeroot !distcc color !ccache)
-#
-#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
-#-- specify a space-delimited list of hosts running in the DistCC cluster.
-#DISTCC_HOSTS=""
-
-#########################################################################
-# GLOBAL PACKAGE OPTIONS
-# These are default values for the options=() settings
-#########################################################################
-#
-# Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
-# A negated option will do the opposite of the comments below.
-#
-#-- strip: Strip symbols from binaries/libraries in STRIP_DIRS
-#-- docs: Save doc directories specified by DOC_DIRS
-#-- libtool: Leave libtool (.la) files in packages
-#-- emptydirs: Leave empty directories in packages
-#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
-#-- purge: Remove files specified by PURGE_TARGETS
-#
-OPTIONS=(strip docs libtool emptydirs zipman purge)
-
-#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
-INTEGRITY_CHECK=(md5)
-#-- Options to be used when stripping binaries. See `man strip' for details.
-STRIP_BINARIES="--strip-all"
-#-- Options to be used when stripping shared libraries. See `man strip' for details.
-STRIP_SHARED="--strip-unneeded"
-#-- Options to be used when stripping static libraries. See `man strip' for details.
-STRIP_STATIC="--strip-debug"
-#-- Manual (man and info) directories to compress (if zipman is specified)
-MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
-#-- Doc directories to remove (if !docs is specified)
-DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
-#-- Directories to be searched for the strip option (if strip is specified)
-STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
-#-- Files to be removed from all packages (if purge is specified)
-PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
-
-#########################################################################
-# PACKAGE OUTPUT
-#########################################################################
-#
-# Default: put built package and cached source in build directory
-#
-#-- Destination: specify a fixed directory where all packages will be placed
-#PKGDEST=/home/packages
-#-- Source cache: specify a fixed directory where source files will be cached
-#SRCDEST=/home/sources
-#-- Source packages: specify a fixed directory where all src packages will be placed
-#SRCPKGDEST=/home/srcpackages
-#-- Packager: name/email of the person or organization building packages
-#PACKAGER="John Doe <john@doe.com>"
-
-#########################################################################
-# EXTENSION DEFAULTS
-#########################################################################
-#
-# WARNING: Do NOT modify these variables unless you know what you are
-# doing.
-#
-PKGEXT='.pkg.tar.xz'
-SRCEXT='.src.tar.gz'
-
-# vim: set ft=sh ts=2 sw=2 et: