tidy-html5: add test

This commit is contained in:
Boris Pek 2017-03-30 03:41:24 +03:00
parent 87bf1b36be
commit cf340543f0
2 changed files with 57 additions and 0 deletions

50
src/tidy-html5-test.c Normal file
View File

@ -0,0 +1,50 @@
// This file is part of MXE. See LICENSE.md for licensing information.
#include <tidy.h>
#include <tidybuffio.h>
#include <stdbool.h>
#include <stdio.h>
int main()
{
const char *input = "<h1>Blah</h1><p><b>Blah-blah-blah!</b>";
printf("Input (HTML fragment):\n%s\n\n", input);
fflush(stdout);
TidyDoc tDoc = tidyCreate();
TidyBuffer output = {0};
TidyBuffer errBuf = {0};
int rc = -1;
const bool ok = tidyOptSetBool(tDoc, TidyXhtmlOut, yes);
if (ok)
rc = tidySetErrorBuffer(tDoc, &errBuf);
if (rc >= 0)
rc = tidyParseString(tDoc, input);
if (rc >= 0)
rc = tidyCleanAndRepair(tDoc);
if (rc >= 0)
rc = tidyRunDiagnostics(tDoc);
if (rc > 1)
rc = (tidyOptSetBool(tDoc, TidyForceOutput, yes) ? rc : -1);
if (rc >= 0)
rc = tidySaveBuffer(tDoc, &output);
if (rc > 0)
printf("Diagnostics:\n%s\n\n", errBuf.bp);
if (rc >= 0)
printf("Output (valid HTML document):\n%s\n\n", output.bp);
else
printf("Unknown error: %d.\n\n", rc);
fflush(stdout);
tidyBufFree(&errBuf);
tidyBufFree(&output);
tidyRelease(tDoc);
return rc;
}

View File

@ -19,4 +19,11 @@ define $(PKG)_BUILD
$(if $(BUILD_STATIC),
cd '$(PREFIX)/$(TARGET)/lib' && mv libtidys.a libtidy.a,
rm -f '$(PREFIX)/$(TARGET)/lib/libtidys.a')
# build test manually
'$(TARGET)-gcc' \
-W -Wall -Werror \
'$(PWD)/src/$(PKG)-test.c' \
-o '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-pkgconfig.exe' \
-ltidy
endef