5858
5959my $h = $node -> interactive_psql(' postgres' , \$in , \$out , $timer );
6060
61- ok ($out =~ / psql/ , " print startup banner" );
61+ like ($out , qr / psql/ , " print startup banner" );
6262
6363# Simple test case: type something and see if psql responds as expected
6464sub check_completion
@@ -75,57 +75,60 @@ sub check_completion
7575 # send the data to be sent
7676 $in .= $send ;
7777 # wait ...
78- pump $h until ($out =~ m / $pattern / || $timer -> is_expired);
79- my $okay = ($out =~ m / $pattern / && !$timer -> is_expired);
78+ pump $h until ($out =~ $pattern || $timer -> is_expired);
79+ my $okay = ($out =~ $pattern && !$timer -> is_expired);
8080 ok($okay , $annotation );
8181 # for debugging, log actual output if it didn't match
8282 local $Data::Dumper::Terse = 1;
8383 local $Data::Dumper::Useqq = 1;
84- diag ' Actual output was ' . Dumper($out ) . " \n " if !$okay ;
84+ diag ' Actual output was ' . Dumper($out ) . " Did not match \" $pattern \"\n "
85+ if !$okay ;
8586 return ;
8687}
8788
8889# Clear query buffer to start over
8990# (won't work if we are inside a string literal!)
9091sub clear_query
9192{
92- check_completion(" \\ r\n " , " postgres=# " , " \\ r works" );
93+ check_completion(" \\ r\n " , qr / postgres=# / , " \\ r works" );
9394 return ;
9495}
9596
9697# check basic command completion: SEL<tab> produces SELECT<space>
97- check_completion(" SEL\t " , " SELECT " , " complete SEL<tab> to SELECT" );
98+ check_completion(" SEL\t " , qr / SELECT / , " complete SEL<tab> to SELECT" );
9899
99100clear_query();
100101
101102# check case variation is honored
102- check_completion(" sel\t " , " select " , " complete sel<tab> to select" );
103+ check_completion(" sel\t " , qr / select / , " complete sel<tab> to select" );
103104
104105# check basic table name completion
105- check_completion(" * from t\t " , " \\ * from tab1 " , " complete t<tab> to tab1" );
106+ check_completion(" * from t\t " , qr / \ * from tab1 / , " complete t<tab> to tab1" );
106107
107108clear_query();
108109
109110# check table name completion with multiple alternatives
110111# note: readline might print a bell before the completion
111112check_completion(
112113 " select * from my\t " ,
113- " select \\ * from my\a ?tab" ,
114+ qr / select \* from my\a ?tab/ ,
114115 " complete my<tab> to mytab when there are multiple choices" );
115116
116117# some versions of readline/libedit require two tabs here, some only need one
117- check_completion(" \t\t " , " mytab123 +mytab246" ,
118+ check_completion(
119+ " \t\t " ,
120+ qr / mytab123 +mytab246/ ,
118121 " offer multiple table choices" );
119122
120- check_completion(" 2\t " , " 246 " ,
123+ check_completion(" 2\t " , qr / 246 / ,
121124 " finish completion of one of multiple table choices" );
122125
123126clear_query();
124127
125128# check case-sensitive keyword replacement
126129# note: various versions of readline/libedit handle backspacing
127130# differently, so just check that the replacement comes out correctly
128- check_completion(" \\ DRD\t " , " drds " , " complete \\ DRD<tab> to \\ drds" );
131+ check_completion(" \\ DRD\t " , qr / drds / , " complete \\ DRD<tab> to \\ drds" );
129132
130133clear_query();
131134
0 commit comments