cae8b08dc9
Now that gcksums are working and we can detect rollback issues, it's worth revisiting our most aggressive bit-error tests. Unfortunately, I think due to focusing on ckprogs, these were a bit less ready-to-go than I had hoped. We still have the read-hole, so the sort of errors we can expect to detect is a bit limited. Still, managed to come up with some schemes that I think are interesting: - ckprogs - Limited to catching bit-errors during progs, but these tests work great. - ckdata - Limited to manual bit-errors, but can detect both metdata + data errors. - ckmeta+ckfetches - Limited to manual bit-errors, ckmeta detects mtree errors, while ckfetches detects btree + data errors. - ckmeta+ckdatacksums - Limited to manual bit-errors, ckmeta detects metadata errors, while ckdatacksums detects data errors. To make testing manual bit-errors a bit easier, and to avoid reimplementing the bit randomizer in emubd, I added LFS_EMUBD_BADBLOCK_MANUAL and lfs_emubd_flip to let the tests manually control when bits flip. --- Unfortunately open files are proving to be an issue for these tests, since we don't really expect corrupted metadata after lfsr_file_open ( assuming no read-hole). For now I've limited these new ck-modes to the tests without open files, but we should probably revisit this.