summaryrefslogtreecommitdiffstats
path: root/test/integration/test-architecture-specification-parsing
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/test-architecture-specification-parsing
parentInitial commit. (diff)
downloadapt-upstream/2.2.4.tar.xz
apt-upstream/2.2.4.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/test-architecture-specification-parsing')
-rwxr-xr-xtest/integration/test-architecture-specification-parsing120
1 files changed, 120 insertions, 0 deletions
diff --git a/test/integration/test-architecture-specification-parsing b/test/integration/test-architecture-specification-parsing
new file mode 100755
index 0000000..2319938
--- /dev/null
+++ b/test/integration/test-architecture-specification-parsing
@@ -0,0 +1,120 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+setupenvironment
+
+# we need this construct here as it isn't really possible to fake native arch for dpkg-* tools
+NATIVE="$(command dpkg --print-architecture)"
+configarchitecture "${NATIVE}" 'armel'
+
+buildsimplenativepackage 'pkg-arch-foo' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [${NATIVE} !${NATIVE}]
+Depends: foo [${NATIVE} !${NATIVE}]"
+buildsimplenativepackage 'pkg-arch-no-foo' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [!${NATIVE} ${NATIVE}]
+Depends: foo [!${NATIVE} ${NATIVE}]"
+buildsimplenativepackage 'pkg-arch-foo-unrelated-no' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [!someos-any ${NATIVE}]
+Depends: foo [!someos-any ${NATIVE}]"
+buildsimplenativepackage 'pkg-arch-foo-unrelated-no2' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [${NATIVE} !someos-any]
+Depends: foo [${NATIVE} !someos-any]"
+buildsimplenativepackage 'no-depends' 'armel' '1.0' 'stable' 'Build-Depends: foo [armeb], bar [arm]
+Depends: foo [armeb], bar [arm]'
+
+buildsimplenativepackage 'foo' "$NATIVE" '1.0' 'stable'
+
+insertinstalledpackage 'build-essential' 'all' '11.5' 'Multi-Arch: foreign'
+
+setupaptarchive
+
+testsuccessequal "Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ foo
+The following NEW packages will be installed:
+ foo pkg-arch-foo
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 stable [${NATIVE}])
+Inst pkg-arch-foo (1.0 stable [${NATIVE}])
+Conf foo (1.0 stable [${NATIVE}])
+Conf pkg-arch-foo (1.0 stable [${NATIVE}])" aptget install pkg-arch-foo -s
+
+testsuccessequal "Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+ pkg-arch-no-foo
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst pkg-arch-no-foo (1.0 stable [${NATIVE}])
+Conf pkg-arch-no-foo (1.0 stable [${NATIVE}])" aptget install pkg-arch-no-foo -s
+
+testsuccessequal "Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ foo
+The following NEW packages will be installed:
+ foo pkg-arch-foo-unrelated-no
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 stable [${NATIVE}])
+Inst pkg-arch-foo-unrelated-no (1.0 stable [${NATIVE}])
+Conf foo (1.0 stable [${NATIVE}])
+Conf pkg-arch-foo-unrelated-no (1.0 stable [${NATIVE}])" aptget install pkg-arch-foo-unrelated-no -s
+
+testsuccessequal "Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ foo
+The following NEW packages will be installed:
+ foo pkg-arch-foo-unrelated-no2
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 stable [${NATIVE}])
+Inst pkg-arch-foo-unrelated-no2 (1.0 stable [${NATIVE}])
+Conf foo (1.0 stable [${NATIVE}])
+Conf pkg-arch-foo-unrelated-no2 (1.0 stable [${NATIVE}])" aptget install pkg-arch-foo-unrelated-no2 -s
+
+testsuccessequal "Reading package lists...
+Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+ foo
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 stable [${NATIVE}])
+Conf foo (1.0 stable [${NATIVE}])" aptget build-dep pkg-arch-foo -s
+
+testsuccessequal 'Reading package lists...
+pkg-arch-no-foo has no build depends.
+Reading package lists...
+Building dependency tree...
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget build-dep pkg-arch-no-foo -s
+
+testsuccessequal "Reading package lists...
+Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+ foo
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 stable [${NATIVE}])
+Conf foo (1.0 stable [${NATIVE}])" aptget build-dep pkg-arch-foo-unrelated-no -s
+
+testsuccessequal "Reading package lists...
+Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+ foo
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 stable [${NATIVE}])
+Conf foo (1.0 stable [${NATIVE}])" aptget build-dep pkg-arch-foo-unrelated-no2 -s
+
+testsuccessequal 'Reading package lists...
+no-depends has no build depends.
+Reading package lists...
+Building dependency tree...
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget build-dep no-depends -s
+
+# this is not really testing APT - more that dpkg is in line with us
+configarchitecture 'amd64' 'armel'
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+ no-depends:armel
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst no-depends:armel (1.0 stable [armel])
+Conf no-depends:armel (1.0 stable [armel])' aptget install no-depends -s