From 3cdb638d9d88d23182d35a971e13102a661aaffd Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 15 Oct 2013 18:53:35 -0400 Subject: test: libremakepkg: add a test for bug #442, chcleanup not running --- test/libremakepkg-test.sh | 28 ++++++++++++++++++++++++++++ test/libremakepkg.d/PKGBUILD-testpkg1 | 19 +++++++++++++++++++ test/libremakepkg.d/PKGBUILD-testpkg2 | 19 +++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 test/libremakepkg.d/PKGBUILD-testpkg1 create mode 100644 test/libremakepkg.d/PKGBUILD-testpkg2 (limited to 'test') diff --git a/test/libremakepkg-test.sh b/test/libremakepkg-test.sh index 2fb7f2f..bef1db8 100644 --- a/test/libremakepkg-test.sh +++ b/test/libremakepkg-test.sh @@ -31,6 +31,34 @@ it_builds_a_trivial_package() { [[ -f $(echo libretools-hello-1.0-1-any.pkg.tar.?z) ]] } +it_cleans_the_chroot_before_building() { + require network sudo || return 0 + # 1. First, we build testpkg1 + # 2. Then, we build testpkg2, which depends on testpkg1 + # Therefore, testpkg1 will be installed after testpkg2 is built, we + # check for that. + # 3. Then, we build hello, which depends on neither, so testpkg1 should + # be removed. + + # Also, do funny things with the output of libremakepkg to get a helpful + # fail case. + + mkdir -p "$tmpdir"/{1,2,3} + cp libremakepkg.d/PKGBUILD-testpkg1 "$tmpdir/1/PKGBUILD" + cp libremakepkg.d/PKGBUILD-testpkg2 "$tmpdir/2/PKGBUILD" + cp libremakepkg.d/PKGBUILD-hello "$tmpdir/3/PKGBUILD" + + libremessages msg 'Creating a chroot, may take a few minutes' &>/dev/tty + cd "$tmpdir/1" + testsudo libremakepkg &> "$tmpdir/out" || { r=$?; tail "$tmpdir/out"|cat -v; return $r; } + cd "$tmpdir/2" + testsudo libremakepkg &> "$tmpdir/out" || { r=$?; tail "$tmpdir/out"|cat -v; return $r; } + testsudo librechroot run libretools-testpkg1 'first time, pass' + cd "$tmpdir/3" + testsudo libremakepkg &> "$tmpdir/out" || { r=$?; tail "$tmpdir/out"|cat -v; return $r; } + ! testsudo librechroot run libretools-testpkg1 'second time, fail' +} + it_handles_PKGDEST_not_existing() { require network sudo || return 0 cp libremakepkg.d/PKGBUILD-hello "$tmpdir/PKGBUILD" diff --git a/test/libremakepkg.d/PKGBUILD-testpkg1 b/test/libremakepkg.d/PKGBUILD-testpkg1 new file mode 100644 index 0000000..b7961bb --- /dev/null +++ b/test/libremakepkg.d/PKGBUILD-testpkg1 @@ -0,0 +1,19 @@ +pkgname='libretools-testpkg1' +pkgver=1.0 +license=('GPL') +url='https://parabolagnulinux.org' + +pkgrel=1 +arch=(any) +depends=(sh) + +build() { + cd "$srcdir" + echo '#!/bin/sh' > testpkg1.sh + echo 'echo testpkg1' >> testpkg1.sh +} + +package() { + cd "$srcdir" + install -Dm755 testpkg1.sh "$pkgdir"/usr/bin/libretools-testpkg1 +} diff --git a/test/libremakepkg.d/PKGBUILD-testpkg2 b/test/libremakepkg.d/PKGBUILD-testpkg2 new file mode 100644 index 0000000..11f7fe8 --- /dev/null +++ b/test/libremakepkg.d/PKGBUILD-testpkg2 @@ -0,0 +1,19 @@ +pkgname='libretools-testpkg2' +pkgver=1.0 +license=('GPL') +url='https://parabolagnulinux.org' + +pkgrel=1 +arch=(any) +depends=(sh libretools-testpkg1) + +build() { + cd "$srcdir" + echo '#!/bin/sh' > testpkg2.sh + echo 'libretools-testpkg1' >> testpkg2.sh +} + +package() { + cd "$srcdir" + install -Dm755 testpkg2.sh "$pkgdir"/usr/bin/libretools-testpkg2 +} -- cgit v1.2.2