diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index d76e1c5..fef20c3 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -116,6 +116,8 @@ - Added `scripts/package_debian_source.sh` and `make debian-source-package` to assemble Debian/Ubuntu source-package trees from the current project without publishing or uploading anything. +- Release preflight now smoke-tests the staged installed `tnt` binary's + `--log-check` and `--log-recover` modes, catching package artifact drift. - The i18n helper now supports language-keyed string initializers through `I18N_STRING_MAP`, so future languages can be added incrementally without changing every existing two-language string initializer. diff --git a/scripts/release_check.sh b/scripts/release_check.sh index 9139f9f..a06b309 100755 --- a/scripts/release_check.sh +++ b/scripts/release_check.sh @@ -158,6 +158,36 @@ make DESTDIR="$tmpdir" PREFIX=/usr install-systemd grep -q "^ExecStart=/usr/bin/tnt$" "$tmpdir/usr/lib/systemd/system/tnt.service" || fail "systemd unit ExecStart does not match PREFIX=/usr install path" +step "checking installed log maintenance modes" +log_smoke="$tmpdir/messages.log" +recovered_log="$tmpdir/recovered.messages.log" +recover_report="$tmpdir/recovered.report" +smoke_ts=$(date -u +%Y-%m-%dT%H:%M:%SZ) +cat > "$log_smoke" <"$tmpdir/log-check.out" 2>&1; then + fail "installed tnt --log-check should report invalid records" +fi +grep -q '^valid_records 2$' "$tmpdir/log-check.out" || + fail "installed tnt --log-check did not report valid records" +grep -q '^invalid_records 1$' "$tmpdir/log-check.out" || + fail "installed tnt --log-check did not report invalid records" +if "$tmpdir/usr/bin/tnt" --log-recover "$log_smoke" \ + >"$recovered_log" 2>"$recover_report"; then + fail "installed tnt --log-recover should report invalid records" +fi +grep -q "$smoke_ts|alice|one" "$recovered_log" || + fail "installed tnt --log-recover missed alice record" +grep -q "$smoke_ts|bob|two" "$recovered_log" || + fail "installed tnt --log-recover missed bob record" +! grep -q 'mallory' "$recovered_log" || + fail "installed tnt --log-recover preserved invalid record" +grep -q '^invalid_records 1$' "$recover_report" || + fail "installed tnt --log-recover did not report invalid records" + step "checking installer syntax" sh -n install.sh