aboutsummaryrefslogtreecommitdiff
path: root/tests/manifest-serializer
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-07-21 12:30:38 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-07-21 12:30:38 +0200
commit03ff256dc44228c9465cd2040593a72b2d084d1e (patch)
tree00a0ea59a21f49f4ffb9565f624c73a45d08826e /tests/manifest-serializer
parented93f8450b92579dd639ae25361fa650613a5b7e (diff)
Add manifest serializer module
Diffstat (limited to 'tests/manifest-serializer')
-rw-r--r--tests/manifest-serializer/buildfile7
-rw-r--r--tests/manifest-serializer/driver.in37
-rw-r--r--tests/manifest-serializer/testscript35
3 files changed, 79 insertions, 0 deletions
diff --git a/tests/manifest-serializer/buildfile b/tests/manifest-serializer/buildfile
new file mode 100644
index 0000000..f881ee9
--- /dev/null
+++ b/tests/manifest-serializer/buildfile
@@ -0,0 +1,7 @@
+# file : tests/manifest-serializer/buildfile
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+import mods = libbutl.bash%bash{manifest-serializer}
+
+exe{driver}: in{driver} $mods testscript
diff --git a/tests/manifest-serializer/driver.in b/tests/manifest-serializer/driver.in
new file mode 100644
index 0000000..9e619e5
--- /dev/null
+++ b/tests/manifest-serializer/driver.in
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+# file : tests/manifest-serializer/driver.in
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+trap "{ exit 1; }" ERR
+set -o errtrace # Trap ERR in functions.
+
+@import libbutl/manifest-serializer@
+
+butl_manifest_serializer_start "$@"
+
+fd="$butl_manifest_serializer_ifd"
+
+while read -r n; do
+
+ printf "%s:" "$n" >&"$fd"
+
+ f=true
+ while read -r v; do
+ if [ -z "$v" ]; then
+ printf "\0" >&"$fd"
+ break
+ else
+ if [ "$f" ]; then
+ f=
+ else
+ printf "\n" >&"$fd"
+ fi
+ printf "%s" "$v" >&"$fd"
+ fi
+ done
+
+done
+
+butl_manifest_serializer_finish
diff --git a/tests/manifest-serializer/testscript b/tests/manifest-serializer/testscript
new file mode 100644
index 0000000..af96cc0
--- /dev/null
+++ b/tests/manifest-serializer/testscript
@@ -0,0 +1,35 @@
+# file : tests/manifest-serializer/testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+$* <<EOI >>EOO
+
+1
+
+name
+foo
+
+version
+1.2.3
+
+description
+foo
+executable
+
+depends
+libfoo
+
+depends
+libbar
+
+EOI
+: 1
+name: foo
+version: 1.2.3
+description: foo
+executable
+depends: libfoo
+depends: libbar
+EOO
+
+#@@ TODO: test writing to file instead of stdout.