Skip to content

test/with-pgenvblock: compare binary outputs accurately - #2265

Open
alxndrsn wants to merge 1 commit into
getodk:nextfrom
alxndrsn:test-with-pgenvblock-proper-binary
Open

alxndrsn wants to merge 1 commit into
getodk:nextfrom
alxndrsn:test-with-pgenvblock-proper-binary

Conversation

@alxndrsn

@alxndrsn alxndrsn commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Previously, these tests were conflating linebreaks and variable separators. This commit resolves that by changing diff comparison from raw strings to the hex content of those strings.

Example failure with this change (note linebreak \x0a vs NUL char \x00):

$ ./test/test-with-pgenvblock.sh
[test-with-pgenvblock] Testing...
[test-with-pgenvblock]   Testing: specific postgres-related variables...
1,2c1,2
< 00000000: 5047 5353 4c4d 4f44 453d 320a 5047 4441  PGSSLMODE=2.PGDA
< 00000010: 5441 4241 5345 3d34 0a                   TABASE=4.
---
> 00000000: 5047 5353 4c4d 4f44 453d 3200 5047 4441  PGSSLMODE=2.PGDA
> 00000010: 5441 4241 5345 3d34 00                   TABASE=4.
[test-with-pgenvblock] !!!
[test-with-pgenvblock] !!! Test failed; see above for differences between '< actual' and '> expected'
[test-with-pgenvblock] !!!

Ref #2203

What has been done to verify that this works as intended?

  • ran locally in various configurations & failure modes
  • ci

Why is this the best possible solution? Were any other approaches considered?

Accurate tests allow for accurate future implementation fixes.

How does this change impact users? Describe intentional behavior changes from code updates. What are the regression risks?

No risk.

Is this change user-facing or otherwise noteworthy to users? If so, please add an entry for it in CHANGELOG.md.

No.

Does this change require updates to documentation? If so, please file an issue here and include the link below.

No.

Previously, these tests were conflating linebreaks and variable separators.  This commit resolves that by changing diff comparison from raw strings to the hex content of those strings.

Example failure with this change (note linebreak `\x0a` vs NUL char `\x00`):

	$ ./test/test-with-pgenvblock.sh
	[test-with-pgenvblock] Testing...
	[test-with-pgenvblock]   Testing: specific postgres-related variables...
	1,2c1,2
	< 00000000: 5047 5353 4c4d 4f44 453d 320a 5047 4441  PGSSLMODE=2.PGDA
	< 00000010: 5441 4241 5345 3d34 0a                   TABASE=4.
	---
	> 00000000: 5047 5353 4c4d 4f44 453d 3200 5047 4441  PGSSLMODE=2.PGDA
	> 00000010: 5441 4241 5345 3d34 00                   TABASE=4.
	[test-with-pgenvblock] !!!
	[test-with-pgenvblock] !!! Test failed; see above for differences between '< actual' and '> expected'
	[test-with-pgenvblock] !!!

Ref getodk#2203
@alxndrsn
alxndrsn marked this pull request as ready for review September 25, 2026 06:47

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant