# -*- cperl -*- # This is a library file used by the Perl version of mysql-test-run, # and is part of the translation of the Bourne shell script with the # same name. use strict; sub mtr_full_hostname (); sub mtr_short_hostname (); sub mtr_init_args ($); sub mtr_add_arg ($$); sub mtr_path_exists(@); sub mtr_script_exists(@); sub mtr_exe_exists(@); ############################################################################## # # Misc # ############################################################################## # We want the fully qualified host name and hostname() may have returned # only the short name. So we use the resolver to find out. # Note that this might fail on some platforms sub mtr_full_hostname () { my $hostname= hostname(); if ( $hostname !~ /\./ ) { my $address= gethostbyname($hostname) or mtr_error("Couldn't resolve $hostname : $!"); my $fullname= gethostbyaddr($address, AF_INET); $hostname= $fullname if $fullname; } return $hostname; } sub mtr_short_hostname () { my $hostname= hostname(); $hostname =~ s/\..+$//; return $hostname; } # FIXME move to own lib sub mtr_init_args ($) { my $args = shift; $$args = []; # Empty list } sub mtr_add_arg ($$) { my $args= shift; my $format= shift; my @fargs = @_; push(@$args, sprintf($format, @fargs)); } ############################################################################## sub mtr_path_exists (@) { foreach my $path ( @_ ) { return $path if -e $path; } if ( @_ == 1 ) { mtr_error("Could not find $_[0]"); } else { mtr_error("Could not find any of " . join(" ", @_)); } } sub mtr_script_exists (@) { foreach my $path ( @_ ) { return $path if -x $path; } if ( @_ == 1 ) { mtr_error("Could not find $_[0]"); } else { mtr_error("Could not find any of " . join(" ", @_)); } } sub mtr_exe_exists (@) { my @path= @_; map {$_.= ".exe"} @path if $::glob_win32; foreach my $path ( @path ) { return $path if -x $path; } if ( @path == 1 ) { mtr_error("Could not find $path[0]"); } else { mtr_error("Could not find any of " . join(" ", @path)); } } 1;