basho/riak_core — pull request #269 by seancribbs (2013-01-24 16:03:36+00:00)
Title: VClock QuickCheck (incomplete)

This is a QuickCheck property for vclock. The property was created so that the `dominates/2` could be added, with confidence that other parts of the API are solid as well. `dominates/2` essentially implements the `>` relation (strict-order) where `descends/2` implements the `>=` relation (partial-order). This is/will be used in various parts of `riak_kv` where vclocks are compared.

The property also includes an incomplete test for pruning. The model does not yet prune properly, but we did discover that without all of the property bucket properties set, pruning does not occur at all. `vclock` assumes that they are all set and blindly compares integers to the atom `undefined` in places. This is either a bug or a design decision (in which case we should probably have predicates that warn/error when the bucket properties aren't set). Regardless, the pruning portion of the statem property needs to be finished or discarded.