Message ID | 20211018154800.11013-3-chrubis@suse.cz |
---|---|
State | Changes Requested |
Headers | show |
Series | docparse improvements | expand |
> This add a simple tests for the docparse parser.
Very nice, thanks! Maybe remame multiline_macro.c.out to multiline_macro.json
to get json syntax in editors? (multiline_macro.c.out.json would be ugly).
I also wanted to have perl parser which would take expected output from tests
sources put as comment, but I haven't finished Christian's effort. Thus atm it's
really better just to put files with output.
Kind regards,
Petr
HI Cyril, It'd be nice, if this was run by make test. Also I'm quite surprised by this behavior: $ cd docparse/tests/ && make test cat test.sh >test chmod a+x test When this was added? Kind regards, Petr
Hi! > Very nice, thanks! Maybe remame multiline_macro.c.out to multiline_macro.json > to get json syntax in editors? (multiline_macro.c.out.json would be ugly). What about foo.c.json then?
Hi! > It'd be nice, if this was run by make test. > > Also I'm quite surprised by this behavior: > > $ cd docparse/tests/ && make test > cat test.sh >test > chmod a+x test > > When this was added? There is no Makefile in that directory, this does not even make any sense. I guess that this is GNU Make pulling default rules out of thin air...
> Hi! > > Very nice, thanks! Maybe remame multiline_macro.c.out to multiline_macro.json > > to get json syntax in editors? (multiline_macro.c.out.json would be ugly). > What about foo.c.json then? Sure, LGTM. Kind regards, Petr
> Hi! > > It'd be nice, if this was run by make test. > > Also I'm quite surprised by this behavior: > > $ cd docparse/tests/ && make test > > cat test.sh >test > > chmod a+x test > > When this was added? > There is no Makefile in that directory, this does not even make any > sense. I guess that this is GNU Make pulling default rules out of thin > air... GNU make again surprised me :) OK, let's ignore this funny default target. But it'd be nice to have these tests run in CI and in make test target by default. Kind regards, Petr
diff --git a/docparse/tests/empty_struct.c b/docparse/tests/empty_struct.c new file mode 100644 index 000000000..e5d986413 --- /dev/null +++ b/docparse/tests/empty_struct.c @@ -0,0 +1,2 @@ +static struct tst_test test = { +}; diff --git a/docparse/tests/empty_struct.c.out b/docparse/tests/empty_struct.c.out new file mode 100644 index 000000000..9f49f5332 --- /dev/null +++ b/docparse/tests/empty_struct.c.out @@ -0,0 +1,3 @@ + "empty_struct": { + "fname": "empty_struct.c" + } \ No newline at end of file diff --git a/docparse/tests/expand_flags.c b/docparse/tests/expand_flags.c new file mode 100644 index 000000000..64f6da64e --- /dev/null +++ b/docparse/tests/expand_flags.c @@ -0,0 +1,3 @@ +static struct tst_test test = { + .all_filesystems = 1, +}; diff --git a/docparse/tests/expand_flags.c.out b/docparse/tests/expand_flags.c.out new file mode 100644 index 000000000..cd79dd296 --- /dev/null +++ b/docparse/tests/expand_flags.c.out @@ -0,0 +1,6 @@ + "expand_flags": { + "all_filesystems": "1", + "needs_device": "1", + "needs_tmpdir": "1", + "fname": "expand_flags.c" + } \ No newline at end of file diff --git a/docparse/tests/include.c b/docparse/tests/include.c new file mode 100644 index 000000000..7a35e3bb4 --- /dev/null +++ b/docparse/tests/include.c @@ -0,0 +1,5 @@ +#include "include.h" + +static struct tst_test test = { + .test_variants = TEST_VARIANTS, +}; diff --git a/docparse/tests/include.c.out b/docparse/tests/include.c.out new file mode 100644 index 000000000..b4ef1ccda --- /dev/null +++ b/docparse/tests/include.c.out @@ -0,0 +1,4 @@ + "include": { + "test_variants": "10", + "fname": "include.c" + } \ No newline at end of file diff --git a/docparse/tests/include.h b/docparse/tests/include.h new file mode 100644 index 000000000..efa11d24f --- /dev/null +++ b/docparse/tests/include.h @@ -0,0 +1 @@ +#define TEST_VARIANTS 10 diff --git a/docparse/tests/macro.c b/docparse/tests/macro.c new file mode 100644 index 000000000..296da12f5 --- /dev/null +++ b/docparse/tests/macro.c @@ -0,0 +1,5 @@ +#define TEST_VARIANTS 10 + +static struct tst_test test = { + .test_variants = TEST_VARIANTS, +}; diff --git a/docparse/tests/macro.c.out b/docparse/tests/macro.c.out new file mode 100644 index 000000000..0dc73d8ec --- /dev/null +++ b/docparse/tests/macro.c.out @@ -0,0 +1,4 @@ + "macro": { + "test_variants": "10", + "fname": "macro.c" + } \ No newline at end of file diff --git a/docparse/tests/multiline_macro.c b/docparse/tests/multiline_macro.c new file mode 100644 index 000000000..2de58112b --- /dev/null +++ b/docparse/tests/multiline_macro.c @@ -0,0 +1,6 @@ +#define TEST_VARIANTS \ + 10 + +static struct tst_test test = { + .test_variants = TEST_VARIANTS, +}; diff --git a/docparse/tests/multiline_macro.c.out b/docparse/tests/multiline_macro.c.out new file mode 100644 index 000000000..bafd037da --- /dev/null +++ b/docparse/tests/multiline_macro.c.out @@ -0,0 +1,4 @@ + "multiline_macro": { + "test_variants": "10", + "fname": "multiline_macro.c" + } \ No newline at end of file diff --git a/docparse/tests/tags.c b/docparse/tests/tags.c new file mode 100644 index 000000000..ade3974ff --- /dev/null +++ b/docparse/tests/tags.c @@ -0,0 +1,7 @@ +static struct tst_test test = { + .tags = (const struct tst_tag[]) { + {"tag-name-1", "tag-value-1"}, + {"tag-name-2", "tag-value-2"}, + {} + } +}; diff --git a/docparse/tests/tags.c.out b/docparse/tests/tags.c.out new file mode 100644 index 000000000..14cc14f1c --- /dev/null +++ b/docparse/tests/tags.c.out @@ -0,0 +1,13 @@ + "tags": { + "tags": [ + [ + "tag-name-1", + "tag-value-1" + ], + [ + "tag-name-2", + "tag-value-2" + ] + ], + "fname": "tags.c" + } \ No newline at end of file diff --git a/docparse/tests/test.sh b/docparse/tests/test.sh new file mode 100755 index 000000000..cc78dcae6 --- /dev/null +++ b/docparse/tests/test.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +fail=0 + +for i in *.c; do + ../docparse $i > out.tmp + if ! diff out.tmp $i.out &> /dev/null; then + echo "***" + echo "$i output differs!" + diff -u out.tmp $i.out + echo "***" + fail=1 + fi +done + +rm -f out.tmp + +exit $fail
This add a simple tests for the docparse parser. Signed-off-by: Cyril Hrubis <chrubis@suse.cz> --- docparse/tests/empty_struct.c | 2 ++ docparse/tests/empty_struct.c.out | 3 +++ docparse/tests/expand_flags.c | 3 +++ docparse/tests/expand_flags.c.out | 6 ++++++ docparse/tests/include.c | 5 +++++ docparse/tests/include.c.out | 4 ++++ docparse/tests/include.h | 1 + docparse/tests/macro.c | 5 +++++ docparse/tests/macro.c.out | 4 ++++ docparse/tests/multiline_macro.c | 6 ++++++ docparse/tests/multiline_macro.c.out | 4 ++++ docparse/tests/tags.c | 7 +++++++ docparse/tests/tags.c.out | 13 +++++++++++++ docparse/tests/test.sh | 18 ++++++++++++++++++ 14 files changed, 81 insertions(+) create mode 100644 docparse/tests/empty_struct.c create mode 100644 docparse/tests/empty_struct.c.out create mode 100644 docparse/tests/expand_flags.c create mode 100644 docparse/tests/expand_flags.c.out create mode 100644 docparse/tests/include.c create mode 100644 docparse/tests/include.c.out create mode 100644 docparse/tests/include.h create mode 100644 docparse/tests/macro.c create mode 100644 docparse/tests/macro.c.out create mode 100644 docparse/tests/multiline_macro.c create mode 100644 docparse/tests/multiline_macro.c.out create mode 100644 docparse/tests/tags.c create mode 100644 docparse/tests/tags.c.out create mode 100755 docparse/tests/test.sh