- moves the functions that depend on the OS state into HashCache - removes dead 'FixThisError' (??) from test_hashcache - adds new FakeHashCache, which gives the test suite control of how the files and clock appear to the hashcache - new tests using this which check three key behaviours: - new files are not inserted in the cache - old files are inserted in the cache and can hit - if a file is modified within a short time window, we don't get an incorrect cached result