about summary refs log tree commit diff
path: root/tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2024-05-20T13·50+0200
committerclbot <clbot@tvl.fyi>2024-05-22T10·32+0000
commit5b2ba0efa1b87aa514d665a7f64ada36617c720e (patch)
tree27a4bb08f20e997377cc1bc884ee16c38e203f86 /tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix
parente7be3422566b36e5bd3aeaaf7d47537dfd050a5c (diff)
refactor(tvix/eval): rewrite xml emitter to be simple-stupid r/8160
In order to be compatible with the nix XML generator, it’s easier to
generate the XML directly, instead of going through a library which we
have to bend to do what we need.

Removes dependency on `xml-rs`, which came with a full XML parser that
we didn’t use. Only takes a tiny bit of code for the XML escaping,
somewhat simplified.

I add a little escaping value, to make sure we have the same behaviour
as nix proper.

Interestingly enough, we never need to escape XML attribute names,
because the `builtins.toXML` format encodes user-defined values as
attribute keys only. So we only escape attribute values.

Fixes: https://b.tvl.fyi/issues/399
Change-Id: If4d407d324864b3bb9aa3160e2ec6889f7727127
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11697
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix')
-rw-r--r--tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix2
1 files changed, 2 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix
new file mode 100644
index 000000000000..7d074048ddec
--- /dev/null
+++ b/tvix/eval/src/tests/tvix_tests/eval-okay-toxml.nix
@@ -0,0 +1,2 @@
+# Check some corner cases regarding escaping.
+builtins.toXML { a = "s"; "&-{" = ";&\""; }