@@ -537,7 +537,7 @@ sub pgbench
537
537
# SQL
538
538
[
539
539
' sql syntax error' ,
540
- 0 ,
540
+ 2 ,
541
541
[
542
542
qr { ERROR: syntax error} ,
543
543
qr { prepared statement .* does not exist}
@@ -556,11 +556,11 @@ sub pgbench
556
556
557
557
# SHELL
558
558
[
559
- ' shell bad command' , 0 ,
559
+ ' shell bad command' , 2 ,
560
560
[qr {\( shell\) .* meta-command failed} ], q{ \shell no-such-command}
561
561
],
562
562
[
563
- ' shell undefined variable' , 0 ,
563
+ ' shell undefined variable' , 2 ,
564
564
[qr { undefined variable ":nosuchvariable"} ],
565
565
q{ -- undefined variable in shell
566
566
\shell echo ::foo :nosuchvariable
@@ -600,75 +600,75 @@ sub pgbench
600
600
[qr { unexpected function name} ], q{ \set i noSuchFunction()}
601
601
],
602
602
[
603
- ' set invalid variable name' , 0 ,
603
+ ' set invalid variable name' , 2 ,
604
604
[qr { invalid variable name} ], q{ \set . 1}
605
605
],
606
606
[
607
- ' set division by zero' , 0 ,
607
+ ' set division by zero' , 2 ,
608
608
[qr { division by zero} ], q{ \set i 1/0}
609
609
],
610
610
[ ' set undefined variable' ,
611
- 0 ,
611
+ 2 ,
612
612
[qr { undefined variable "nosuchvariable"} ],
613
613
q{ \set i :nosuchvariable}
614
614
],
615
615
[ ' set unexpected char' , 1, [qr { unexpected character .;.} ], q{ \set i ;} ],
616
616
[
617
617
' set too many args' ,
618
- 0 ,
618
+ 2 ,
619
619
[qr { too many function arguments} ],
620
620
q{ \set i least(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)}
621
621
],
622
622
[
623
- ' set empty random range' , 0 ,
623
+ ' set empty random range' , 2 ,
624
624
[qr { empty range given to random} ], q{ \set i random(5,3)}
625
625
],
626
626
[
627
627
' set random range too large' ,
628
- 0 ,
628
+ 2 ,
629
629
[qr { random range is too large} ],
630
630
q{ \set i random(:minint, :maxint)}
631
631
],
632
632
[
633
633
' set gaussian param too small' ,
634
- 0 ,
634
+ 2 ,
635
635
[qr { gaussian param.* at least 2} ],
636
636
q{ \set i random_gaussian(0, 10, 1.0)}
637
637
],
638
638
[
639
639
' set exponential param greater 0' ,
640
- 0 ,
640
+ 2 ,
641
641
[qr { exponential parameter must be greater } ],
642
642
q{ \set i random_exponential(0, 10, 0.0)}
643
643
],
644
644
[
645
645
' set zipfian param to 1' ,
646
- 0 ,
646
+ 2 ,
647
647
[qr { zipfian parameter must be in range \( 0, 1\) U \( 1, \d +\] } ],
648
648
q{ \set i random_zipfian(0, 10, 1)}
649
649
],
650
650
[
651
651
' set zipfian param too large' ,
652
- 0 ,
652
+ 2 ,
653
653
[qr { zipfian parameter must be in range \( 0, 1\) U \( 1, \d +\] } ],
654
654
q{ \set i random_zipfian(0, 10, 1000000)}
655
655
],
656
656
[
657
- ' set non numeric value' , 0 ,
657
+ ' set non numeric value' , 2 ,
658
658
[qr { malformed variable "foo" value: "bla"} ], q{ \set i :foo + 1}
659
659
],
660
660
[ ' set no expression' , 1, [qr { syntax error} ], q{ \set i} ],
661
661
[ ' set missing argument' , 1, [qr { missing argument} i], q{ \set} ],
662
662
[
663
- ' set not a bool' , 0 ,
663
+ ' set not a bool' , 2 ,
664
664
[qr { cannot coerce double to boolean} ], q{ \set b NOT 0.0}
665
665
],
666
666
[
667
- ' set not an int' , 0 ,
667
+ ' set not an int' , 2 ,
668
668
[qr { cannot coerce boolean to int} ], q{ \set i TRUE + 2}
669
669
],
670
670
[
671
- ' set not a double' , 0 ,
671
+ ' set not a double' , 2 ,
672
672
[qr { cannot coerce boolean to double} ], q{ \set d ln(TRUE)}
673
673
],
674
674
[
@@ -678,7 +678,7 @@ sub pgbench
678
678
q{ \set i CASE TRUE THEN 1 ELSE 0 END}
679
679
],
680
680
[
681
- ' set random error' , 0 ,
681
+ ' set random error' , 2 ,
682
682
[qr { cannot coerce boolean to int} ], q{ \set b random(FALSE, TRUE)}
683
683
],
684
684
[
@@ -691,31 +691,31 @@ sub pgbench
691
691
],
692
692
693
693
# SET: ARITHMETIC OVERFLOW DETECTION
694
- [ ' set double to int overflow' , 0 ,
694
+ [ ' set double to int overflow' , 2 ,
695
695
[ qr { double to int overflow for 100} ], q{ \set i int(1E32)} ],
696
- [ ' set bigint add overflow' , 0 ,
696
+ [ ' set bigint add overflow' , 2 ,
697
697
[ qr { int add out} ], q{ \set i (1<<62) + (1<<62)} ],
698
- [ ' set bigint sub overflow' , 0 ,
698
+ [ ' set bigint sub overflow' , 2 ,
699
699
[ qr { int sub out} ], q{ \set i 0 - (1<<62) - (1<<62) - (1<<62)} ],
700
- [ ' set bigint mul overflow' , 0 ,
700
+ [ ' set bigint mul overflow' , 2 ,
701
701
[ qr { int mul out} ], q{ \set i 2 * (1<<62)} ],
702
- [ ' set bigint div out of range' , 0 ,
702
+ [ ' set bigint div out of range' , 2 ,
703
703
[ qr { bigint div out of range} ], q{ \set i :minint / -1} ],
704
704
705
705
# SETSHELL
706
706
[
707
- ' setshell not an int' , 0 ,
707
+ ' setshell not an int' , 2 ,
708
708
[qr { command must return an integer} ], q{ \setshell i echo -n one}
709
709
],
710
710
[ ' setshell missing arg' , 1, [qr { missing argument } ], q{ \setshell var} ],
711
711
[
712
- ' setshell no such command' , 0 ,
712
+ ' setshell no such command' , 2 ,
713
713
[qr { could not read result } ], q{ \setshell var no-such-command}
714
714
],
715
715
716
716
# SLEEP
717
717
[
718
- ' sleep undefined variable' , 0 ,
718
+ ' sleep undefined variable' , 2 ,
719
719
[qr { sleep: undefined variable} ], q{ \sleep :nosuchvariable}
720
720
],
721
721
[
@@ -738,21 +738,22 @@ sub pgbench
738
738
],
739
739
[ ' misc empty script' , 1, [qr { empty command list for script} ], q{ } ],
740
740
[
741
- ' bad boolean' , 0 ,
741
+ ' bad boolean' , 2 ,
742
742
[qr { malformed variable.*trueXXX} ], q{ \set b :badtrue or true}
743
743
],);
744
744
745
745
746
746
for my $e (@errors )
747
747
{
748
748
my ($name , $status , $re , $script ) = @$e ;
749
+ $status != 0 or die " invalid expected status for test \" $name \" " ;
749
750
my $n = ' 001_pgbench_error_' . $name ;
750
751
$n =~ s / / _/ g ;
751
752
pgbench(
752
753
' -n -t 1 -M prepared -Dfoo=bla -Dnull=null -Dtrue=true -Done=1 -Dzero=0.0 ' .
753
754
' -Dbadtrue=trueXXX -Dmaxint=9223372036854775807 -Dminint=-9223372036854775808' ,
754
755
$status ,
755
- [ $status ? qr { ^$} : qr { processed: 0/1} ],
756
+ [ $status == 1 ? qr { ^$} : qr { processed: 0/1} ],
756
757
$re ,
757
758
' pgbench script error: ' . $name ,
758
759
{ $n => $script });
0 commit comments