142 Commits
Author SHA1 Message Date
Oliver Hamlet 136f3983c3 Set version and changelog for 0.29.6 2026-06-27 18:33:18 +01:00
Oliver Hamlet 520242b90c Add config for measuring code coverage using MSVC 2026
It may work for older versions of MSVC, but before 2026 it wasn't available in the Community edition.
2026-05-29 19:45:32 +01:00
Oliver Hamlet 1dac8e0396 Fix missing PDB in C++ wrapper debug packages 2026-05-28 18:27:40 +01:00
Oliver Hamlet c8ffc90b00 More test fixture refactoring 2026-05-14 21:30:58 +01:00
Oliver Hamlet 7942083cd0 Allow loaded plugins to be retrieved using a .ghost extension
libloot trims any .ghost extension from plugins it loads, so be consistent with that behaviour when getting or sorting plugins.
2026-05-14 18:58:26 +01:00
Oliver Hamlet 4410265e10 Reduce test fixture filesystem interactions
Only copy across the plugins that are needed for each test to run. This reduces the tests' run time from 25s to 9s locally.

The exact plugins used for some tests changed (mostly to simplify handling of Starfield, which doesn't have Blank.esm in its test plugins) but only when the change didn't matter for what is being tested.

It's possible that some GameInterfaceTest tests were coincidently testing ghosted plugin support and now aren't, so I've added some more tests to explicitly cover that.
2026-05-14 18:53:50 +01:00
Oliver Hamlet 3873194408 Add a little more test coverage 2026-05-14 18:40:26 +01:00
Oliver Hamlet a7bd546a67 Don't use test fixtures unnecessarily
They're very slow due to their filesystem operations. This reduces the
tests running time from 27s to 25s locally.
2026-05-14 18:39:42 +01:00
Oliver Hamlet a12fcfcef2 Set version and changelog for 0.29.5 2026-05-05 17:52:18 +01:00
Oliver Hamlet 1970a0b30c Fix new clippy errors
The failing lint was added in Rust v1.95.0.
2026-04-28 19:00:22 +01:00
Oliver Hamlet 391b9ad7c9 Fix C++ test printers
It turns out that they were never used, I noticed this while debugging some LOOT tests, which have a copy of the same printers.h file.
2026-04-22 18:05:27 +01:00
Oliver Hamlet 56bafaead3 Set version and changelog for 0.29.4 2026-04-17 18:00:31 +01:00
Oliver Hamlet 7104c92bef Set version and changelog for 0.29.3 2026-04-07 18:23:11 +01:00
Oliver Hamlet 9d73fb5800 Update Doxygen config file
This was done by running `doxygen -u Doxyfile`, using doxygen v1.9.8, as that's the oldest version used in CI, and the latest version (1.16.1) doesn't warn about any other settings being obsolete.
2026-04-04 18:15:32 +01:00
Oliver Hamlet a9d323eb7e Fix C++ header doc comments
Doxygen warned about these.
2026-04-04 17:57:19 +01:00
Oliver Hamlet 991e87b9ad Replace use of my older pseudonym with my name 2026-04-03 17:07:54 +01:00
Oliver Hamlet e89b3b841f Update copyright year ranges
I'm not sure if they add any value, but the GPL howto says to, and they're already there.
2026-04-03 17:06:31 +01:00
Oliver Hamlet 4574d8751a Specify the minimum supported Rust version 2026-04-03 16:19:47 +01:00
Oliver Hamlet d929ab9dab Set version and changelog for 0.29.2 2026-03-27 13:56:04 +00:00
Oliver Hamlet d869833742 Set version to 0.29.1 2026-03-13 18:40:53 +00:00
Oliver Hamlet 7de8bdb3a8 Set version to v0.29.0 2026-02-04 21:18:04 +00:00
Oliver Hamlet 81388873da Add bits for cross-compiling to Windows using MinGW
Some tests have been updated because UTF-8 is used as the native
path encoding with MinGW/Wine, unlike MSVC/Windows.

Some of the tests fail:

- 4 Rust tests fail because long paths are not enabled and so the
  paths used when creating symlinks and junction paths are too
  long. I've tested them with x86_64-pc-windows-gnu and
  x86_64-pc-windows-gnullvm, and both see the same behaviour. The
  tests pass when the MinGW-built executable is run on Windows, so
  this is a Wine limitation.
- 12 C++ tests fail because directory symlink creation is not
  implemented. They fail whether the MinGW-built executable is run
  in Wine or on Windows, so this is a MinGW limitation.
- 1 C++ filesystem test fails because long paths are not enabled.

The failing tests are skipped at runtime when built with MinGW,
aside from the one test for long paths being enabled, which expects
them to be disabled when built with MinGW.

If long paths are enabled, e.g. by running

wine reg add HKLM\\System\\CurrentControlSet\\Control\\Filesystem /v LongPathsEnabled /t REG_DWORD /d 1 /f

then many more tests fail because the C++ tests create long paths
when that Registry value is set, but it doesn't seem to actually
enable long path support in Wine, so various filesystem operations
fail.
2026-02-03 08:52:23 +00:00
Oliver Hamlet 6fb3c8fb6c Reformat table in cpp/README.md 2026-01-31 16:04:23 +00:00
Oliver Hamlet 45877669f1 Only create links in tests when necessary 2026-01-31 15:29:34 +00:00
Oliver Hamlet 10c6efca16 Use lowercase windows.h include
To fix a MinGW error.
2026-01-31 15:29:33 +00:00