On Sep 20, 2021, at 10:20 AM, Daniel J. Luke <[email protected]> wrote: > On Sep 20, 2021, at 8:15 AM, Frank Dean <[email protected]> wrote: >> Daniel J. Luke <[email protected]> writes: >>> The newest version of clamav uses cmake for builds. In the 'configure' >>> stage, I have it disabling tests because otherwise it won't build without >>> the test dependencies installed (check and pytest). >>> >>> Do we have a template or example of a canonical way to handle this? I don't >>> see an obvious hook for when someone is running `port test` to change >>> configure.args (I could, of course, add a post-extract/pre-configure and do >>> some non-declaritive test to see if `port test` is being run and use that >>> to branch - but that feels like a bad design choice). >> >> The rapidjson port implements a 'tests' variant to handle a similar >> situation. I used the same pattern for the libosmium port. The tests >> can then be run with `sudo port -d test current +tests`. > > That works, I guess. > > Is there interest in having base auto-add +tests if `port test` is called? (I > haven't looked at base/ code in a while, but it seems possible). I like to > imagine a future where we have enough infrastructure that we would run `port > test` for any ports that have test.run set.
On this same train of thought - clamav tests run against the installed libraries (like some other ports tend to do) - in long-ago times I'd solve this by setting DYLD_LIBRARY_PATH - but since SIP started removing these that no longer works normally. I think trace mode has a(n elaborate) workaround where it copies binaries and executes the copies, but that doesn't seem like something I should implement in a portfile ;-) [This is another instance where if trace mode were the default, things would 'just work'] Has anyone else already solved this? -- Daniel J. Luke
