diff options
Diffstat (limited to 'test/integration/create-test-data')
-rwxr-xr-x | test/integration/create-test-data | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/integration/create-test-data b/test/integration/create-test-data new file mode 100755 index 0000000..eff2ba5 --- /dev/null +++ b/test/integration/create-test-data @@ -0,0 +1,60 @@ +#!/bin/sh +set +e # its okay to fail in these script, most of the time the apt* stuff will generate errors + +if [ -z "$1" -o -z "$2" ]; then + echo "Usage: $0 file codename pkg…" + exit 1 +fi + +CHECK_ARGS='no' +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +find_project_binary_dir +BUILDDIRECTORY="${APT_INTEGRATION_TESTS_BUILD_DIR:-"${PROJECT_BINARY_DIR}/cmdline"}" + +GENERATE="$1" +CODENAME="$2" +shift 2 + +WORKDIR="$(mktemp -d)" +cleanupworkdir() { + if [ -z "$WORKDIR" ]; then return; fi + rm -rf "$WORKDIR" +} +trap "cleanupworkdir;" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM +touch "$WORKDIR/status" +TMPGEN="$WORKDIR/Packages" +export LANG=C.UTF-8 + +aptgetinstall() { + aptget install "$@" --no-install-recommends -t "$CODENAME" -s \ + -o Dir::state::status="$WORKDIR/status" \ + -o Dir::Cache="$WORKDIR" \ + -o pkgCacheGen::Essential=none \ + -o APT::Immediate-Configure=0 +} +LISTOFPKGS="$(aptgetinstall "$@" 2> /dev/null | awk '/^Inst/ {print $2}' | sed -e "s#\$#/$CODENAME#")" +if [ -z "$LISTOFPKGS" ]; then + echo "List of packages is empty: run apt-get install command again for you now" + aptgetinstall + exit 1 +fi +aptcache show $LISTOFPKGS --no-all-versions 2> "$WORKDIR/error.lst" | sed -e '/^ / d' \ + -e '/^SHA1: / d' -e '/^SHA256: / d' \ + -e '/^Homepage: / d' -e '/^Tag: / d' \ + -e '/^Xul-Appid: / d' \ + -e '/^Status: / d' \ + -e 's/^Description-en:/Description:/' \ + > "$TMPGEN" + +if [ "$CODENAME" = "experimental" ]; then + aptcache show $(cut -d"'" -f 4 "$WORKDIR/error.lst" | sed -e 's#$#/sid#') --no-all-versions 2> /dev/null >> "$TMPGEN" +fi + +if echo "$GENERATE" | grep '^status-' > /dev/null; then + sed -i "$TMPGEN" -e '/^Package: / a\ +Status: install ok installed' \ + -e '/^Filename: / d' -e '/^Size: / d' -e '/^MD5sum: / d' +fi + +apt-sortpkgs "$TMPGEN" > "$GENERATE" |