dos.library: move special handling of NIL: to one function
[AROS.git] / test / dos / nil.c
blobaa9f595506c24ae6cfe0ac9eedec4f8b06057bb5
1 #include <proto/dos.h>
2 #include <stdio.h>
3 #include "test.h"
6 BPTR nilfh = BNULL;
7 BPTR nillock = BNULL;
9 static void closehandles()
11 if (nilfh != BNULL) Close(nilfh);
12 if (nillock != BNULL) UnLock(nillock);
13 nilfh = BNULL;
14 nillock = BNULL;
16 int main()
18 TEXT buffer[20];
19 LONG result = 0;
20 BPTR bresult = BNULL;
22 /* Open */
23 nilfh = Open("NIL:", MODE_OLDFILE);
24 TEST((nilfh !=BNULL));
25 closehandles();
27 nilfh = Open("NIL:", MODE_NEWFILE);
28 TEST((nilfh !=BNULL));
29 closehandles();
31 nilfh = Open("NIL:", MODE_READWRITE);
32 TEST((nilfh !=BNULL));
33 closehandles();
36 /* Lock */
37 nillock = Lock("NIL:", SHARED_LOCK);
38 TEST((nillock == BNULL));
39 closehandles();
41 nillock = Lock("NIL:", EXCLUSIVE_LOCK);
42 TEST((nillock == BNULL));
43 closehandles();
45 /* DupLockFromFH */
46 nilfh = Open("NIL:", MODE_OLDFILE);
47 nillock = DupLockFromFH(nilfh);
48 Close(nilfh);
49 nilfh = BNULL;
50 TEST((nillock != BNULL));
52 /* OpenFromLock */
53 nilfh = OpenFromLock(nillock);
54 nillock = BNULL; /* Lock was consumed when opening */
55 TEST((nilfh != BNULL));
56 closehandles();
58 /* Write */
59 nilfh = Open("NIL:", MODE_OLDFILE);
60 result = Write(nilfh, buffer, sizeof(buffer));
61 TEST ((result == sizeof(buffer)));
62 closehandles();
64 /* Info */
65 nilfh = Open("NIL:", MODE_OLDFILE);
66 nillock = DupLockFromFH(nilfh);
67 result = Info(nillock, NULL);
68 TEST((result == 0));
69 closehandles();
71 /* ParentOfFH */
72 nilfh = Open("NIL:", MODE_OLDFILE);
73 bresult = ParentOfFH(nilfh);
74 TEST((bresult == BNULL));
75 closehandles();
77 cleanup();
79 return OK;
82 void cleanup()
84 closehandles();