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.