Files
littlefs/tests
Christopher Haster d30ed42c7f Ported/cleaned up mtree tests
Well this was quite tedious, but these tests are valuable since our
mtree has a number of hard-to-reach edge cases.

This mainly ports over to the new attr-list format for mdir commits, but
also cleans up a couple of lingering tedious TODO things:

- mtree tests now use the new mdir commit attr-list format.

- Reoriented most tests to use namelookups instead of mid lookups.

  Using mid lookups in testing is/was really fragile, since it depends
  on exactly how mids get split and moved around.

  namelookups are more robust, by design they don't care about the
  underlying mtree structure. And really, namelookups are what we care
  about in the mtree, mids are just a mechanism for mtree updates to
  work.

  We don't remove all mid checks though, we just compare against
  namelookup-derived mids when it matters (the mtree_opened tests for
  example).

- The names we use in testing have also been updated to no longer create
  invalid mtrees, i.e. names are ordered correctly and always have a
  did.

  The previous mess always risked triggering asserts with false
  positives.

- By adopting namelookup in the tests, we can actually test the on-disk
  state of fuzz testing.

  Though note we can't change names once written, without invalidating
  our mtree. This limits fuzz testing a little bit, but it's still  a
  big improvement over the previous fuzz tests.

- Dropped mtree tests that no longer really make sense.

  Mainly that the did should never be deleted, so you can never end up
  with an empty mtree, dropping the left-most mdir, etc.

  There were still a few of things lingering around.

With this, all tests are working again with the attr-list changes. Wooh.
2024-02-03 18:17:09 -06:00
..
2024-02-03 18:17:09 -06:00