tvl-depot/users/sterni/mblog/golden/default.nix
sterni 1f5e1383f5 fix(3p/lisp/mime4cl): make MIME-BODY-STREAM always return characters
Because OPEN-DECODED-FILE-PORTION only knows about transfer encodings it
would only return a character stream for 7bit encoded bodies. This
causes inconsistent behavior where some bodies would return binary and
some character streams. To fix this, we specialize MIME-BODY-STREAM for
MIME-TEXT parts which may or may not be a good enough solution.

We may actually want to make MIME-BODY-STREAM binary always and let the
user handle decoding?! This may be a good idea to take care after yet
another stream machinery redesign.

Since the mime4cl test suite doesn't test MIME-BODY-STREAM (much), add a
message generated by notemap that hits this issue to the mblog golden
test suite.

Change-Id: Ie340c42ced6c693af9b3c84b177408d6b6d2c9c4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12913
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2024-12-26 12:59:03 +00:00

44 lines
1.3 KiB
Nix

# SPDX-License-Identifier: GPL-3.0-only
# SPDX-FileCopyrightText: Copyright (C) 2024 by sterni
{ depot, pkgs, lib, ... }:
let
maildir = pkgs.runCommandNoCC "mblog-golden-example-maildir" { } ''
mkdir -p "$out/cur"
cp --reflink=auto \
"${depot.path.origSrc + "/third_party/lisp/mime4cl/test/samples/mail-note-from-notes-app.msg"}" \
"$out/cur/1732277542.274467_1.wolfgang,U=1:2,S"
cp --reflink=auto \
"${depot.path.origSrc + "/third_party/lisp/mime4cl/test/samples/mail-note-from-notemap.msg"}" \
"$out/cur/1735167350.823243_1.wolfgang,U=32:2,S"
'';
# Make golden test based on the given mblog derivation and add subtarget
# golden tests for all meta.ci.targets.
makeGoldenTest = mblog:
pkgs.runCommand "mblog-golden-tests"
{
passthru = {
inherit maildir;
} // lib.mapAttrs (_: makeGoldenTest) (
lib.attrsets.getAttrs mblog.meta.ci.targets mblog
);
nativeBuildInputs = [
mblog
];
meta.ci = {
inherit (mblog.meta.ci) targets;
};
}
''
mkdir -p actual
mblog ${maildir} actual
diff --color=always -ru ${./expected} actual
touch "$out"
'';
in
makeGoldenTest depot.users.sterni.mblog