45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
|
#include "test.h"
|
||
|
|
||
|
#include "ltm/common.h"
|
||
|
#include "ltm/template.h"
|
||
|
#include "ltm/template_internal.h"
|
||
|
|
||
|
void test_single_placeholder() {
|
||
|
const char *s = "Hello, {{ world }}!";
|
||
|
|
||
|
ltm_template *template;
|
||
|
TEST_ASSERT(ltm_template_compile(&template, s) == ltm_err_ok);
|
||
|
|
||
|
ltm_instance *instance;
|
||
|
TEST_CHECK(ltm_template_instantiate(&instance, template) == ltm_err_ok);
|
||
|
|
||
|
TEST_CHECK(ltm_instance_block_add_var(instance, "world", ltm_instance_block_type_buf, "World", 5) == ltm_err_ok);
|
||
|
|
||
|
TEST_CHECK(ltm_instance_size(instance) == 13);
|
||
|
|
||
|
char buf[13];
|
||
|
|
||
|
size_t written = 0;
|
||
|
TEST_CHECK(ltm_instance_write(&written, buf, 5, instance) == ltm_err_ok);
|
||
|
TEST_CHECK(written == 5);
|
||
|
|
||
|
written = 0;
|
||
|
TEST_CHECK(ltm_instance_write(&written, buf + 5, 5, instance) == ltm_err_ok);
|
||
|
TEST_CHECK(written == 5);
|
||
|
|
||
|
written = 0;
|
||
|
TEST_CHECK(ltm_instance_write(&written, buf + 10, 5, instance) == ltm_err_done);
|
||
|
TEST_CHECK(written == 3);
|
||
|
|
||
|
TEST_CHECK(strncmp(buf, "Hello, World!", 13) == 0);
|
||
|
TEST_DUMP("buf", buf, 13);
|
||
|
|
||
|
ltm_instance_free(instance);
|
||
|
ltm_template_free(template);
|
||
|
}
|
||
|
|
||
|
TEST_LIST = {
|
||
|
{ "instance single placeholder", test_single_placeholder },
|
||
|
{ NULL, NULL }
|
||
|
};
|