test-dpkg-assert-multi-arch 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/sh
  2. set -e
  3. TESTDIR=$(readlink -f $(dirname $0))
  4. . $TESTDIR/framework
  5. setupenvironment
  6. configarchitecture 'amd64' 'i386'
  7. buildsimplenativepackage 'native-pkg' 'amd64' '1.0' 'stable'
  8. buildsimplenativepackage 'foreign-pkg' 'i386' '0.5' 'stable' 'Multi-Arch: foreign'
  9. buildsimplenativepackage 'same-lib' 'amd64,i386' '0.5' 'stable' 'Multi-Arch: same'
  10. setupaptarchive
  11. testqualifier() {
  12. msgtest 'Test for correct qualifier mode' $2
  13. GIVEN="$(aptget install $1 -qq -o Debug::pkgDPkgPM=1 2>&1 | grep -e '--configure' -e '^dpkg:' | sed -e 's/^.*--configure \([^ ]*\).*$/\1/')"
  14. if [ "$GIVEN" = "$2" ]; then
  15. msgpass
  16. else
  17. echo
  18. echo "$GIVEN"
  19. msgfail
  20. fi
  21. }
  22. # non-multiarch or "ubuntus" old multiarchified dpkg
  23. echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper
  24. echo '#! /bin/sh
  25. if echo "$*" | grep -q -- "--assert-multi-arch"; then
  26. echo >&2 'dpkg: Fehler: unbekannte Option --assert-multi-arch'
  27. echo >&1 'dpkg: Info: unbekannte Option --assert-multi-arch'
  28. return 2;
  29. fi
  30. return $*' > ./dpkg-wrapper
  31. chmod +x ./dpkg-wrapper
  32. testqualifier 'native-pkg' 'native-pkg'
  33. testqualifier 'native-pkg:amd64' 'native-pkg'
  34. testqualifier 'foreign-pkg' 'foreign-pkg:i386'
  35. testqualifier 'foreign-pkg:i386' 'foreign-pkg:i386'
  36. testqualifier 'same-lib' 'same-lib'
  37. testqualifier 'same-lib:amd64' 'same-lib'
  38. testqualifier 'same-lib:i386' 'same-lib:i386'
  39. # multiarch dpkg (new interface version)
  40. echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper
  41. echo '#! /bin/sh
  42. if echo "$*" | grep -q -- "--assert-multi-arch"; then
  43. return 0;
  44. fi
  45. return $*' > ./dpkg-wrapper
  46. testqualifier 'native-pkg' 'native-pkg:amd64'
  47. testqualifier 'native-pkg:amd64' 'native-pkg:amd64'
  48. testqualifier 'foreign-pkg' 'foreign-pkg:i386'
  49. testqualifier 'foreign-pkg:i386' 'foreign-pkg:i386'
  50. testqualifier 'same-lib' 'same-lib:amd64'
  51. testqualifier 'same-lib:amd64' 'same-lib:amd64'
  52. testqualifier 'same-lib:i386' 'same-lib:i386'