test-debsrc-hashes 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/bin/sh
  2. set -e
  3. TESTDIR=$(readlink -f $(dirname $0))
  4. . $TESTDIR/framework
  5. setupenvironment
  6. configarchitecture "i386"
  7. # pkg-sha256-bad has a bad SHA sum, but good MD5 sum. If apt is
  8. # checking the best available hash (as it should), this will trigger
  9. # a hash mismatch.
  10. cat > aptarchive/Sources <<EOF
  11. Package: pkg-md5-ok
  12. Binary: pkg-md5-ok
  13. Version: 1.0
  14. Maintainer: Joe Sixpack <joe@example.org>
  15. Architecture: i386
  16. Files:
  17. d41d8cd98f00b204e9800998ecf8427e 0 pkg-md5-ok_1.0.dsc
  18. d41d8cd98f00b204e9800998ecf8427e 0 pkg-md5-ok_1.0.tar.gz
  19. Package: pkg-sha256-ok
  20. Binary: pkg-sha256-ok
  21. Version: 1.0
  22. Maintainer: Joe Sixpack <joe@example.org>
  23. Architecture: i386
  24. Files:
  25. d41d8cd98f00b204e9800998ecf8427e 0 pkg-sha256-ok_1.0.dsc
  26. d41d8cd98f00b204e9800998ecf8427e 0 pkg-sha256-ok_1.0.tar.gz
  27. Checksums-Sha1:
  28. da39a3ee5e6b4b0d3255bfef95601890afd80709 0 pkg-sha256-ok_1.0.dsc
  29. da39a3ee5e6b4b0d3255bfef95601890afd80709 0 pkg-sha256-ok_1.0.tar.gz
  30. Checksums-Sha256:
  31. e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 pkg-sha256-ok_1.0.dsc
  32. e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 pkg-sha256-ok_1.0.tar.gz
  33. Package: pkg-sha256-bad
  34. Binary: pkg-sha256-bad
  35. Version: 1.0
  36. Maintainer: Joe Sixpack <joe@example.org>
  37. Architecture: i386
  38. Files:
  39. d41d8cd98f00b204e9800998ecf8427e 0 pkg-sha256-bad_1.0.dsc
  40. d41d8cd98f00b204e9800998ecf8427e 0 pkg-sha256-bad_1.0.tar.gz
  41. Checksums-Sha1:
  42. da39a3ee5e6b4b0d3255bfef95601890afd80709 0 pkg-sha256-bad_1.0.dsc
  43. da39a3ee5e6b4b0d3255bfef95601890afd80709 0 pkg-sha256-bad_1.0.tar.gz
  44. Checksums-Sha256:
  45. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 pkg-sha256-bad_1.0.dsc
  46. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 pkg-sha256-bad_1.0.tar.gz
  47. EOF
  48. # create fetchable files
  49. for x in "pkg-md5-ok" "pkg-sha256-ok" "pkg-sha256-bad"; do
  50. touch aptarchive/${x}_1.0.dsc
  51. touch aptarchive/${x}_1.0.tar.gz
  52. done
  53. testok() {
  54. msgtest "Test for hash ok of" "$*"
  55. $* 2>&1 | grep "Download complete" > /dev/null && msgpass || msgfail
  56. }
  57. testmismatch() {
  58. msgtest "Test for hash mismatch of" "$*"
  59. $* 2>&1 | grep "Hash Sum mismatch" > /dev/null && msgpass || msgfail
  60. }
  61. setupaptarchive
  62. changetowebserver
  63. aptget update -qq
  64. testok aptget source -d pkg-md5-ok
  65. testok aptget source -d pkg-sha256-ok
  66. testmismatch aptget source -d pkg-sha256-bad