#!/usr/bin/perl -w
use strict;
use warnings FATAL => qw(all);

use File::Basename; # require is not ok for fileparse.
use File::Spec; # require is not ok for rel2abs
use FindBin;

# pathname without extension.
sub _rootname {
  my $path = shift;
  my ($basename, $dirname, $suffix) = fileparse($path, shift || qr{\.\w+});
  join "/", File::Spec->rel2abs($dirname), $basename;
}

sub prog_libdirs {
  my @libs;
  foreach my $prog (@_) {
    my $root = _rootname($prog);
    if (-d (my $d = "$root.lib")) {
      push @libs, $d;
    }
    if (-d (my $d = "$root.libs")) {
      local *DIR;
      if (opendir DIR, $d) {
	push @libs,
	  map  { "$d/$$_[1]" }
	    sort { $$a[0] <=> $$b[0] }
	      map  { /^(\d+)/ ? [$1, $_] : () }
		readdir(DIR);
	closedir DIR;
      }
    }
  }
  @libs;
}

use lib _rootname(dirname(dirname(File::Spec->rel2abs($0)))) . ".lib"
  , prog_libdirs("$FindBin::Bin/yatt"
		     , "$FindBin::RealBin/yatt")
  ;

#========================================
use YATT::Test;
use base qw(YATT::Test);

__PACKAGE__->xhf_test("/tmp/yatt-test$$"
		      , @ARGV ? @ARGV : '.')
