about summary refs log tree commit diff
path: root/tests/logging.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/logging.sh')
-rw-r--r--tests/logging.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/logging.sh b/tests/logging.sh
new file mode 100644
index 000000000000..117d483716a6
--- /dev/null
+++ b/tests/logging.sh
@@ -0,0 +1,24 @@
+source common.sh
+
+clearStore
+
+# Produce an escaped log file.
+set -x
+nix-build --log-type escapes -vv dependencies.nix --no-out-link 2> $TEST_ROOT/log.esc
+
+# Convert it to an XML representation.
+nix-log2xml < $TEST_ROOT/log.esc > $TEST_ROOT/log.xml
+
+# Is this well-formed XML?
+if test "$xmllint" != "false"; then
+    $xmllint $xmlflags --noout $TEST_ROOT/log.xml || fail "malformed XML"
+fi
+
+# Convert to HTML.
+if test "$xsltproc" != "false"; then
+    (cd $datadir/nix/log2html && $xsltproc mark-errors.xsl - | $xsltproc log2html.xsl -) < $TEST_ROOT/log.xml > $TEST_ROOT/log.html
+    # Ideally we would check that the generated HTML is valid...
+
+    # A few checks...
+    grep "<code>.*FOO" $TEST_ROOT/log.html || fail "bad HTML output"
+fi