# for the tablespace directories, which hopefully won't run afoul of
# the 99 character length limit.
my $sys_tempdir = TestLib::tempdir_short;
-my $real_sys_tempdir = TestLib::perl2host($sys_tempdir) . "/tempdir";
-my $shorter_tempdir = $sys_tempdir . "/tempdir";
-dir_symlink "$tempdir", $shorter_tempdir;
+my $real_sys_tempdir = "$sys_tempdir/tempdir";
+dir_symlink "$tempdir", $real_sys_tempdir;
mkdir "$tempdir/tblspc1";
my $realTsDir = "$real_sys_tempdir/tblspc1";
-my $real_tempdir = TestLib::perl2host($tempdir);
$node->safe_psql('postgres',
"CREATE TABLESPACE tblspc1 LOCATION '$realTsDir';");
$node->safe_psql('postgres',
foreach my $filename (@tempRelationFiles)
{
append_to_file(
- "$shorter_tempdir/tblspc1/$tblSpc1Id/$postgresOid/$filename",
+ "$real_sys_tempdir/tblspc1/$tblSpc1Id/$postgresOid/$filename",
'TEMP_RELATION');
}
$node->command_ok(
[
- 'pg_basebackup', '-D',
- "$tempdir/backup1", '-Fp',
- "-T$realTsDir=$real_tempdir/tbackup/tblspc1"
+ 'pg_basebackup', '-D',
+ "$tempdir/backup1", '-Fp',
+ "-T$realTsDir=$tempdir/tbackup/tblspc1",
],
'plain format with tablespaces succeeds with tablespace mapping');
ok(-d "$tempdir/tbackup/tblspc1", 'tablespace was relocated');
# Also remove temp relation files or tablespace drop will fail.
my $filepath =
- "$shorter_tempdir/tblspc1/$tblSpc1Id/$postgresOid/$filename";
+ "$real_sys_tempdir/tblspc1/$tblSpc1Id/$postgresOid/$filename";
unlink($filepath)
or BAIL_OUT("unable to unlink $filepath");
$realTsDir =~ s/=/\\=/;
$node->command_ok(
[
- 'pg_basebackup', '-D',
- "$tempdir/backup3", '-Fp',
- "-T$realTsDir=$real_tempdir/tbackup/tbl\\=spc2"
+ 'pg_basebackup', '-D',
+ "$tempdir/backup3", '-Fp',
+ "-T$realTsDir=$tempdir/tbackup/tbl\\=spc2",
],
'mapping tablespace with = sign in path');
ok(-d "$tempdir/tbackup/tbl=spc2", 'tablespace with = sign was relocated');
my $basedir = $node->basedir;
my $tablespace_dir = "$basedir/ts_corrupt_dir";
mkdir($tablespace_dir);
-$tablespace_dir = TestLib::perl2host($tablespace_dir);
$node->safe_psql('postgres',
"CREATE TABLESPACE ts_corrupt LOCATION '$tablespace_dir';");
check_relation_corruption($node, 'corrupt2', 'ts_corrupt');
# Include a user-defined tablespace in the hopes of detecting problems in that
# area.
-my $source_ts_path = TestLib::perl2host(TestLib::tempdir_short());
+my $source_ts_path = TestLib::tempdir_short();
my $source_ts_prefix = $source_ts_path;
$source_ts_prefix =~ s!(^[A-Z]:/[^/]*)/.*!$1!;
# Take a backup and check that it verifies OK.
my $backup_path = $primary->backup_dir . '/' . $name;
- my $backup_ts_path = TestLib::perl2host(TestLib::tempdir_short());
+ my $backup_ts_path = TestLib::tempdir_short();
# The tablespace map parameter confuses Msys2, which tries to mangle
# it. Tell it not to.
# See https://www.msys2.org/wiki/Porting/#filesystem-namespaces
# for partitioned tables.
my $ts = $node->basedir . '/regress_pgbench_tap_1_ts_dir';
mkdir $ts or die "cannot create directory $ts";
-# this takes care of WIN-specific path issues
-my $ets = TestLib::perl2host($ts);
# the next commands will issue a syntax error if the path contains a "'"
$node->safe_psql('postgres',
- "CREATE TABLESPACE regress_pgbench_tap_1_ts LOCATION '$ets';");
+ "CREATE TABLESPACE regress_pgbench_tap_1_ts LOCATION '$ts';");
# Test concurrent OID generation via pg_enum_oid_index. This indirectly
# exercises LWLock and spinlock concurrency.
# Create a tablespace for testing.
my $tbspace_path = $node->basedir . '/regress_reindex_tbspace';
mkdir $tbspace_path or die "cannot create directory $tbspace_path";
-$tbspace_path = TestLib::perl2host($tbspace_path);
my $tbspace_name = 'reindex_tbspace';
$node->safe_psql('postgres',
"CREATE TABLESPACE $tbspace_name LOCATION '$tbspace_path';");
sub enable_restoring
{
my ($self, $root_node, $standby) = @_;
- my $path = TestLib::perl2host($root_node->archive_dir);
+ my $path = $root_node->archive_dir;
my $name = $self->name;
print "### Enabling WAL restore for node \"$name\"\n";
sub enable_archiving
{
my ($self) = @_;
- my $path = TestLib::perl2host($self->archive_dir);
+ my $path = $self->archive_dir;
my $name = $self->name;
print "### Enabling WAL archiving for node \"$name\"\n";
# Miscellanea
print "on Windows" if $TestLib::windows_os;
- my $path = TestLib::perl2host($backup_dir);
ok(check_mode_recursive($stream_dir, 0700, 0600),
"check stream dir permissions");
TestLib::system_log('pg_ctl', 'kill', 'QUIT', $slow_pid);
=pod
-=item perl2host()
-
-Translate a virtual file name to a host file name. Currently, this is a no-op
-except for the case of Perl=msys and host=mingw32. The subject need not
-exist, but its parent or grandparent directory must exist unless cygpath is
-available.
-
-The returned path uses forward slashes but has no trailing slash.
-
-=cut
-
-sub perl2host
-{
- my ($subject) = @_;
- return $subject unless $Config{osname} eq 'msys';
- if ($is_msys2)
- {
- # get absolute, windows type path
- my $path = qx{cygpath -a -m "$subject"};
- if (!$?)
- {
- chomp $path;
- $path =~ s!/$!!;
- return $path if $path;
- }
- # fall through if this didn't work.
- }
- my $here = cwd;
- my $leaf;
- if (chdir $subject)
- {
- $leaf = '';
- }
- else
- {
- $leaf = '/' . basename $subject;
- my $parent = dirname $subject;
- if (!chdir $parent)
- {
- $leaf = '/' . basename($parent) . $leaf;
- $parent = dirname $parent;
- chdir $parent or die "could not chdir \"$parent\": $!";
- }
- }
-
- # this odd way of calling 'pwd -W' is the only way that seems to work.
- my $dir = qx{sh -c "pwd -W"};
- chomp $dir;
- $dir =~ s!/$!!;
- chdir $here;
- return $dir . $leaf;
-}
-
-=pod
-
=item has_wal_read_bug()
Returns true if $tmp_check is subject to a sparc64+ext4 bug that causes WAL
my $newname = shift;
if ($windows_os)
{
- $oldname = perl2host($oldname);
- $newname = perl2host($newname);
$oldname =~ s,/,\\,g;
$newname =~ s,/,\\,g;
my $cmd = qq{mklink /j "$newname" "$oldname"};
my $tablespaceDir = TestLib::tempdir;
-my $realTSDir = TestLib::perl2host($tablespaceDir);
-
-$node->safe_psql('postgres', "CREATE TABLESPACE ts1 LOCATION '$realTSDir'");
+$node->safe_psql('postgres', "CREATE TABLESPACE ts1 LOCATION '$tablespaceDir'");
$node->safe_psql('postgres',
'CREATE UNLOGGED TABLE ts1_unlogged (id int) TABLESPACE ts1');
$gnat->start;
log_ipcs();
-my $regress_shlib = TestLib::perl2host($ENV{REGRESS_SHLIB});
+my $regress_shlib = $ENV{REGRESS_SHLIB};
$gnat->safe_psql('postgres', <
CREATE FUNCTION wait_pid(int)
RETURNS void
# Setup
my $tablespace_dir = $node->basedir . '/tablespace_other';
mkdir($tablespace_dir);
- $tablespace_dir = TestLib::perl2host($tablespace_dir);
my $result;
# Test redo of CREATE TABLESPACE.
$copy_file, qq(20000,30000
20001,30001
20002,30002));
- $copy_file = TestLib::perl2host($copy_file);
# Test truncation with inserted tuples using both INSERT and COPY. Tuples
# inserted after the truncation should be seen.
# Note: consistent use of forward slashes here avoids any escaping problems
# that arise from use of backslashes. That means we need to double-quote all
# the paths in the archive_command
-my $perlbin = TestLib::perl2host($^X);
+my $perlbin = $^X;
$perlbin =~ s!\\!/!g if $TestLib::windows_os;
my $archivedir_primary = $node_primary->archive_dir;
$archivedir_primary =~ s!\\!/!g if $TestLib::windows_os;