From afad6a1e0521e52dfaffe937ecab2515a76b8134 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 17 Aug 2022 22:15:52 -0700 Subject: cli-tests: account for protojson whitespace randomization Annoyingly, for JSON formatting protojson randomly selects a spacing method (one space or two spaces) depending on a hash of some sections of the Go binary, to discourage depending on its output being stable. This breaks some checks in the CLI tests of the contents of fscrypt.conf and the output of 'fscrypt status'. As there doesn't appear to be a straightforward alternative currently, for now just update the tests to take into consideration the possible extra space. --- cli-tests/run.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'cli-tests/run.sh') diff --git a/cli-tests/run.sh b/cli-tests/run.sh index f6a4868..9ab5b78 100755 --- a/cli-tests/run.sh +++ b/cli-tests/run.sh @@ -112,6 +112,10 @@ filter_test_output() # "bash: line 1: " instead of just "bash: ". Filter out the "line 1: ". sedscript+="s@^bash: line 1: @bash: @;" + # Work around protojson whitespace randomization. + sedscript+="/^Options: /s@ @ @g;" + sedscript+="s@^Options: @Options: @;" + sed -e "$sedscript" "$raw_output" } @@ -162,7 +166,7 @@ setup_for_test() fscrypt setup --time=1ms --quiet --all-users > /dev/null # The tests assume kernel support for v2 policies. - if ! grep -q '"policy_version": "2"' "$FSCRYPT_CONF"; then + if ! grep -E -q '"policy_version": +"2"' "$FSCRYPT_CONF"; then cat 1>&2 << EOF ERROR: Can't run these tests because your kernel doesn't support v2 policies. You need kernel v5.4 or later. -- cgit v1.2.3