]> wimlib.net Git - wimlib/commit
Fix wlfuzz and enable in CI
authorEric Biggers <ebiggers3@gmail.com>
Sun, 9 Apr 2023 18:39:36 +0000 (11:39 -0700)
committerEric Biggers <ebiggers3@gmail.com>
Sun, 9 Apr 2023 18:58:10 +0000 (11:58 -0700)
commit8b74835779d25a217158ec2a3a3b5ade11cb9e4b
treea2bb3d2e4a822c722bc776b0b3ac8157a6fc31ed
parent635dbb97004ad99787de812fa536ada60a8b7318
Fix wlfuzz and enable in CI

- Fix build failure on Linux by linking with the math library.

- Don't hard-code the temporary directory to E:\ on Windows.

- Relax some comparisons that don't work reliably on Windows:
   - Security descriptor
   - Last access time
   - Sparse file attribute (clear only)

- Relax the timestamp comparisons when running on an ext4 filesystem,
  since ext4 doesn't support the full timestamp range that Windows does.
  Also, generate more timestamps that are close to the present date.

- Make the command-line argument give the number of seconds to run,
  rather than the number of iterations.  This makes it possible to run
  wlfuzz for 2 minutes in GitHub Actions, like the libFuzzer jobs.

- Increase coverage by using a different random seed on each run.

- Make wlfuzz initialize wimlib with STRICT_{CAPTURE,APPLY}_PRIVILIGES
  on Windows.  I.e., don't allow running wlfuzz as non-Administrator.

- Print security descriptors and timestamps when they differ.

- Add GitHub Actions jobs that run wlfuzz on Linux and Windows.
.github/workflows/ci.yml
Makefile.am
include/wimlib/test_support.h
src/test_support.c
src/timestamp.c
tests/wlfuzz.c