summaryrefslogtreecommitdiffstats
path: root/test/integration/create-test-data
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 06:14:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 06:14:41 +0000
commit549a391d6438e828001eeeaf235b080c054a7bf3 (patch)
tree1bb6b1ea5987fa167a1d13abe82209cc882dd94b /test/integration/create-test-data
parentInitial commit. (diff)
downloadapt-549a391d6438e828001eeeaf235b080c054a7bf3.tar.xz
apt-549a391d6438e828001eeeaf235b080c054a7bf3.zip
Adding upstream version 2.2.4.upstream/2.2.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/integration/create-test-data')
-rwxr-xr-xtest/integration/create-test-data60
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"