100_Dpkg_Version.t 1.0 KB

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