diff --git a/tests/tbs0017.pp b/tests/tbs0017.pp index eefa916f6e..971136b770 100644 --- a/tests/tbs0017.pp +++ b/tests/tbs0017.pp @@ -1,27 +1,38 @@ + +{$ifdef go32v2} + uses dpmiexcp; + +{$endif go32v2} + +const + nextoptpass : longint = 0; procedure init; - var - endofparas : boolean; + const + endofparas : boolean = false; procedure getparastring; procedure nextopt; begin + endofparas:=true; getparastring; + inc(nextoptpass); init; - endofparas:=false; end; begin + if not endofparas then nextopt; end; begin - getparastring; + getparastring; end; begin init; + if nextoptpass<>1 then Halt(1); end. diff --git a/tests/ts010007.pp b/tests/ts010007.pp index 23efc21e44..61d703a12c 100644 --- a/tests/ts010007.pp +++ b/tests/ts010007.pp @@ -1,3 +1,5 @@ +{ $OPT=-S2 } +{ classes need objpas !! } { needed to intercept GPF (PM) } {$ifdef go32v2} uses dpmiexcp; diff --git a/tests/ts010014.pp b/tests/ts010014.pp index df36464e35..46e30f2a5e 100644 --- a/tests/ts010014.pp +++ b/tests/ts010014.pp @@ -29,8 +29,24 @@ type var p : pa; data : array[0..4] of longint; + saveexit : pointer; + + procedure testerror; + begin + exitproc:=saveexit; + if errorcode=210 then + begin + errorcode:=0; + writeln('Object valid VMT check works'); + runerror(0); + end + else + halt(1); + end; begin + saveexit:=exitproc; + exitproc:=@testerror; fillchar(data,sizeof(data),12); p:=new(pa,init); p^.p; diff --git a/tests/ts010100.pp b/tests/ts010100.pp index 4bb9a168b0..750e8b7f34 100644 --- a/tests/ts010100.pp +++ b/tests/ts010100.pp @@ -4,5 +4,6 @@ var o : tobject; begin - halt(1); + if assigned(o) then + halt(1); end.