--- /dev/null
+use strict;
+use warnings;
+our @tests;
+
+BEGIN {
+ @tests = (
+ 'Math-Symbolic-0.502-x86_64-linux-gnu-thread-multi-5.8.7.par'
+ => ['Math-Symbolic', '0.502', 'x86_64-linux-gnu-thread-multi', '5.8.7'],
+ 'Math-Symbolic-0.502.tar.gz'
+ => ['Math-Symbolic', '0.502', undef, undef],
+ 'Foo-0.5.3_1-x86-win32-thread-multi-any_version'
+ => ['Foo', '0.5.3_1', 'x86-win32-thread-multi', 'any_version'],
+ 'Foo-v0.5.3_1-MSWin32-x86-thread-multi-5.005_03'
+ => ['Foo', 'v0.5.3_1', 'MSWin32-x86-thread-multi', '5.005_03'],
+ 'Foo-Bar-5-0.5.3_1-MSWin32-x86-thread-multi-5.005_03'
+ => ['Foo-Bar-5', '0.5.3_1', 'MSWin32-x86-thread-multi', '5.005_03'],
+ );
+}
+
+use Test::More tests => int(scalar(@tests)/2) + 1;
+
+use_ok('PAR::Dist');
+
+while (@tests) {
+ my $str = shift @tests;
+ my $res = shift @tests;
+ my @res = PAR::Dist::parse_dist_name($str);
+ is_deeply($res, \@res, "Parsing '$str'");
+}