Safer handling of argument-logging memory of cwd
[users/jgh/exim.git] / test / t / 00-basic.t
index 99a3e5fbd15c80e01e5620df959e0deedcc34a14..2fbd2decd0499ecd0711b1250b1fd40d95f56def 100644 (file)
@@ -5,7 +5,7 @@ use Test::Exception;
 use lib 'lib';
 use_ok 'Exim::Runtest', qw(:all) or BAIL_OUT 'Can not load the module';
 
-can_ok 'Exim::Runtest', qw(mailgroup dynamic_socket);
+can_ok 'Exim::Runtest', qw(mailgroup dynamic_socket exim_binary flavour flavours);
 pod_coverage_ok 'Exim::Runtest' => 'docs complete';
 
 subtest 'mailgroup' => sub {
@@ -31,5 +31,22 @@ subtest 'dynamic_socket' => sub {
     $socket->close;
 };
 
+subtest 'exim_binary' => sub {
+    my @argv1 = qw(/bin/sh a b);
+    my @argv2 = qw(t/samples/foo a b);
+    chomp(my $cwd = `pwd`); # don't use Cwd, as we use Cwd in the tested module already
+    is_deeply [exim_binary(@argv1)], \@argv1 => 'got the binary as abs path from argv';
+    is_deeply [exim_binary(@argv2)], ["$cwd/t/samples/foo", @argv2[1,$#argv2]] => 'got the binary as rel path from argv';
+};
+
+subtest 'flavour' => sub {
+    is flavour('t/samples/debian8+os-release/etc'), 'debian8' => 'got flavour debian8 from os-release';
+    is flavour('t/samples/debian8+debian-version/etc'), 'debian8' => 'got flavour debian8 from debian_version';
+    is flavour('t/samples/debian.sid/etc'), 'debian' => 'got flavour debian from debian sid w/o VERSION_ID';
+    is flavour('t/samples/fedora24/etc'), 'fedora24' => 'got flavour fedora24 from os-release';
+    is flavour('t/samples/empty'), undef()           => 'got empty flavour (undef)';
+    # we do not have flavours anymore (2017-03-18)
+    # is_deeply [flavours()], ['debian8'] => 'got available flavours';
+};
 
 done_testing;