Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/bin/pg_rewind/t/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 3 kB image not shown  

Quelle  003_extrafiles.pl

  Sprache: Shell
 


# Copyright (c) 2021-2025, PostgreSQL Global Development Group

# Test how pg_rewind reacts to extra files and directories in the data dirs.

use strict;
use warnings FATAL => 'all';
use Config;
use PostgreSQL::Test::Utils;
use Test::More;

use File::Find;

use FindBin;
use lib $FindBin::RealBin;

use RewindTest;


sub run_test
{
 my $test_mode = shift;

 RewindTest::setup_cluster($test_mode);
 RewindTest::start_primary();

 my $test_primary_datadir = $node_primary->data_dir;

 # Create a subdir and files that will be present in both
 mkdir "$test_primary_datadir/tst_both_dir";
 append_to_file "$test_primary_datadir/tst_both_dir/both_file1",
   "in both1";
 append_to_file "$test_primary_datadir/tst_both_dir/both_file2",
   "in both2";
 mkdir "$test_primary_datadir/tst_both_dir/both_subdir/";
 append_to_file
   "$test_primary_datadir/tst_both_dir/both_subdir/both_file3",
   "in both3";

 RewindTest::create_standby($test_mode);

 # Create different subdirs and files in primary and standby
 my $test_standby_datadir = $node_standby->data_dir;

 mkdir "$test_standby_datadir/tst_standby_dir";
 append_to_file "$test_standby_datadir/tst_standby_dir/standby_file1",
   "in standby1";
 append_to_file "$test_standby_datadir/tst_standby_dir/standby_file2",
   "in standby2";
 append_to_file
   "$test_standby_datadir/tst_standby_dir/standby_file3 with 'quotes'",
   "in standby3";
 mkdir "$test_standby_datadir/tst_standby_dir/standby_subdir/";
 append_to_file
   "$test_standby_datadir/tst_standby_dir/standby_subdir/standby_file4",
   "in standby4";
 # Skip testing .DS_Store files on macOS to avoid risk of side effects
 append_to_file "$test_standby_datadir/tst_standby_dir/.DS_Store",
   "macOS system file"
   unless ($Config{osname} eq 'darwin');

 mkdir "$test_primary_datadir/tst_primary_dir";
 append_to_file "$test_primary_datadir/tst_primary_dir/primary_file1",
   "in primary1";
 append_to_file "$test_primary_datadir/tst_primary_dir/primary_file2",
   "in primary2";
 mkdir "$test_primary_datadir/tst_primary_dir/primary_subdir/";
 append_to_file
   "$test_primary_datadir/tst_primary_dir/primary_subdir/primary_file3",
   "in primary3";

 RewindTest::promote_standby();
 RewindTest::run_pg_rewind($test_mode);

 # List files in the data directory after rewind. All the files that
 # were present in the standby should be present after rewind, and
 # all the files that were added on the primary should be removed.
 my @paths;
 find(
  sub {
   push @paths, $File::Find::name
     if $File::Find::name =~ m/.*tst_.*/;
  },
  $test_primary_datadir);
 @paths = sort @paths;

 # File::Find converts backslashes to slashes in the newer Perl
 # versions. To support all Perl versions, do the same conversion
 # for Windows before comparing the paths.
 if ($windows_os)
 {
  for my $filename (@paths)
  {
   $filename =~ s{\\}{/}g;
  }
  $test_primary_datadir =~ s{\\}{/}g;
 }

 is_deeply(
  \@paths,
  [
   "$test_primary_datadir/tst_both_dir",
   "$test_primary_datadir/tst_both_dir/both_file1",
   "$test_primary_datadir/tst_both_dir/both_file2",
   "$test_primary_datadir/tst_both_dir/both_subdir",
   "$test_primary_datadir/tst_both_dir/both_subdir/both_file3",
   "$test_primary_datadir/tst_standby_dir",
   "$test_primary_datadir/tst_standby_dir/standby_file1",
   "$test_primary_datadir/tst_standby_dir/standby_file2",
   "$test_primary_datadir/tst_standby_dir/standby_file3 with 'quotes'",
   "$test_primary_datadir/tst_standby_dir/standby_subdir",
   "$test_primary_datadir/tst_standby_dir/standby_subdir/standby_file4"
  ],
  "file lists match");

 RewindTest::clean_rewind_test();
 return;
}

# Run the test in both modes.
run_test('local');
run_test('remote');

done_testing();

Messung V0.5 in Prozent
C=82 H=67 G=74

¤ Dauer der Verarbeitung: 0.20 Sekunden  (vorverarbeitet am  2026-08-10) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.