From 06a87392470a7989fcefa3eeefc3b6a6eb423c63 Mon Sep 17 00:00:00 2001 From: heck Date: Thu, 15 Jun 2023 22:18:10 +0200 Subject: [PATCH] ig-c99 - add test for enum doc fmt --- lm-c99/tests/test_enum_doc/Makefile | 30 +++++++++ .../test_enum_doc/ig-c99/test_api.h.target | 61 +++++++++++++++++++ lm-c99/tests/test_enum_doc/test_enum.yml2 | 55 +++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 lm-c99/tests/test_enum_doc/Makefile create mode 100644 lm-c99/tests/test_enum_doc/ig-c99/test_api.h.target create mode 100644 lm-c99/tests/test_enum_doc/test_enum.yml2 diff --git a/lm-c99/tests/test_enum_doc/Makefile b/lm-c99/tests/test_enum_doc/Makefile new file mode 100644 index 0000000..5e822b3 --- /dev/null +++ b/lm-c99/tests/test_enum_doc/Makefile @@ -0,0 +1,30 @@ +YML_PATH+=:../../../idl +COMPILER=../../ig-c99.ysl2 +BUILD_DIR=ig-c99 + +SRC=$(wildcard *.yml2) +SRC_XML=$(addsuffix .xml, $(basename $(SRC))) + + +.PHONY: all xml compile clean +all: xml compile + +compile: $(BUILD_DIR)/* + +xml: $(SRC_XML) + +$(BUILD_DIR)/*: $(BUILD_DIR) $(SRC) $(COMPILER) + YML_PATH=$(YML_PATH) yml2proc -y $(COMPILER) $(SRC) + diff $(BUILD_DIR)/test_api.h $(BUILD_DIR)/test_api.h.target + +$(BUILD_DIR): + mkdir $(BUILD_DIR) + +%.xml: %.yml2 + YML_PATH=$(YML_PATH) yml2proc -P $< -o $@ + + +clean: + rm -rf \ + ./$(BUILD_DIR)/*.h \ + $(SRC_XML) diff --git a/lm-c99/tests/test_enum_doc/ig-c99/test_api.h.target b/lm-c99/tests/test_enum_doc/ig-c99/test_api.h.target new file mode 100644 index 0000000..a36142c --- /dev/null +++ b/lm-c99/tests/test_enum_doc/ig-c99/test_api.h.target @@ -0,0 +1,61 @@ +// IG_C99 1.0 +// test_api.h +// License text +// Copyleft text +#pragma once + + +#ifdef __cplusplus +extern "C" { +#endif + +#include "idl_core.h" + +// deftypes +// -------- + +// Enums +// ----- +typedef enum _IG_C99_GOOD { + IG_C99_GOOD_ITEM1 // oneline doc + IG_C99_GOOD_ITEM2 + + // item 3 + // ------ + // multiline + // doc + IG_C99_GOOD_ITEM3 +} IG_C99_GOOD; + +typedef enum _IG_C99_DOC_BADLY_FORMATTTED { + IG_C99_DOC_BADLY_FORMATTTED_ITEM1 = 0 + IG_C99_DOC_BADLY_FORMATTTED_ITEM2 = 1 + + // item 3 + // ------ + // multiline + // doc with bad formattting + IG_C99_DOC_BADLY_FORMATTTED_ITEM3 = 2 +} IG_C99_DOC_BADLY_FORMATTTED; + +typedef enum _IG_C99_HEX_ITEMS { + IG_C99_HEX_ITEMS_ITEM1 = 0x00, + IG_C99_HEX_ITEMS_ITEM2 = 0x10, // oneline doc + + // item 3 + // ------ + // multi line + // doc + IG_C99_HEX_ITEMS_ITEM3 = 0xff +} IG_C99_HEX_ITEMS; + + +// Structs +// ------- + +// Functions +// --------- + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/lm-c99/tests/test_enum_doc/test_enum.yml2 b/lm-c99/tests/test_enum_doc/test_enum.yml2 new file mode 100644 index 0000000..0cd3e0d --- /dev/null +++ b/lm-c99/tests/test_enum_doc/test_enum.yml2 @@ -0,0 +1,55 @@ +pEpACIDLang { + include pEpACIDLang.yml2 + + package ig_c99 { + version 1.0; + license "License text"; + copyleft "Copyleft text"; + + api test { + + enum good { + item item1 doc="oneline doc"; + item item2 doc=""; + item item3 + doc= + """ + item 3 + ------ + multiline + doc + """; + }; + + enum doc_badly_formattted { + item item1 0; + item item2 1; + item item3 2 + doc= + """ + + + + item 3 + ------ + + multiline + + doc with bad formattting """; + }; + + enum hex_items { + hex item1 0x00; + hex item2 0x10 doc="oneline doc"; + hex item3 0xff + doc= + """ + item 3 + ------ + multi line + doc + """; + }; + }; + }; +}