blob: 8afdc445cae26e78ac11017998c3808be967a4b5 [file] [log] [blame]
MODULE testdelete ;
(* A test module to test file creation and deletion using base
PIM libraries. *)
IMPORT FIO, SFIO, DynamicStrings, StringFileSysOp ;
FROM libc IMPORT printf, exit ;
FROM FormatStrings IMPORT Sprintf1 ;
CONST
MaxFile = 10 ;
VAR
files: ARRAY [0..MaxFile] OF FIO.File ;
PROCEDURE Assert (condition: BOOLEAN; line: CARDINAL) ;
BEGIN
IF NOT condition
THEN
printf ("%s:%d: assert failed\n", __FILE__, line) ;
exit (1)
END
END Assert ;
(*
CreateFiles - create MaxFile files saving the file handle
into files.
*)
PROCEDURE CreateFiles ;
VAR
i: CARDINAL ;
s: DynamicStrings.String ;
BEGIN
FOR i := 1 TO HIGH (files) DO
s := DynamicStrings.InitString ("file%03d") ;
s := Sprintf1 (s, i) ;
files[i] := SFIO.OpenToWrite (s) ;
s := DynamicStrings.KillString (s) ;
s := DynamicStrings.InitString ("some text inside file %d\n") ;
s := Sprintf1 (s, i) ;
s := DynamicStrings.KillString (SFIO.WriteS (files[i], s)) ;
FIO.Close (files[i])
END
END CreateFiles ;
(*
DeleteFiles - delete every file in files.
*)
PROCEDURE DeleteFiles ;
VAR
i: CARDINAL ;
s: DynamicStrings.String ;
BEGIN
(* Open the files first. *)
FOR i := 1 TO HIGH (files) DO
s := DynamicStrings.InitString ("file%03d") ;
s := Sprintf1 (s, i) ;
files[i] := SFIO.OpenToRead (s) ;
Assert (StringFileSysOp.Exists (s), __LINE__) ;
Assert (StringFileSysOp.IsFile (s), __LINE__) ;
s := DynamicStrings.KillString (s)
END ;
(* Now delete them. *)
FOR i := 1 TO HIGH (files) DO
s := SFIO.GetFileName (files[i]) ;
Assert (StringFileSysOp.Exists (s), __LINE__) ;
Assert (StringFileSysOp.IsFile (s), __LINE__) ;
Assert (StringFileSysOp.Unlink (s), __LINE__) ;
Assert (NOT StringFileSysOp.Exists (s), __LINE__) ;
FIO.Close (files[i]) ;
s := DynamicStrings.KillString (s)
END
END DeleteFiles ;
(*
Init -
*)
PROCEDURE Init ;
BEGIN
CreateFiles ;
DeleteFiles ;
printf ("all tests passed\n")
END Init ;
BEGIN
Init
END testdelete.