mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
e07768aaf7
Create a perl module for some generic common code for our tests written in perl: afstest.pm. With this commit, the module just contains a couple of functions to calculate paths in our src and obj trees (src_path(), obj_path()), analogous to afstest_src_path and afstest_obj_path in our C helper library, libafstest_common.la. Convert all existing perl test code that uses C_TAP_SOURCE/C_TAP_BUILD to use these new functions. Change-Id: I5e4d45e3d2d59449bbfc426476cb29b710c73bc1 Reviewed-on: https://gerrit.openafs.org/14800 Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Tested-by: Benjamin Kaduk <kaduk@mit.edu>
62 lines
2.0 KiB
Perl
62 lines
2.0 KiB
Perl
# Copyright (c) 2020 Sine Nomine Associates. All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR
|
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
package afstest;
|
|
require Exporter;
|
|
our @ISA = qw(Exporter);
|
|
our @EXPORT_OK = qw(src_path obj_path);
|
|
|
|
sub
|
|
x_path($;$)
|
|
{
|
|
my ($env_var, $path) = @_;
|
|
my $tdir = $ENV{$env_var};
|
|
if (!defined($tdir)) {
|
|
# If C_TAP_SOURCE/C_TAP_BUILD isn't set, we assume we're running from
|
|
# the same cwd as one of the test programs (e.g. 'tests/foo/'). So to
|
|
# get to 'tests/', just go up one level.
|
|
$tdir = "..";
|
|
}
|
|
|
|
# $tdir now represents the 'tests/' dir. Go one level up to get to the
|
|
# top-level dir.
|
|
if (defined($path)) {
|
|
return "$tdir/../$path";
|
|
} else {
|
|
return "$tdir/..";
|
|
}
|
|
}
|
|
|
|
sub
|
|
src_path(;$)
|
|
{
|
|
my $path = $_[0];
|
|
return x_path("C_TAP_SOURCE", $path);
|
|
}
|
|
|
|
sub
|
|
obj_path(;$)
|
|
{
|
|
my $path = $_[0];
|
|
return x_path("C_TAP_BUILD", $path);
|
|
}
|