2024-08-30T20:20:25Z Russ Sharek <[email protected]>:

Instead of setting MODGO_TEST_TARGET, it would be more
ports-idiomatic/clearer
to use a `do-test` target like:

```
do-test:
    cd ${WRKSRC} && CGO_ENABLED=1 ${MODGO_CMD} test -count 1 -v \
        -tags=test -coverprofile="cover.out" ./...
```

Tests are passing like this, so if you are alright with it, I think we can
commit this.

I'm thrilled to get some help on this, because I'm out of my depth.

That said, `make test` with that do-test change failed for me here:

make: don't know how to make cd (prerequisite of: do-test)
Stop in .
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:3090 '/usr/ports/pobj/crawley-1.7.8/build-amd64/.test_done': @cd /usr/ports/mystu...) *** Error 2 in /usr/ports/mystuff/net/crawley (/usr/ports/infrastructure/mk/bsd.port.mk:2704 'test': @lock=crawley-1.7.8;  export _LOCKS_HEL...)

Tell me what I did wrong, so we can commit the *redacted* thing. :)

-R

Did you by any chance write

do-test: cd ${WRKSRC} && ...

instead of

do-test:
    cd ${WRKSRC} && ...

If you did, then I think that's the problem. Everything after the colon are prerequisites (dependencies) to the target (do-test), see here[1]. Prerequisites are simply other targets you'd want executed *before* the do-test target. So in this case make tries to execute the 'cd' target which doesn't exist.

[1] https://man.openbsd.org/make#DEPENDENCY_LINES

Reply via email to