add some scripts for quick build script testing
authorLudwig Nussel <ludwig.nussel@suse.de>
Fri, 24 Apr 2009 11:18:31 +0000 (11:18 +0000)
committerLudwig Nussel <ludwig.nussel@suse.de>
Fri, 24 Apr 2009 11:18:31 +0000 (11:18 +0000)
test/common [new file with mode: 0644]
test/config [new file with mode: 0644]
test/dummy.spec [new file with mode: 0644]
test/testbuild.11.0-i386 [new file with mode: 0755]
test/testbuild.11.0-x86_64 [new file with mode: 0755]
test/testbuild.11.1-i386 [new file with mode: 0755]
test/testbuild.8.1-i386 [new file with mode: 0755]
test/testbuild.sles10-i386 [new file with mode: 0755]
test/testbuild.sles10-x86_64 [new file with mode: 0755]
test/testbuild.sles9-i386 [new file with mode: 0755]

diff --git a/test/common b/test/common
new file mode 100644 (file)
index 0000000..35968fb
--- /dev/null
@@ -0,0 +1,102 @@
+#!/bin/bash
+# common functions for build script testing
+# Copyright (C) 2009 SUSE LINUX Products GmbH
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# 
+
+set -e
+. ${0%/*}/config
+if [ -e ${0%/*}/config.local ]; then
+       . ${0%/*}/config.local
+fi
+
+if [ ! -e "$build_vm_img" ]; then
+       sudo dd if=/dev/zero of="$build_vm_img" bs=512 count=0 seek=$((build_vm_image_size*2*1024))
+fi
+if [ ! -e "$build_vm_swap" ]; then
+       sudo dd if=/dev/zero of="$build_vm_swap" bs=512 count=0 seek=$((build_vm_swap_size*2*1024))
+fi
+
+die()
+{
+       test -z "$1" || echo "$*" >&2
+       exit 1
+}
+
+fail()
+{
+       echo FAILED
+       test -z "$1" || echo "$*"
+       exit 2
+}
+
+skip()
+{
+       echo skipped
+       test -z "$1" || echo "$*"
+       exit 3
+}
+
+build_args=()
+repos=()
+repo()
+{
+       local dir
+       eval dir="\"\$repo_$1\""
+       [ -n "$dir" ] || die "repo $1 not defined, try adding repo_$1=/path/to/repo to config.local"
+       test -d "$dir" || skip
+       repos[${#repos[@]}]="--repository";
+       repos[${#repos[@]}]="$dir";
+}
+
+linux32=
+arch32bit()
+{
+       local hostarch=`uname -m`
+       case "$hostarch" in 
+               x86_64) linux32=linux32 ;;
+               *) skip ;;
+       esac
+}
+
+enable_kvm()
+{
+       test -w /dev/kvm || skip "no kvm support"
+       set -- "${build_args[@]}" \
+               --root "${build_root}" \
+               --kvm "${build_vm_img}" \
+               --swap "${build_vm_swap}" \
+               --memory "$build_vm_mem"
+
+       build_args=("$@")
+}
+
+run_build()
+{
+       for i in "$@"; do
+               if [ "$i" = '--kvm' ]; then
+                       enable_kvm
+               else
+                       build_args[${#build_args[@]}]="$i";
+               fi
+       done
+       set -- $linux32 sudo env \
+               /usr/bin/build \
+               "${repos[@]}" \
+               "${build_args[@]}"
+       echo "$@"
+       "$@" || fail
+       find $build_root/.build.packages/ -type f -name '*.rpm' -print0 | xargs -0 rpm -K || fail
+}
diff --git a/test/config b/test/config
new file mode 100644 (file)
index 0000000..4fa8770
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+: ${build_root:=/abuild/build-root}
+: ${build_vm_img:=/abuild/build-root.img}
+: ${build_vm_swap:=/abuild/build-root.swap}
+: ${build_vm_mem:=256}
+: ${build_vm_image_size:=500}
+: ${build_vm_swap_size:=100}
diff --git a/test/dummy.spec b/test/dummy.spec
new file mode 100644 (file)
index 0000000..83eba9b
--- /dev/null
@@ -0,0 +1,14 @@
+Name:          dummy
+Version:       0
+Release:       0
+Group:         None
+Summary:       Dummy
+License:       GPL
+BuildRoot:     %_tmppath/%name-%version-build
+
+%build
+gcc --version
+
+%description
+
+%files
diff --git a/test/testbuild.11.0-i386 b/test/testbuild.11.0-i386
new file mode 100755 (executable)
index 0000000..97dfd7c
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+. ${0%/*}/common
+
+arch32bit
+
+repo 11_0_i386
+
+run_build --dist 11.0-i386 \
+       "$@"
diff --git a/test/testbuild.11.0-x86_64 b/test/testbuild.11.0-x86_64
new file mode 100755 (executable)
index 0000000..7e8fea8
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+. ${0%/*}/common
+
+repo 11_0_x86_64
+
+run_build --dist 11.0-x86_64 \
+       "$@"
diff --git a/test/testbuild.11.1-i386 b/test/testbuild.11.1-i386
new file mode 100755 (executable)
index 0000000..c665992
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+. ${0%/*}/common
+
+arch32bit
+
+repo 11_1_ftp
+
+run_build --dist 11.1-i386 \
+       "$@"
diff --git a/test/testbuild.8.1-i386 b/test/testbuild.8.1-i386
new file mode 100755 (executable)
index 0000000..64b6daa
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+. ${0%/*}/common
+
+arch32bit
+
+repo 8_1_i386
+
+run_build --dist 8.1-i386 \
+       "$@"
diff --git a/test/testbuild.sles10-i386 b/test/testbuild.sles10-i386
new file mode 100755 (executable)
index 0000000..59108e1
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/bash
+. ${0%/*}/common
+
+arch32bit
+
+repo sle10sp2_i386
+repo sle10sp2_sdk_i386
+
+run_build --dist sles10 \
+       "$@"
diff --git a/test/testbuild.sles10-x86_64 b/test/testbuild.sles10-x86_64
new file mode 100755 (executable)
index 0000000..5e29cc9
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+. ${0%/*}/common
+
+repo sle10sp2_x86_64
+repo sle10sp2_sdk_x86_64
+
+run_build --dist sles10 \
+       "$@"
diff --git a/test/testbuild.sles9-i386 b/test/testbuild.sles9-i386
new file mode 100755 (executable)
index 0000000..7e1b7c6
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/bash
+. ${0%/*}/common
+
+arch32bit
+
+repo core9_i386
+repo sles9_i386
+
+run_build --dist sles9 \
+       "$@"