|
86 | 86 | # Now that we have a server that supports replication commands, test whether |
87 | 87 | # certain invalid compression commands fail on the client side with client-side |
88 | 88 | # compression and on the server side with server-side compression. |
89 | | -my$client_fails ='pg_basebackup: error:'; |
90 | | -my$server_fails = |
91 | | -'pg_basebackup: error: could not initiate base backup: ERROR:'; |
92 | | -my@compression_failure_tests = ( |
93 | | -[ |
94 | | -'extrasquishy', |
95 | | -'unrecognized compression algorithm "extrasquishy"', |
96 | | -'failure on invalid compression algorithm' |
97 | | -], |
98 | | -[ |
99 | | -'gzip:', |
100 | | -'invalid compression specification: found empty string where a compression option was expected', |
101 | | -'failure on empty compression options list' |
102 | | -], |
103 | | -[ |
104 | | -'gzip:thunk', |
105 | | -'invalid compression specification: unknown compression option "thunk"', |
106 | | -'failure on unknown compression option' |
107 | | -], |
108 | | -[ |
109 | | -'gzip:level', |
110 | | -'invalid compression specification: compression option "level" requires a value', |
111 | | -'failure on missing compression level' |
112 | | -], |
113 | | -[ |
114 | | -'gzip:level=', |
115 | | -'invalid compression specification: value for compression option "level" must be an integer', |
116 | | -'failure on empty compression level' |
117 | | -], |
118 | | -[ |
119 | | -'gzip:level=high', |
120 | | -'invalid compression specification: value for compression option "level" must be an integer', |
121 | | -'failure on non-numeric compression level' |
122 | | -], |
123 | | -[ |
124 | | -'gzip:level=236', |
125 | | -'invalid compression specification: compression algorithm "gzip" expects a compression level between 1 and 9', |
126 | | -'failure on out-of-range compression level' |
127 | | -], |
128 | | -[ |
129 | | -'gzip:level=9,', |
130 | | -'invalid compression specification: found empty string where a compression option was expected', |
131 | | -'failure on extra, empty compression option' |
132 | | -], |
133 | | -[ |
134 | | -'gzip:workers=3', |
135 | | -'invalid compression specification: compression algorithm "gzip" does not accept a worker count', |
136 | | -'failure on worker count for gzip' |
137 | | -],); |
138 | | -formy$cft (@compression_failure_tests) |
| 89 | +SKIP: |
139 | 90 | { |
140 | | -my$cfail =quotemeta($client_fails .$cft->[1]); |
141 | | -my$sfail =quotemeta($server_fails .$cft->[1]); |
142 | | -$node->command_fails_like( |
143 | | -['pg_basebackup','-D',"$tempdir/backup",'--compress',$cft->[0] ], |
144 | | -qr/$cfail/, |
145 | | -'client' .$cft->[2]); |
146 | | -$node->command_fails_like( |
| 91 | +skip"postgres was not built with ZLIB support", 6 |
| 92 | +if (!check_pg_config("#define HAVE_LIBZ 1")); |
| 93 | + |
| 94 | +my$client_fails ='pg_basebackup: error:'; |
| 95 | +my$server_fails = |
| 96 | +'pg_basebackup: error: could not initiate base backup: ERROR:'; |
| 97 | +my@compression_failure_tests =( |
147 | 98 | [ |
148 | | -'pg_basebackup','-D', |
149 | | -"$tempdir/backup",'--compress', |
150 | | -'server-' .$cft->[0] |
| 99 | +'extrasquishy', |
| 100 | +'unrecognized compression algorithm "extrasquishy"', |
| 101 | +'failure on invalid compression algorithm' |
151 | 102 | ], |
152 | | -qr/$sfail/, |
153 | | -'server' .$cft->[2]); |
| 103 | +[ |
| 104 | +'gzip:', |
| 105 | +'invalid compression specification: found empty string where a compression option was expected', |
| 106 | +'failure on empty compression options list' |
| 107 | +], |
| 108 | +[ |
| 109 | +'gzip:thunk', |
| 110 | +'invalid compression specification: unknown compression option "thunk"', |
| 111 | +'failure on unknown compression option' |
| 112 | +], |
| 113 | +[ |
| 114 | +'gzip:level', |
| 115 | +'invalid compression specification: compression option "level" requires a value', |
| 116 | +'failure on missing compression level' |
| 117 | +], |
| 118 | +[ |
| 119 | +'gzip:level=', |
| 120 | +'invalid compression specification: value for compression option "level" must be an integer', |
| 121 | +'failure on empty compression level' |
| 122 | +], |
| 123 | +[ |
| 124 | +'gzip:level=high', |
| 125 | +'invalid compression specification: value for compression option "level" must be an integer', |
| 126 | +'failure on non-numeric compression level' |
| 127 | +], |
| 128 | +[ |
| 129 | +'gzip:level=236', |
| 130 | +'invalid compression specification: compression algorithm "gzip" expects a compression level between 1 and 9', |
| 131 | +'failure on out-of-range compression level' |
| 132 | +], |
| 133 | +[ |
| 134 | +'gzip:level=9,', |
| 135 | +'invalid compression specification: found empty string where a compression option was expected', |
| 136 | +'failure on extra, empty compression option' |
| 137 | +], |
| 138 | +[ |
| 139 | +'gzip:workers=3', |
| 140 | +'invalid compression specification: compression algorithm "gzip" does not accept a worker count', |
| 141 | +'failure on worker count for gzip' |
| 142 | +],); |
| 143 | +formy$cft (@compression_failure_tests) |
| 144 | +{ |
| 145 | +my$cfail =quotemeta($client_fails .$cft->[1]); |
| 146 | +my$sfail =quotemeta($server_fails .$cft->[1]); |
| 147 | +$node->command_fails_like( |
| 148 | +[ |
| 149 | +'pg_basebackup','-D', |
| 150 | +"$tempdir/backup",'--compress', |
| 151 | +$cft->[0] |
| 152 | +], |
| 153 | +qr/$cfail/, |
| 154 | +'client' .$cft->[2]); |
| 155 | +$node->command_fails_like( |
| 156 | +[ |
| 157 | +'pg_basebackup','-D', |
| 158 | +"$tempdir/backup",'--compress', |
| 159 | +'server-' .$cft->[0] |
| 160 | +], |
| 161 | +qr/$sfail/, |
| 162 | +'server' .$cft->[2]); |
| 163 | +} |
154 | 164 | } |
155 | 165 |
|
156 | 166 | # Write some files to test that they are not copied. |
|