Test for endOfStream line type in tests

This commit is contained in:
Nathan Fisher 2023-10-30 01:20:43 -04:00
parent dc6a0150d9
commit bb0b5a1bcc
4 changed files with 49 additions and 37 deletions

View file

@ -612,6 +612,7 @@ int parseGemtext(gemtextParser *parser, gemtextLineQueue *lq) {
return ret;
}
} else {
if (parser->state != lineStart && parser->state != trimStart) {
switch (parser->mode) {
case normalMode:
ret = gemtextParserSend(parser, normalLine, lq);
@ -639,6 +640,7 @@ int parseGemtext(gemtextParser *parser, gemtextLineQueue *lq) {
break;
}
if (ret) return ret;
}
line = calloc(1, sizeof(gemtextLine));
if (line == NULL) return errno;
line->lineType = endOfStream;

View file

@ -47,15 +47,15 @@ typedef enum {
* An enum type representing the various line types in gemtext markup
*/
typedef enum {
normalLine, ///< A normal text line
linkLine, ///< A link line
listLine, ///< A list member
h1Line, ///< An H1 heading
h2Line, ///< An H2 heading
h3Line, ///< An H3 heading
preformattedLine, ///< A preformatted text block
quoteLine, ///< A Quote block
endOfStream, /**< Notifies the receiver that the stream is over and no
normalLine = 0, ///< A normal text line
linkLine = 1, ///< A link line
listLine = 2, ///< A list member
h1Line = 3, ///< An H1 heading
h2Line = 4, ///< An H2 heading
h3Line = 5, ///< An H3 heading
preformattedLine = 6, ///< A preformatted text block
quoteLine = 7, ///< A Quote block
endOfStream = 8, /**< Notifies the receiver that the stream is over and no
more lines are to be expected */
} gemtextLineType;

View file

@ -92,6 +92,11 @@ int main() {
assert(memcmp(line->node->body, "This is a preformatted block", 28) == 0);
gemtextLineDeinit(line);
line = gemtextLineQueueTryPop(&lq);
assert(line != NULL);
assert(line->lineType == endOfStream);
gemtextLineDeinit(line);
gemtextParserDeinit(&parser);
return ret;
}

View file

@ -95,6 +95,11 @@ int main() {
assert(line->lineType == linkLine);
assert(line->link->display == NULL);
assert(memcmp(line->link->url, "finger://example.org/joe", 24) == 0);
gemtextLineDeinit(line);
line = gemtextLineQueueTryPop(&lq);
assert(line != NULL);
assert(line->lineType == endOfStream);
gemtextLineDeinit(line);
return ret;