buildpacks / libcnb

A non-opinionated language binding for the Cloud Native Buildpack Buildpack and Extension specifications
Apache License 2.0
31 stars 13 forks source link

Ensure non-nil debugwriter for easier v2v migration #249

Closed BarDweller closed 1 year ago

BarDweller commented 1 year ago

Some testcases are driving code that uses logger.debugWriter() when debug has not been enabled, this currently leads to a nil writer being returning, which causes code panics within the debug calls. This is an indirect side effect of the choice to move from a struct in the v1 poet logger, to an interface within the v2 logger. Many testcases do not initialize a logger, and run without debug being set, and yet end up driving code that attempts to log debug messages. Mostly these are ok when logged via the log.Debug* methods, but if the writer is obtained directly then panics can occur when the nil is dereferenced.

Rather than chasing down every testcase individually, it seems safer to return a no-op writer when debug is disabled.

Added two testcases to check new behavior.