#!/usr/local/bin/perl use strict; use Test::Assertions qw(test); use Log::Trace; use Getopt::Std; use File::Path; use vars qw($opt_t $opt_T $opt_d); getopts('tTd'); plan tests => 8; ignore(1..8) unless($^O eq 'MSWin32'); #Move into the t directory chdir($1) if ($0 =~ /(.*)(\/|\\)(.*)/); use lib qw(.); #Compile unshift @INC, "../lib"; require Cache::AgainstFile; require Cache::AgainstFile::Storable; #Log::Trace import Log::Trace qw(print) if($opt_t); deep_import Log::Trace qw(print) if($opt_T); #Test directories my $cache_dir = './cache'; my $disk_cache = Cache::AgainstFile::Storable->new(sub {}, {'CacheDir' => $cache_dir}); my @trans = ( ['x', qr'.*/x$', "plain file"], ['x\y', qr'.*/x/y$', "file in subdir - backslash"], ['x/y', qr'.*/x/y$', "file in subdir - fwd slash"], ['/x/y', qr'^\w+:/x/y$', "absolute path"], ["\\\\server\\share", qr'^//server/share$', "UNC path - backslashes"], ['//server/share', qr'^//server/share$', "UNC path - forward slashes"], ['C:\Temp\baz', qr'^c:/temp/baz$', "Win32 drive letter - backslashes"], ['C:/Temp/baz', qr'^c:/temp/baz$', "Win32 drive letter - forward slashes"], ); foreach my $row (@trans) { my ($k, $regex, $desc) = @$row; my $rv = $disk_cache->_filename2cache($k); $rv = $disk_cache->_cache2filename($rv); TRACE("got $rv (expected $k)"); ASSERT(scalar $rv =~ $regex, $desc); }