Commit Graph

34 Commits

Author SHA1 Message Date
Tony Garnock-Jones f269c02c23 Rearrange for independent packages. 2020-04-27 20:27:48 +02:00
Tony Garnock-Jones 6514e1731f Must be able to disable heartbeats for testing 2019-06-20 12:19:45 +01:00
Tony Garnock-Jones 12650e2058 Repair test compilation 2019-05-09 11:43:41 +01:00
Tony Garnock-Jones 0ac2bb768e New "test" illustrating aspects of the turn-based approach taken 2019-05-07 12:07:30 +01:00
Tony Garnock-Jones db523a8974 The Great Renaming broker -> server, part 2 2019-05-05 16:51:23 +01:00
Tony Garnock-Jones f2b29a798a The Great Renaming broker -> server, part 1 2019-05-05 16:37:03 +01:00
Tony Garnock-Jones 924512f7de Make internal broker isolation protocol asymmetric, to support the needs of federation 2019-05-05 12:55:16 +01:00
Tony Garnock-Jones 40ee3b4ca7 Test and fix for observation visibility in broker 2019-05-03 17:53:24 +01:00
Tony Garnock-Jones 9e923e1c63 Failing test case: need visibility-restriction in broker clients 2019-03-25 12:16:30 +00:00
Tony Garnock-Jones 23580010bb Supervision and reloading 2019-01-28 01:14:33 +00:00
Tony Garnock-Jones 937bb7a7c4 Identify, expose, and repair bug (using the new `opaque-placeholder`) 2018-11-20 13:20:31 +00:00
Tony Garnock-Jones 93371894a0 Repair longstanding, subtle bug in both old- and new-syndicate.
during/spawn used not to add linkage assertions to its
initial-assertion set. In addition, if a spawned actor died in its
initial boot procedure, its initial assertions would never be visible.
These two problems interlocked to cause a space leak in during/spawn,
where monitoring facets would never be cleaned up.

This change does two things:
 - adds linkage assertions to the initial-assertion set in during/spawn
 - properly briefly signals initial-assertions even when a new actor
   immediately crashes.

Together, these repair the space leak in during/spawn with a crashy
child startup procedure.
2018-11-04 13:43:17 +00:00
Tony Garnock-Jones 7f14dd900c Detect and repair error in error-handling and -recovery. 2018-11-02 12:15:04 +00:00
Tony Garnock-Jones 6e06c4d502 Fix bug exposed by previous commit 2018-10-20 19:09:25 +01:00
Tony Garnock-Jones 8ff6dc5ff8 Eliminate one set of dummy wrappers 2018-10-20 18:27:15 +01:00
Tony Garnock-Jones 96d24fbb4b New test case 2018-05-06 11:06:36 +01:00
Tony Garnock-Jones 61cd0613ca Repair bogus test. I should have caught this earlier! 2018-05-06 10:55:21 +01:00
Tony Garnock-Jones be1bc6c220 Improve the kinds of tests we can do for expected output slightly. 2018-05-06 10:55:02 +01:00
Tony Garnock-Jones daba892a07 pattern-expander.rkt 2018-05-04 23:15:09 +01:00
Tony Garnock-Jones ab64f71766 Restriction-paths: right idea (?), wrong implementation. This time maybe.
Instead of having restriction-paths as an adjunct to a change, they're
more propertly a part of each assertion itself. The new `skeleton.rkt`
keeps an optional restriction-path with each assertion, treating it as
distinct from its underlying assertion. The idea of not signalling
changes in assertions that have a restriction-path mismatch stays.
2018-05-04 15:55:53 +01:00
Tony Garnock-Jones 69a8893da3 Add the concept of "restriction-path", which limits assertion visibility.
This is used when relaying: because we don't have access to the full
term, but only the projection results, we are inserting various
`(discard)`s. This is the cause of the failure in
`test/core/nesting-confusion.rkt`.

By adding `restriction-path`, we allow the inner dataspace to avoid
showing a reconstructed term to endpoints that might be able to
observe the reconstructed parts.

An alternative implementation approach is to generalize patterns in
the inner relay actor, translating all `(discard)`s into captures,
which would give us all the relevant terms that we need. The way I've
chosen to go (or at least, to try out) allows us to potentially keep
the "efficient" idea of just transmitting pattern-bound values across
some network link connecting dataspaces. The alternative would require
transmission of the full assertions, eliding no irrelevant detail.
2018-05-03 22:09:33 +01:00
Tony Garnock-Jones ee0033b6be Make test-implementation language expose all of `racket` rather than just `racket/base`, for convenience. 2018-05-03 22:08:52 +01:00
Tony Garnock-Jones fa3505e3a6 Add second, non-dataspace, test case to illustrate correct behaviour 2018-05-02 23:36:03 +01:00
Tony Garnock-Jones 852eff8d0b New (failing) test case re: the approach to relaying 2018-05-02 18:23:02 +01:00
Tony Garnock-Jones 17cee51342 Ensure (??) that relays' assertions can't outlive them 2018-05-02 18:10:52 +01:00
Tony Garnock-Jones 32d217f3e0 Care less about exact set ordering in test case 2018-05-01 17:32:03 +01:00
Tony Garnock-Jones f3ca2b6a15 Repair incorrect interleaving of actions and scripts 2018-04-30 22:47:25 +01:00
Tony Garnock-Jones a6811f2ba5 Add timer/timestate support; this prompted a change to endpoint registration.
The `add-endpoint!` call is changed in two ways:

 - the old `assertion-fn` has become `update-fn`, yielding both
   an assertion *and* an optional handler, because if the handler
   depends on a field which changes, previously the handler wasn't
   being updated

 - a new parameter, `dynamic?`, can be set to #f (it's usually #t)
   to ensure that the assertion and skeleton-interest are calculated
   only once ever, and are not connected to the dataflow machinery.

The first change makes it possible for the `(later-than (deadline))`
pattern, where `deadline` is a field, to work; the second change makes
`during` and `during/spawn` work correctly in the face of field
updates.
2018-04-29 22:27:55 +01:00
Tony Garnock-Jones f45323a097 Extract raw dataspace test to separate file 2018-04-29 16:08:52 +01:00
Tony Garnock-Jones b3d6b74dab Repair scheduling of inner dataspaces, thus allowing e.g. double nesting 2018-04-29 16:07:49 +01:00
Tony Garnock-Jones dd2cddb6a7 Nested dataspaces 2018-04-29 14:54:14 +01:00
Tony Garnock-Jones f40e7c15cc Refactor tests 2018-04-29 11:55:32 +01:00
Tony Garnock-Jones afad4cd0be Repair rotten pattern tests 2018-04-29 11:30:26 +01:00
Tony Garnock-Jones 1d67cbe65e Rearrange 2018-03-27 22:21:49 +13:00