Dpkg_Arch.t 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/perl
  2. #
  3. # This program is free software; you can redistribute it and/or modify
  4. # it under the terms of the GNU General Public License as published by
  5. # the Free Software Foundation; either version 2 of the License, or
  6. # (at your option) any later version.
  7. #
  8. # This program is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. # GNU General Public License for more details.
  12. #
  13. # You should have received a copy of the GNU General Public License
  14. # along with this program. If not, see <https://www.gnu.org/licenses/>.
  15. use strict;
  16. use warnings;
  17. use Test::More tests => 42;
  18. use_ok('Dpkg::Arch', qw(debarch_to_debtriplet debarch_to_multiarch
  19. debarch_eq debarch_is debarch_is_wildcard));
  20. my @tuple_new;
  21. my @tuple_ref;
  22. @tuple_new = debarch_to_debtriplet('unknown');
  23. is_deeply(\@tuple_new, [], 'unknown triplet');
  24. @tuple_ref = qw(gnu linux amd64);
  25. @tuple_new = debarch_to_debtriplet('amd64');
  26. is_deeply(\@tuple_new, \@tuple_ref, 'valid triplet');
  27. @tuple_ref = qw(gnu linux amd64);
  28. @tuple_new = debarch_to_debtriplet('amd64');
  29. is_deeply(\@tuple_new, \@tuple_ref, 'valid triplet');
  30. @tuple_new = debarch_to_debtriplet('linux-amd64');
  31. is_deeply(\@tuple_new, \@tuple_ref, 'valid triplet');
  32. is(debarch_to_multiarch('i386'), 'i386-linux-gnu',
  33. 'normalized i386 multiarch triplet');
  34. is(debarch_to_multiarch('amd64'), 'x86_64-linux-gnu',
  35. 'normalized amd64 multiarch triplet');
  36. ok(!debarch_eq('amd64', 'i386'), 'no match, simple arch');
  37. ok(!debarch_eq('', 'amd64'), 'no match, empty first arch');
  38. ok(!debarch_eq('amd64', ''), 'no match, empty second arch');
  39. ok(!debarch_eq('amd64', 'unknown'), 'no match, with first unknown arch');
  40. ok(!debarch_eq('unknown', 'i386'), 'no match, second unknown arch');
  41. ok(debarch_eq('unknown', 'unknown'), 'match equal unknown arch');
  42. ok(debarch_eq('amd64', 'amd64'), 'match equal known arch');
  43. ok(debarch_eq('amd64', 'linux-amd64'), 'match implicit linux arch');
  44. ok(!debarch_is('unknown', 'linux-any'), 'no match unknown on wildcard cpu');
  45. ok(!debarch_is('unknown', 'any-amd64'), 'no match unknown on wildcard os');
  46. ok(!debarch_is('amd64', 'unknown'), 'no match amd64 on unknown wildcard');
  47. ok(!debarch_is('amd64', 'unknown-any'), 'no match amd64 on unknown wildcard');
  48. ok(!debarch_is('amd64', 'any-unknown'), 'no match amd64 on unknown wildcard');
  49. ok(debarch_is('unknown', 'any'), 'match unknown on global wildcard');
  50. ok(debarch_is('amd64', 'linux-any'), 'match amd64 on wildcard cpu');
  51. ok(debarch_is('amd64', 'any-amd64'), 'match amd64 on wildcard os');
  52. ok(debarch_is('x32', 'any-amd64'), 'match x32 on amd64 wildcard os');
  53. ok(debarch_is('i386', 'any-i386'), 'match i386 on i386 wildcard os');
  54. ok(debarch_is('arm', 'any-arm'), 'match arm on arm wildcard os');
  55. ok(debarch_is('armel', 'any-arm'), 'match armel on arm wildcard os');
  56. ok(debarch_is('armhf', 'any-arm'), 'match armhf on arm wildcard os');
  57. ok(debarch_is('amd64', 'gnu-any-any'), 'match amd64 on abi wildcard');
  58. ok(debarch_is('linux-amd64', 'gnu-any-any'),
  59. 'match linux-amd64 on abi wildcard');
  60. ok(debarch_is('kfreebsd-amd64', 'gnu-any-any'),
  61. 'match kfreebsd-amd64 on abi wildcard');
  62. ok(!debarch_is_wildcard('unknown'), 'unknown is not a wildcard');
  63. ok(!debarch_is_wildcard('all'), 'all is not a wildcard');
  64. ok(!debarch_is_wildcard('amd64'), '<arch> is not a wildcard');
  65. ok(debarch_is_wildcard('any'), '<any> is a global wildcard');
  66. ok(debarch_is_wildcard('any-any'), '<any>-<any> is a wildcard');
  67. ok(debarch_is_wildcard('any-any-any'), '<any>-<any>-<any> is a wildcard');
  68. ok(debarch_is_wildcard('linux-any'), '<os>-any is a wildcard');
  69. ok(debarch_is_wildcard('any-amd64'), 'any-<cpu> is a wildcard');
  70. ok(debarch_is_wildcard('gnu-any-any'), '<abi>-any-any is a wildcard');
  71. ok(debarch_is_wildcard('any-linux-any'), 'any-<os>-any is a wildcard');
  72. ok(debarch_is_wildcard('any-any-amd64'), 'any-any-<cpu> is a wildcard');
  73. 1;