100_Dpkg_Version.t 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # -*- mode: cperl;-*-
  2. use Test::More;
  3. use warnings;
  4. use strict;
  5. use utf8;
  6. use Encode;
  7. # Default cmp '>'
  8. my @versions = ({a => '1.0-1',
  9. b => '2.0-2',
  10. result => -1,
  11. relation => 'lt',
  12. },
  13. {a => '2.2~rc-4',
  14. b => '2.2-1',
  15. result => -1,
  16. relation => 'lt',
  17. },
  18. {a => '2.2-1',
  19. b => '2.2~rc-4',
  20. result => 1,
  21. relation => 'gt',
  22. },
  23. {a => '1.0000-1',
  24. b => '1.0-1',
  25. result => 0,
  26. relation => 'eq',
  27. },
  28. );
  29. plan tests => @versions * 2 + 1;
  30. sub dpkg_vercmp{
  31. my ($a,$b,$cmp) = @_;
  32. $cmp = 'gt' if not defined $cmp;
  33. return system('dpkg','--compare-versions',$a,$cmp,$b) == 0;
  34. }
  35. use_ok('Dpkg::Version');
  36. for my $version_cmp (@versions) {
  37. ok(Dpkg::Version::vercmp($$version_cmp{a},$$version_cmp{b}) == $$version_cmp{result},
  38. "Version $$version_cmp{a} $$version_cmp{relation} $$version_cmp{b} ok");
  39. ok(dpkg_vercmp($$version_cmp{a},$$version_cmp{b},$$version_cmp{relation}),
  40. "Dpkg concures: Version $$version_cmp{a} $$version_cmp{relation} $$version_cmp{b}");
  41. }