test-dpkg-assert-multi-arch 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. buildsimplenativepackage 'all-pkg' 'all' '2.0' 'stable'
  11. buildsimplenativepackage 'all-foreign-pkg' 'all' '2.0' 'stable' 'Multi-Arch: foreign'
  12. setupaptarchive
  13. testqualifier() {
  14. msgtest 'Test with' $1 'for correct qualifier mode' $2
  15. GIVEN="$(aptget install $1 -qq -o Debug::pkgDPkgPM=1 2>&1 | grep -v -- '--unpack' | sed -e 's/^.*--[^u][^ ]* \([^ ]*\).*$/\1/')"
  16. if [ "$GIVEN" = "$2" ]; then
  17. msgpass
  18. else
  19. echo
  20. echo "$GIVEN"
  21. msgfail
  22. fi
  23. }
  24. # non-multiarch or "ubuntus" old multiarchified dpkg
  25. echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper
  26. echo '#! /bin/sh
  27. if echo "$*" | grep -q -- "--assert-multi-arch"; then
  28. echo >&2 'dpkg: Fehler: unbekannte Option --assert-multi-arch'
  29. echo >&1 'dpkg: Info: unbekannte Option --assert-multi-arch'
  30. return 2;
  31. fi
  32. return $*' > ./dpkg-wrapper
  33. chmod +x ./dpkg-wrapper
  34. testqualifier 'native-pkg' 'native-pkg'
  35. testqualifier 'native-pkg:amd64' 'native-pkg'
  36. testqualifier 'foreign-pkg' 'foreign-pkg:i386'
  37. testqualifier 'foreign-pkg:i386' 'foreign-pkg:i386'
  38. testqualifier 'same-lib' 'same-lib'
  39. testqualifier 'same-lib:amd64' 'same-lib'
  40. testqualifier 'same-lib:i386' 'same-lib:i386'
  41. testqualifier 'all-pkg' 'all-pkg'
  42. testqualifier 'all-pkg:amd64' 'all-pkg'
  43. testqualifier 'all-foreign-pkg' 'all-foreign-pkg'
  44. testqualifier 'all-foreign-pkg:amd64' 'all-foreign-pkg'
  45. insertinstalledpackage 'all-pkg' 'amd64' '1.0'
  46. insertinstalledpackage 'all-foreign-pkg' 'amd64' '1.0' 'Multi-Arch: foreign'
  47. testqualifier 'all-pkg' 'all-pkg'
  48. testqualifier 'all-pkg:amd64' 'all-pkg'
  49. testqualifier 'all-foreign-pkg' 'all-foreign-pkg'
  50. testqualifier 'all-foreign-pkg:amd64' 'all-foreign-pkg'
  51. insertinstalledpackage 'always-all-pkg' 'all' '1.0'
  52. insertinstalledpackage 'always-all-foreign-pkg' 'all' '1.0' 'Multi-Arch: foreign'
  53. testqualifier 'all-pkg-' 'all-pkg'
  54. testqualifier 'all-foreign-pkg-' 'all-foreign-pkg'
  55. testqualifier 'always-all-pkg-' 'always-all-pkg'
  56. testqualifier 'always-all-foreign-pkg-' 'always-all-foreign-pkg'
  57. # multiarch dpkg (new interface version)
  58. rm rootdir/var/lib/dpkg/status
  59. touch rootdir/var/lib/dpkg/status
  60. echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper
  61. echo '#! /bin/sh
  62. if echo "$*" | grep -q -- "--assert-multi-arch"; then
  63. return 0;
  64. fi
  65. return $*' > ./dpkg-wrapper
  66. testqualifier 'native-pkg' 'native-pkg:amd64'
  67. testqualifier 'native-pkg:amd64' 'native-pkg:amd64'
  68. testqualifier 'foreign-pkg' 'foreign-pkg:i386'
  69. testqualifier 'foreign-pkg:i386' 'foreign-pkg:i386'
  70. testqualifier 'same-lib' 'same-lib:amd64'
  71. testqualifier 'same-lib:amd64' 'same-lib:amd64'
  72. testqualifier 'same-lib:i386' 'same-lib:i386'
  73. testqualifier 'all-pkg' 'all-pkg:all'
  74. testqualifier 'all-pkg:amd64' 'all-pkg:all'
  75. testqualifier 'all-foreign-pkg' 'all-foreign-pkg:all'
  76. testqualifier 'all-foreign-pkg:amd64' 'all-foreign-pkg:all'
  77. insertinstalledpackage 'all-pkg' 'amd64' '1.0'
  78. insertinstalledpackage 'all-foreign-pkg' 'amd64' '1.0' 'Multi-Arch: foreign'
  79. testqualifier 'all-pkg' 'all-pkg:all'
  80. testqualifier 'all-pkg:amd64' 'all-pkg:all'
  81. testqualifier 'all-foreign-pkg' 'all-foreign-pkg:all'
  82. testqualifier 'all-foreign-pkg:amd64' 'all-foreign-pkg:all'
  83. insertinstalledpackage 'always-all-pkg' 'all' '1.0'
  84. insertinstalledpackage 'always-all-foreign-pkg' 'all' '1.0' 'Multi-Arch: foreign'
  85. testqualifier 'all-pkg-' 'all-pkg:amd64'
  86. testqualifier 'all-foreign-pkg-' 'all-foreign-pkg:amd64'
  87. testqualifier 'always-all-pkg-' 'always-all-pkg:all'
  88. testqualifier 'always-all-foreign-pkg-' 'always-all-foreign-pkg:all'