File: testobj2.pp

package info (click to toggle)
fpc 3.2.2%2Bdfsg-49
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 341,452 kB
  • sloc: pascal: 3,820,194; xml: 194,356; ansic: 9,637; asm: 8,482; java: 5,346; sh: 4,813; yacc: 3,956; makefile: 2,705; lex: 2,661; javascript: 2,454; sql: 929; php: 474; cpp: 145; perl: 136; sed: 132; csh: 34; tcl: 7
file content (50 lines) | stat: -rw-r--r-- 1,045 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{ Source provided for Free Pascal Bug Report 2043 }
{ Submitted by "Luis Castedo" on  2002-07-16 }
{ e-mail: castedo@elai.upm.es }
program tb1;

{$MODE TP}

uses
  Objects;

const
  csFName1 = 'tb1_1.tmp';
  csFName2 = 'tb1_2.tmp';

var
  pStream1: PStream;
  pStream2: PStream;
  lAux    : Longint;
  error : boolean;
  f : file;
begin
  error := false;
  Write('Error checking for object streams...');
  { Legal operation on pStream1 }
  pStream1 := New(PDosStream, Init(csFName1, stCreate));
  { Faulty operation on pStream2 }
  pStream2 := New(PDosStream, Init(csFName2, stOpenRead));
  if pStream2^.Status = stOk then
     error := true;

  { Legal operation on pStream1 }
  pStream1^.Write(lAux, SizeOf(lAux));
  { Normally, if the values are not shared, this should be ok! }
  if pStream1^.Status <> stOk then
     error := true;

  pStream2^.Free;
  pStream1^.Free;

  Assign(f,csFName1);
  Erase(f);

  if error then
    Begin
      WriteLn('FAILED! Errors are mixed up!');
      halt(1);
    end
  else
      Writeln('Success!');
end.