/[LeafOK_CVS]/lbbs/src/test_lml.c
ViewVC logotype

Contents of /lbbs/src/test_lml.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.29 - (show annotations)
Wed Nov 5 06:14:01 2025 UTC (4 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.28: +4 -1 lines
Content type: text/x-csrc
Use enum / const int instead of macro define constant integers
Use const char * instead of macro define for constant strings

1 /* SPDX-License-Identifier: GPL-3.0-or-later */
2 /*
3 * test_lml
4 * - tester for LML render
5 *
6 * Copyright (C) 2004-2025 Leaflet <leaflet@leafok.com>
7 */
8
9 #include "lml.h"
10 #include "log.h"
11 #include <errno.h>
12 #include <stdio.h>
13 #include <string.h>
14 #include <time.h>
15 #include <unistd.h>
16
17 enum _test_lml_constant_t
18 {
19 STR_OUT_BUF_SIZE = 256,
20 };
21
22 const char *str_in[] = {
23 "[left]ABCD[right]EFG",
24 "A[u]B[italic]CD[/i]E[/u]F[b]G[/bold]",
25 "A[url BC DE]测试a网址[/url]FG",
26 "AB[email CDE]F[/eMAil]G01[emaiL]23456[/email]789",
27 "A[user DE]BC[/User]FG",
28 "[article A B CD]EF[ /article]G[article 789]123[/article]456",
29 "A[ image BCD]EFG",
30 "AB[ Flash CDE ]FG",
31 "AB[bwf]CDEFG",
32 "[lef]A[rightBCD[right]EF[left[left[]G[left",
33 "A[ color BCD]EF[/color]G[color black]0[/color][color magenta]1[color cyan]23[/color]4[color red]5[/color]6[color yellOw]7[/color]8[color green]9[color blue]0[/color]",
34 "A[quote]B[quote]C[quote]D[quote]E[/quote]F[/quote]G[/quote]0[/quote]1[/quote]2[quote]3[/quote]4[/quote]56789",
35 ": ABCDE[quote]FG\r\nab[/quote]cd[quote]ef[quote]g\r\n: : 012[/quote]345[/quote]6789\nABC[quote]DEFG",
36 "\033[1;35;42mABC\033[0mDE\033[334mF\033[33mG\033[12345\033[m",
37 "123456",
38 "[color red]Red[/color][plain][color blue]Blue[/color][plain]",
39 "[color yellow]Yellow[/color][nolml][left][color blue]Blue[/color][right][lml][color red]Red[/color]",
40 "[abc][left ][ right ][ colory ][left \nABCD[left]EFG[right ",
41 "ABCD]EFG",
42 ": : A123456789B123456789C123456789D123456789E123456789F123456789G123456789H123456789I123456789J123456789",
43 "\033[0m\033[I \033[1;32m;, ;,\033[m",
44 "\n01234567890123456789012345678901234567890123456789012345678901234567890123456789\n2\n01234567890123456789012345678901234567890123456789012345678901234567890123456789\n4\n5\n",
45 "A[012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789]B",
46 };
47
48 const int str_cnt = sizeof(str_in) / sizeof(const char *);
49
50 int main(int argc, char *argv[])
51 {
52 clock_t clock_begin;
53 clock_t clock_end;
54 double prog_time_spent;
55 double lml_time_spent;
56
57 char str_out_buf[STR_OUT_BUF_SIZE];
58 int i;
59 int j;
60
61 if (log_begin("../log/bbsd.log", "../log/error.log") < 0)
62 {
63 printf("Open log error\n");
64 return -1;
65 }
66
67 log_common_redir(STDOUT_FILENO);
68 log_error_redir(STDERR_FILENO);
69
70 clock_begin = clock();
71
72 printf("Test #1: quote_mode = 0\n");
73 for (i = 0; i < str_cnt; i++)
74 {
75 j = lml_render(str_in[i], str_out_buf, sizeof(str_out_buf), 80, 0);
76
77 printf("Input(len=%ld): %s\nOutput(len=%d): %s\n", strlen(str_in[i]), str_in[i], j, str_out_buf);
78 }
79 printf("Test #1: Done\n\n");
80
81 printf("Test #2: quote_mode = 1\n");
82 for (i = 0; i < str_cnt; i++)
83 {
84 j = lml_render(str_in[i], str_out_buf, sizeof(str_out_buf), 80, 1);
85
86 printf("Input(len=%ld): %s\nOutput(len=%d): %s\n", strlen(str_in[i]), str_in[i], j, str_out_buf);
87 }
88 printf("Test #2: Done\n\n");
89
90 clock_end = clock();
91 prog_time_spent = (double)(clock_end - clock_begin) / (CLOCKS_PER_SEC / 1000);
92 lml_time_spent = (double)lml_total_exec_duration / (CLOCKS_PER_SEC / 1000);
93
94 printf("\npage_exec_duration=%.2f, lml_exec_duration=%.2f\n", prog_time_spent, lml_time_spent);
95
96 log_end();
97
98 return 0;
99 }

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1