Patch 2001 tests: merge checking

Title tests: merge checking
Superseder Nosy List ganesh
Related Issues
Status accepted Assigned To

Created on 2020-02-23.12:15:28 by ganesh, last changed 2020-06-20.07:18:34 by bf.

File name Status Uploaded Type Edit Remove
pEpkey.asc bf, 2020-02-24.06:03:52 application/pgp-keys
patch-preview.txt ganesh, 2020-02-23.12:15:27 text/x-darcs-patch
tests_-always-use-prim-patches-for-generating_shrinking.dpatch ganesh, 2020-02-23.12:15:27 application/x-darcs-patch
unnamed ganesh, 2020-02-23.12:15:27 text/plain
See mailing list archives for discussion on individual patches.
msg21888 (view) Author: ganesh Date: 2020-02-23.12:15:27
The first patch in this bundle is being discussed in
patch1979, if it doesn't get screened I'll need to rebase
the main patch.

This is another piece of generic infrastructure I realised
I needed while writing unwind tests. In fact it might
well be needed for the other tests that now use
MergeableSequence, if they are run with a high QC count.

I'd appreciate a quick comment on whether it's ok to

2 patches for repository darcs-unstable@darcs.net:screened:

patch b043d8bcbbe106224a90148480f9735ab0bfefc3
Author: Ganesh Sittampalam <ganesh@earth.li>
Date:   Sun Feb 23 10:58:34 GMT 2020
  * tests: always use prim patches for generating/shrinking
  We already didn't try to generate conflicted patches, and
  even shrinking unconflicted patches is actually unsound if
  there might be a conflict later in a sequence.
  Instead of needing partial functions on repo patches, it's
  better to express this invariant in the types by only storing
  prim patches, and generating the repo patches on the fly
  when actually using the test cases.

patch ba02c674facfc9dfc826adc1eb8509e07fe010c0
Author: Ganesh Sittampalam <ganesh@earth.li>
Date:   Sun Feb 23 12:06:59 GMT 2020
  * tests: introduce infrastructure for merge checking
  Because V1 and V2 patches are known to be buggy, we
  sometimes need to exclude buggy merges when using them
  to test other properties.
msg21895 (view) Author: bf Date: 2020-02-24.06:03:52
Makes sense to me. Perhaps we can even use it to run more of the V2
tests with the better generator.

One thing I stumbled over:

  -- TODO this check doesn't work at the moment - try to enable it and
see if it makes
  -- sense to keep or not.
  | False, NotEq <- (p :>: q' :>: NilFL) =\/= (q :>: p' :>: NilFL) =
      error "internal error: merge didn't produce equivalent sequences"

If you have seen this fail I would be interested to know the circumstances.
Date User Action Args
2020-02-23 12:15:28ganeshcreate
2020-02-24 06:03:53bfsetfiles: + pEpkey.asc
messages: + msg21895
2020-02-24 18:32:17ganeshsetstatus: needs-screening -> needs-review
2020-06-20 07:18:34bfsetstatus: needs-review -> accepted