1 USING: accessors math kernel namespaces continuations
2 io.files io.monitors io.monitors.recursive io.backend
3 concurrency.mailboxes tools.test destructors ;
4 IN: io.monitors.recursive.tests
6 \ pump-thread must-infer
8 SINGLETON: mock-io-backend
12 SYMBOL: dummy-monitor-created
13 SYMBOL: dummy-monitor-disposed
15 TUPLE: dummy-monitor < monitor ;
17 M: dummy-monitor dispose
18 drop dummy-monitor-disposed get [ 1+ ] change-i drop ;
20 M: mock-io-backend (monitor)
23 dummy-monitor new-monitor
24 dummy-monitor-created get [ 1+ ] change-i drop
26 "Does not exist" throw
29 M: mock-io-backend link-info
30 global [ link-info ] bind ;
32 [ ] [ 0 counter boa dummy-monitor-created set ] unit-test
33 [ ] [ 0 counter boa dummy-monitor-disposed set ] unit-test
36 mock-io-backend io-backend [
37 "" resource-path <mailbox> <recursive-monitor> dispose
41 [ t ] [ dummy-monitor-created get i>> 0 > ] unit-test
43 [ t ] [ dummy-monitor-created get i>> dummy-monitor-disposed get i>> = ] unit-test
45 [ "doesnotexist" temp-file delete-tree ] ignore-errors
48 mock-io-backend io-backend [
49 "doesnotexist" temp-file <mailbox> <recursive-monitor> dispose
54 mock-io-backend io-backend [
55 "" resource-path <mailbox> <recursive-monitor>
56 [ dispose ] [ dispose ] bi