Page MenuHomeFreeBSD

Skip two bmake tests when using a strict POSIX shell
AbandonedPublic

Authored by arichardson on Sep 28 2020, 10:40 AM.

Details

Reviewers
sjg
Summary

Running these tests on Ubuntu fails because the default shell (dash) strips
all ennvironment variables that contain - or ., so those tests that check
for the in env output fail.

Test Plan

I can now bootstrap bmake on Ubuntu without forcing the shell to be /bin/bash (https://reviews.freebsd.org/rS365950)

Diff Detail

Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 33854
Build 31067: arc lint + arc unit

Event Timeline

arichardson created this revision.

Which version of Ubuntu are you talking about? I build all version of bmake on ubuntu without problem, and
the expected result for export.mk does not include any variable that does not consist of only [_A-Za-z0-9]

make-exported should be fixed - upstream

FYI later versions of bmake use -r for all tests to avoid contamination from your local makefiles.

In D26576#593624, @sjg wrote:

Which version of Ubuntu are you talking about? I build all version of bmake on ubuntu without problem, and
the expected result for export.mk does not include any variable that does not consist of only [_A-Za-z0-9]

make-exported should be fixed - upstream

FYI later versions of bmake use -r for all tests to avoid contamination from your local makefiles.

export.exp contains the line &=ampersand which will not be printed by dash since it filters out that variable (& is not allowed in env vars by dash).
Similarly make-exported.exp has -literal=make-exported-value which is also filtered out by dash due to the - flag.

Is it possible that the latest upstream version has changes to these files that are not imported to FreeBSD yet?

In D26576#593624, @sjg wrote:

Which version of Ubuntu are you talking about? I build all version of bmake on ubuntu without problem, and
the expected result for export.mk does not include any variable that does not consist of only [_A-Za-z0-9]

make-exported should be fixed - upstream

FYI later versions of bmake use -r for all tests to avoid contamination from your local makefiles.

export.exp contains the line &=ampersand which will not be printed by dash since it filters out that variable (& is not allowed in env vars by dash).

True, that should be fixed.

Similarly make-exported.exp has -literal=make-exported-value which is also filtered out by dash due to the - flag.

Yes discussing with author what that test is trying to do.

Is it possible that the latest upstream version has changes to these files that are not imported to FreeBSD yet?

Not in these files, no. Though there have been a lot more unit tests added in recent months.

BTW I don't think your test works quite right; || true rather than || echo 0 otherwise you get 0 0 as the value - at least with dash.
But better to fix the tests to be portable, and that's best done upstream.

jrtc27 added inline comments.
contrib/bmake/unit-tests/Makefile
153

Should I wait for an upstream resolution? Or should I fix this revision and commit the workaround?

Should I wait for an upstream resolution? Or should I fix this revision and commit the workaround?

Wait for upstream pls your proposed fix will just need to be reverted at next import.