]> git.saurik.com Git - apple/xnu.git/blob - iokit/Tests/Tests.h
9cf513b38fc131c6d76e6770ade07d10889fbc44
[apple/xnu.git] / iokit / Tests / Tests.h
1 /*
2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23 #include <IOKit/IOLib.h>
24
25 #ifdef __cplusplus
26
27 #define logPrintf(x) \
28 do { \
29 kprintf x; \
30 } while (0)
31
32 #define verPrintf(x) logPrintf(x)
33
34 // Assumes 'bool res = true' in current scope
35 #define TEST_ASSERT(t, l, c) \
36 do { \
37 if ( !(c) ) { \
38 verPrintf(("TEST (%c) test %s failed\n", t, l)); \
39 res = false; \
40 } \
41 } while(0)
42
43 #define logSpace() do { } while(0)
44 #define checkPointSpace() ((void *) 0)
45 #define checkSpace(l, ckp, d) ((int) 1)
46
47 // In TestContainers.cc
48 extern const int numStrCache;
49 extern const char *strCache[];
50
51 extern void testString();
52 extern void testSymbol();
53 extern void testData();
54
55 // In TestCollections.cc
56 extern void testArray();
57 extern void testSet();
58 extern void testDictionary();
59 extern void testIterator();
60
61 // In TestDevice.cc
62 extern void testWorkLoop();
63
64 #include <libkern/c++/OSObject.h>
65
66 class IOWorkLoop;
67 class IOCommandQueue;
68 class IOInterruptEventSource;
69
70 class TestDevice;
71 typedef void (*TestDeviceAction)(TestDevice *, int, void *);
72
73 class TestDevice : public OSObject
74 {
75 OSDeclareDefaultStructors(TestDevice)
76
77 IOWorkLoop *workLoop;
78 int intCount;
79 IOCommandQueue *commQ;
80
81 public:
82 IOInterruptEventSource *intES;
83
84 virtual bool init();
85 virtual void free();
86
87 void rawCommandOccurred
88 (void *field0, void *field1, void *field2, void *field3);
89 kern_return_t enqueueCommand(bool sleep,
90 TestDeviceAction act, int tag, void *dataP);
91
92 void interruptAction(IOInterruptEventSource *event, int count);
93
94 void producer1Action(int tag);
95 void producer2Action(int tag, void *inCount);
96
97 void alarm();
98 };
99
100 #endif /* __cplusplus */