zeek/auxil/btest/testing/tests/canonifier-conversion.test
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

53 lines
1.7 KiB
Plaintext

# This test verifies that we only canonicalize baselines once, namely
# when canonicalizing new test output, and that baselines get
# converted over to our header-tagged format.
#
# Test prep: make our canonifier executable
# %TEST-EXEC: chmod 755 ./diff-double-x
#
# Verify that without an existing baseline, we canonify a new one.
# %TEST-EXEC: btest -U %INPUT
# %TEST-EXEC: head -1 Baseline/canonifier-conversion/output | grep -q 'Do not edit'
# %TEST-EXEC: tail -1 Baseline/canonifier-conversion/output | grep xx
# %TEST-EXEC: cp Baseline/canonifier-conversion/output base.1
#
# For testing conversion, first create a "dated" baseline.
# %TEST-EXEC: echo x >Baseline/canonifier-conversion/output
#
# Verify that it succeeds:
# %TEST-EXEC: btest %INPUT
#
# Update the baseline. This should prefix btest-diff's header and canonify:
# %TEST-EXEC: btest -U %INPUT
#
# Verify that these have happened and preserve baseline:
# %TEST-EXEC: head -1 Baseline/canonifier-conversion/output | grep -q 'Do not edit'
# %TEST-EXEC: tail -1 Baseline/canonifier-conversion/output | grep xx
# %TEST-EXEC: cp Baseline/canonifier-conversion/output base.2
#
# Verify that it still succeeds:
# %TEST-EXEC: btest %INPUT
#
# Update the baseline again.
# %TEST-EXEC: btest -U %INPUT
# %TEST-EXEC: cp Baseline/canonifier-conversion/output base.3
#
# Verify the updated baselines remained identical.
# %TEST-EXEC: test "$(cat base.1)" = "$(cat base.2)" && test "$(cat base.2)" = "$(cat base.3)"
@TEST-EXEC: echo x >output
@TEST-EXEC: btest-diff output
%TEST-START-FILE btest.cfg
[btest]
TmpDir = .tmp
[environment]
TEST_DIFF_CANONIFIER=%(testbase)s/diff-double-x
%TEST-END-FILE
%TEST-START-FILE diff-double-x
#! /usr/bin/env bash
sed 's/x/xx/g'
%TEST-END-FILE