diff options
Diffstat (limited to 'libgenx/tests')
-rw-r--r-- | libgenx/tests/.gitignore | 8 | ||||
-rw-r--r-- | libgenx/tests/basics/buildfile | 3 | ||||
-rw-r--r-- | libgenx/tests/basics/driver.c | 41 | ||||
-rw-r--r-- | libgenx/tests/basics/testscript | 3 | ||||
-rw-r--r-- | libgenx/tests/build/.gitignore | 4 | ||||
-rw-r--r-- | libgenx/tests/build/bootstrap.build | 5 | ||||
-rw-r--r-- | libgenx/tests/build/root.build | 12 | ||||
-rw-r--r-- | libgenx/tests/buildfile | 1 |
8 files changed, 77 insertions, 0 deletions
diff --git a/libgenx/tests/.gitignore b/libgenx/tests/.gitignore new file mode 100644 index 0000000..662178d --- /dev/null +++ b/libgenx/tests/.gitignore @@ -0,0 +1,8 @@ +# Test executables. +# +driver + +# Testscript output directories (can be symlinks). +# +test +test-* diff --git a/libgenx/tests/basics/buildfile b/libgenx/tests/basics/buildfile new file mode 100644 index 0000000..75fb5e8 --- /dev/null +++ b/libgenx/tests/basics/buildfile @@ -0,0 +1,3 @@ +import libs = libgenx%lib{genx} + +exe{driver}: {h c}{**} $libs testscript diff --git a/libgenx/tests/basics/driver.c b/libgenx/tests/basics/driver.c new file mode 100644 index 0000000..135d5ba --- /dev/null +++ b/libgenx/tests/basics/driver.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <string.h> + +#include <libgenx/version.h> +#include <libgenx/genx.h> + +static genxStatus +genxSend(void * d, constUtf8 s) +{ + size_t n = strlen((const char*)s); + return fwrite(s, 1, n, (FILE*)d) == n ? GENX_SUCCESS : GENX_IO_ERROR; +} + +static genxStatus +genxSendBounded(void * d, constUtf8 start, constUtf8 end) +{ + size_t n = end - start; + return fwrite(start, 1, n, (FILE*)d) == n ? GENX_SUCCESS : GENX_IO_ERROR; +} + +static genxStatus +genxFlush(void * d) +{ + return fflush((FILE*)d) == 0 ? GENX_SUCCESS : GENX_IO_ERROR; +} + +static const genxSender stdioSender = {&genxSend, &genxSendBounded, genxFlush}; + +int main() +{ + genxWriter w = genxNew(NULL, NULL, stdout); + genxStartDocSender(w, &stdioSender); + genxStartElementLiteral(w, (utf8)"http://example.org/1", (utf8)"greeting"); + genxAddAttributeLiteral(w, (utf8)"http://example.com/2", (utf8)"type", (utf8)"well-formed"); + genxAddText(w, (utf8)"Hello world!"); + genxEndElement(w); + genxEndDocument(w); + genxDispose(w); + + return 0; +} diff --git a/libgenx/tests/basics/testscript b/libgenx/tests/basics/testscript new file mode 100644 index 0000000..2bbfba1 --- /dev/null +++ b/libgenx/tests/basics/testscript @@ -0,0 +1,3 @@ +$* >>EOO +<g1:greeting xmlns:g2="http://example.com/2" g2:type="well-formed" xmlns:g1="http://example.org/1">Hello world!</g1:greeting> +EOO diff --git a/libgenx/tests/build/.gitignore b/libgenx/tests/build/.gitignore new file mode 100644 index 0000000..974e01d --- /dev/null +++ b/libgenx/tests/build/.gitignore @@ -0,0 +1,4 @@ +/config.build +/root/ +/bootstrap/ +build/ diff --git a/libgenx/tests/build/bootstrap.build b/libgenx/tests/build/bootstrap.build new file mode 100644 index 0000000..a07b5ea --- /dev/null +++ b/libgenx/tests/build/bootstrap.build @@ -0,0 +1,5 @@ +project = # Unnamed tests subproject. + +using config +using test +using dist diff --git a/libgenx/tests/build/root.build b/libgenx/tests/build/root.build new file mode 100644 index 0000000..3b975e6 --- /dev/null +++ b/libgenx/tests/build/root.build @@ -0,0 +1,12 @@ +using c + +h{*}: extension = h +c{*}: extension = c + +# Every exe{} in this subproject is by default a test. +# +exe{*}: test = true + +# The test target for cross-testing (running tests under Wine, etc). +# +test.target = $c.target diff --git a/libgenx/tests/buildfile b/libgenx/tests/buildfile new file mode 100644 index 0000000..aeeab15 --- /dev/null +++ b/libgenx/tests/buildfile @@ -0,0 +1 @@ +./: {*/ -build/} |