comparison ROADMAP @ 0:dd797d922f1c

Initial import.
author shade
date Thu, 04 Jul 2013 12:32:04 +0400
parents
children d0c6cd011ea0
comparison
equal deleted inserted replaced
-1:000000000000 0:4774f94b5184
1 TESTS AND HARNESS ROADMAPS
2 -----------------------------------------------------------------------
3
4 We can separate the tests in the several tiers. Often, it does not make
5 sense to move to the next major tier if there are bugs in the lower tiers.
6
7 Legend:
8 "----" -- status is not applicable (the test group)
9 " " -- missing the status
10 "####" -- needs expansion
11 "...." -- not started
12 "DONE" -- all planned tests are done
13 "PARTIAL" -- some of the tests are complete
14
15 ==== TIER 0.a: LANGUAGE FOUNDATION
16
17 --------- primitives:
18 .... default values
19 --------- read/write atomicity
20 DONE plain ops
21 DONE volatile ops
22 DONE per-byte plain ops
23 DONE per-byte volatile ops
24 --------- reflective read/write atomicity
25 .... plain ops
26 .... volatile ops
27 .... per-byte plain ops
28 .... per-byte volatile ops
29 ---------
30 --------- arrays:
31 DONE default values
32 --------- read/write atomicity
33 DONE plain ops
34 DONE per-byte plain ops
35 .... volatile ops
36 .... per-byte volatile ops
37 --------- reflective read/write atomicity
38 .... plain ops
39 .... per-byte plain ops
40 .... volatile ops
41 .... per-byte volatile ops
42 --------- word tearing
43 .... small arrays with plain ops
44 .... large arrays with plain ops
45 .... small arrays with volatile ops
46 .... large arrays with volatile ops
47 ---------
48 --------- objects:
49 --------- initialization safety
50 DONE instance constructors
51 DONE instance initializers
52 DONE final fields
53 DONE volatile fields
54 DONE fenced constructions
55 --------- lazy initialization
56 DONE against plain fields
57 DONE against volatile fields
58 DONE against cached volatile fields
59
60
61 ==== TIER 0.b: LANGUAGE FOUNDATION: BASIC MEMORY EFFECTS
62
63 (we need to greatly expand this)
64
65 volatiles:
66 acquire/release effects
67 non-volatile IRIW
68 volatile IRIW
69 fences
70
71 ==== TIER 1.a: CORE LIBRARY FOUNDATIONS: ATOMICS
72
73 --------- scalars:
74 --------- atomic/AtomicBoolean
75 DONE initial value
76 DONE pairwise operation tests
77 .... lambda pairwise operation tests
78 .... memory effects across the ops
79 --------- atomic/AtomicInteger
80 DONE initial value
81 DONE pairwise operation tests
82 .... lambda pairwise operation tests
83 .... memory effects across the ops
84 --------- atomic/AtomicLong
85 DONE initial value
86 DONE pairwise operation tests
87 .... high/low word tests
88 .... lambda pairwise operation tests
89 .... memory effects across the ops
90 --------- atomic/AtomicDouble
91 .... initial value
92 .... pairwise operation tests
93 .... high/low word tests
94 .... lambda pairwise operation tests
95 .... memory effects across the ops
96 --------- atomic/AtomicReference
97 .... initial value
98 .... pairwise operation tests
99 .... lambda pairwise operation tests
100 .... memory effects across the ops
101 ---------
102 --------- updaters:
103 --------- atomic/AtomicIntegerFieldUpdater:
104 .... initial value
105 DONE pairwise operation tests
106 .... lambda pairwise operation tests?
107 .... memory effects across the ops
108 .... interaction with the naked ops
109 --------- atomic/AtomicLongFieldUpdater:
110 .... initial value
111 DONE pairwise operation tests
112 .... high/low word tests
113 .... lambda pairwise operation tests?
114 .... memory effects across the ops
115 .... interaction with the naked ops
116 --------- atomic/AtomicReferenceFieldUpdater:
117 .... initial value
118 DONE pairwise operation tests
119 .... lambda pairwise operation tests?
120 .... memory effects across the ops
121 .... interaction with the naked ops
122 ---------
123 --------- arrays:
124 --------- atomic/AtomicIntegerArray:
125 DONE initial value
126 DONE pairwise operation tests
127 .... lambda pairwise operation tests?
128 .... memory effects across the ops
129 DONE word tearing
130 --------- atomic/AtomicLongArray:
131 DONE initial value
132 DONE pairwise operation tests
133 .... high/low word tests
134 .... lambda pairwise operation tests?
135 .... memory effects across the ops
136 DONE word tearing
137 --------- atomic/AtomicDoubleArray:
138 .... initial value
139 .... pairwise operation tests
140 .... high/low word tests
141 .... lambda pairwise operation tests?
142 .... memory effects across the ops
143 .... word tearing
144 --------- atomic/AtomicReferenceArray:
145 .... initial value
146 .... pairwise operation tests
147 .... lambda pairwise operation tests?
148 .... memory effects across the ops
149 .... word tearing
150 ---------
151 --------- other:
152 --------- atomic/AtomicMarkableReference:
153 .... initial value
154 .... pairwise operation tests
155 .... lambda pairwise operation tests?
156 .... memory effects across the ops
157 --------- atomic/AtomicStampedReference
158 .... initial value
159 .... pairwise operation tests
160 .... lambda pairwise operation tests?
161 .... memory effects across the ops
162
163
164 ==== TIER 1.b: CORE LIBRARY FOUNDATIONS: SYNCHRONIZERS
165
166 Q: tons of methods, we should probably cover the "protected" only?
167 Q: we can skip it and rely on testing the implementations on higher tiers?
168
169 --------- locks/AbstractQueuedSynchronizer
170 ##### TBD
171 --------- locks/AbstractQueuedLongSynchronizer
172 ##### TBD
173
174 ==== TIER 2.a: CORE LIBRARY: LOCKS
175
176 --------- synchronized
177 DONE mutual exclusion
178 .... memory effects across the ops
179 .... starvation avoidance
180 .... fairness
181 --------- locks/ReentrantLock/non-fair
182 DONE mutual exclusion
183 .... memory effects across the ops
184 .... starvation avoidance
185 --------- locks/ReentrantLock/fair
186 DONE mutual exclusion
187 .... memory effects across the ops
188 .... starvation avoidance
189 .... fairness
190 --------- locks/ReentrantReadWriteLock/non-fair
191 DONE mutual exclusion
192 .... memory effects across the ops
193 .... starvation avoidance
194 .... memory effects
195 --------- locks/ReentrantReadWriteLock/fair
196 DONE mutual exclusion
197 .... memory effects across the ops
198 .... starvation avoidance
199 .... fairness
200 --------- locks/StampedLock
201 DONE mutual exclusion
202 DONE mutual exclusion in the face of state transitions
203 .... memory effects across the ops
204 .... starvation avoidance
205 .... fairness
206
207 ==== TIER 2.b: CORE LIBRARY: AUXILIARY ATOMICS
208
209 --------- atomic/DoubleAccumulator
210 .... racy updates
211 .... racy resets
212 --------- atomic/DoubleAdder
213 .... racy updates
214 .... racy resets
215 --------- atomic/LongAccumulator
216 .... racy updates
217 .... racy resets
218 --------- atomic/LongAdder
219 .... racy updates
220 .... racy resets
221
222 ==== TIER 2.c: CORE LIBRARY: USER SYNCHRONIZERS
223
224 --------- CountDownLatch
225 .... initial state
226 .... all threads are unblocked
227 .... await after zero
228 .... memory effects across the ops
229 --------- Semaphore/non-fair
230 .... mutual exclusion
231 .... multiple passers
232 .... memory effects across the ops
233 .... starvation avoidance
234 .... fairness
235 --------- CyclicBarrier
236 #### TBD
237 --------- CompletableFuture
238 #### TBD
239 --------- Phaser
240 #### TBD
241 --------- Exchanger
242 #### TBD
243 --------- FutureTask
244 #### TBD
245
246 ==== TIER 3.x: CORE LIBRARY: EXECUTORS
247
248 --------- ScheduledThreadPoolExecutor
249 #### TBD
250 --------- ThreadPoolExecutor
251 #### TBD
252 --------- ExecutorCompletionService
253 #### TBD
254 --------- ForkJoinPool
255 #### TBD
256 --------- ForkJoinTask
257 #### TBD
258 --------- CountedCompleter
259 #### TBD
260 --------- RecursiveAction
261 #### TBD
262 --------- RecursiveTask
263 #### TBD
264
265 ==== TIER 3.x: CORE LIBRARY: CONCURRENT COLLECTIONS
266
267 --------- ConcurrentHashMap
268 #### TBD
269 --------- ConcurrentNavigableMap
270 #### TBD
271 --------- ConcurrentSkipListMap
272 #### TBD
273 --------- ConcurrentSkipListSet
274 #### TBD
275 --------- CopyOnWriteArrayList
276 #### TBD
277 --------- CopyOnWriteArraySet
278 #### TBD
279 --------- ReadMostlyVector
280 #### TBD
281
282 ==== TIER 3.x: CORE LIBRARY: QUEUES
283
284 --------- ArrayBlockingQueue
285 #### TBD
286 --------- ConcurrentLinkedDeque
287 #### TBD
288 --------- ConcurrentLinkedQueue
289 #### TBD
290 --------- LinkedBlockingDeque
291 #### TBD
292 --------- LinkedBlockingQueue
293 #### TBD
294 --------- PriorityBlockingQueue
295 #### TBD
296 --------- SynchronousQueue
297 #### TBD
298 --------- TransferQueue
299 #### TBD
300 --------- DelayQueue
301 #### TBD
302
303 ==== TIER 4.x: OTHER
304
305 --------- ThreadLocalRandom
306 #### TBD
307
308 ==== TIER 5.x: OTHER LIBRARY
309
310 --------- java.nio.buffers
311 #### read/write atomicity tests
312 #### crosscache atomicity tests