@@ -938,3 +938,74 @@ def test_drop_rel_during_backup_ptrack(self):
938938
939939# Clean after yourself
940940self .del_test_dir (module_name ,fname )
941+
942+ # @unittest.skip("skip")
943+ def test_persistent_slot_for_stream_backup (self ):
944+ """"""
945+ fname = self .id ().split ('.' )[3 ]
946+ backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
947+ node = self .make_simple_node (
948+ base_dir = os .path .join (module_name ,fname ,'node' ),
949+ set_replication = True ,
950+ initdb_params = ['--data-checksums' ],
951+ pg_options = {
952+ 'wal_level' :'replica' ,
953+ 'max_wal_size' :'40MB' })
954+
955+ self .init_pb (backup_dir )
956+ self .add_instance (backup_dir ,'node' ,node )
957+ self .set_archiving (backup_dir ,'node' ,node )
958+ node .slow_start ()
959+
960+ node .safe_psql (
961+ "postgres" ,
962+ "SELECT pg_create_physical_replication_slot('slot_1')" )
963+
964+ # FULL backup
965+ self .backup_node (
966+ backup_dir ,'node' ,node ,
967+ options = ['--stream' ,'--slot=slot_1' ])
968+
969+ # FULL backup
970+ self .backup_node (
971+ backup_dir ,'node' ,node ,
972+ options = ['--stream' ,'--slot=slot_1' ])
973+
974+ # Clean after yourself
975+ self .del_test_dir (module_name ,fname )
976+
977+ # @unittest.skip("skip")
978+ def test_temp_slot_for_stream_backup (self ):
979+ """"""
980+ fname = self .id ().split ('.' )[3 ]
981+ backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
982+ node = self .make_simple_node (
983+ base_dir = os .path .join (module_name ,fname ,'node' ),
984+ set_replication = True ,
985+ initdb_params = ['--data-checksums' ],
986+ pg_options = {
987+ 'wal_level' :'replica' ,
988+ 'max_wal_size' :'40MB' })
989+
990+ self .init_pb (backup_dir )
991+ self .add_instance (backup_dir ,'node' ,node )
992+ self .set_archiving (backup_dir ,'node' ,node )
993+ node .slow_start ()
994+
995+ if self .get_version (node )< self .version_to_num ('10.0' ):
996+ return unittest .skip ('You need PostgreSQL >= 10 for this test' )
997+ else :
998+ pg_receivexlog_path = self .get_bin_path ('pg_receivewal' )
999+
1000+ # FULL backup
1001+ self .backup_node (
1002+ backup_dir ,'node' ,node ,
1003+ options = ['--stream' ,'--slot=slot_1' ,'--temp-slot' ])
1004+
1005+ # FULL backup
1006+ self .backup_node (
1007+ backup_dir ,'node' ,node ,
1008+ options = ['--stream' ,'--temp-slot' ])
1009+
1010+ # Clean after yourself
1011+ self .del_test_dir (module_name ,fname )