@@ -3443,6 +3443,60 @@ def test_validate_corrupt_tablespace_map(self):
34433443'\n Unexpected Error Message: {0}\n CMD: {1}' .format (
34443444repr (e .message ),self .cmd ))
34453445
3446+ # @unittest.expectedFailure
3447+ # @unittest.skip("skip")
3448+ def test_validate_target_lsn (self ):
3449+ """
3450+ Check validation to specific LSN
3451+ """
3452+ fname = self .id ().split ('.' )[3 ]
3453+ backup_dir = os .path .join (self .tmp_path ,module_name ,fname ,'backup' )
3454+ node = self .make_simple_node (
3455+ base_dir = os .path .join (module_name ,fname ,'node' ),
3456+ set_replication = True ,
3457+ initdb_params = ['--data-checksums' ])
3458+
3459+ self .init_pb (backup_dir )
3460+ self .add_instance (backup_dir ,'node' ,node )
3461+ self .set_archiving (backup_dir ,'node' ,node )
3462+ node .slow_start ()
3463+
3464+ # FULL backup
3465+ self .backup_node (backup_dir ,'node' ,node )
3466+
3467+ node .safe_psql (
3468+ "postgres" ,
3469+ "create table t_heap as select 1 as id, md5(i::text) as text, "
3470+ "md5(repeat(i::text,10))::tsvector as tsvector "
3471+ "from generate_series(0,10000) i" )
3472+
3473+ node_restored = self .make_simple_node (
3474+ base_dir = os .path .join (module_name ,fname ,'node_restored' ))
3475+ node_restored .cleanup ()
3476+
3477+ self .restore_node (backup_dir ,'node' ,node_restored )
3478+
3479+ node_restored .append_conf (
3480+ "postgresql.auto.conf" ,"port = {0}" .format (node_restored .port ))
3481+
3482+ node_restored .slow_start ()
3483+
3484+ self .switch_wal_segment (node )
3485+
3486+ backup_id = self .backup_node (
3487+ backup_dir ,'node' ,node_restored ,
3488+ data_dir = node_restored .data_dir )
3489+
3490+ target_lsn = self .show_pb (backup_dir ,'node' )[1 ]['stop-lsn' ]
3491+
3492+ self .delete_pb (backup_dir ,'node' ,backup_id )
3493+
3494+ self .validate_pb (
3495+ backup_dir ,'node' ,
3496+ options = [
3497+ '--recovery-target-timeline=2' ,
3498+ '--recovery-target-lsn={0}' .format (target_lsn )])
3499+
34463500# validate empty backup list
34473501# page from future during validate
34483502# page from future during backup