Page MenuHomeFreeBSD

sysutils/node_exporter: Add license file, tests, docs and examples

Authored by 0mp on Jan 9 2019, 3:48 PM.


sysutils/node_exporter: Add tests, docs and examples

- Sort variables.
- Add a do-test target and prepare a testing environment.  One test is skipped
  at the moment due to a problem with detecting procfs(5) on FreeBSD.
- Install documentation and examples.
- Change pkg-descr to better match upstream's README.

I am not sure about a couple of things, however:

  • Is it fine to use USES=gmake instead of TEST_DEPENDS=gmake:devel/gmake? USES=gmake adds a dependency to the build process, which is not ideal.
  • The whole pre-test target is rather hacky. I was unable to come up with a prettier solution though. Go is a little bit hard to tame.


Test Plan
  • portlint
  • poudriere testport:
    • 11.2 & 12.0 on amd64 & i386

In order to try out the test suite:

echo "cd /usr/ports/sysutils/node_exporter/ && make test" | poudriere bulk -j 120i -i sysutils/node_exporter shells/bash textproc/gsed net-mgmt/prometheus2

Diff Detail

rP FreeBSD ports repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

0mp edited the summary of this revision. (Show Details)

This looks pretty great. I had been wondering about this recently for the prometheus2 port :)

mat requested changes to this revision.Jan 22 2019, 3:07 PM
mat added inline comments.
25–28 ↗(On Diff #52695)

This does not do what you think it does.

First, shebangs are handled during the patch phase, so this would not do anything.

Second, target(x) checks for the existence of the target, and when make is at this point, parsing the Makefile, the do-test target does not exist.

Given the footprint of shebangfix, doing it always is ok.

This revision now requires changes to proceed.Jan 22 2019, 3:07 PM
  • Set USES=shebang unconditionally as it has little performance footprint.
This revision is now accepted and ready to land.Jan 24 2019, 2:52 PM
This revision was automatically updated to reflect the committed changes.