comparison mrjunejune/test/latex_renderer_test.c @ 248:b8b6e726964a

[style] Use Dowa type aliases in C Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Tue, 04 Aug 2026 02:44:06 -0700
parents 70f2a3dafc1c
children
comparison
equal deleted inserted replaced
247:70f2a3dafc1c 248:b8b6e726964a
30 "\\documentclass{article}\n" 30 "\\documentclass{article}\n"
31 "\\begin{document}\n" 31 "\\begin{document}\n"
32 "Hello from the sandbox. $x^2 + y^2 = z^2$\n" 32 "Hello from the sandbox. $x^2 + y^2 = z^2$\n"
33 "\\end{document}\n"; 33 "\\end{document}\n";
34 Latex_Render_Result result = Latex_Render( 34 Latex_Render_Result result = Latex_Render(
35 (const uint8_t *)valid, 35 (const uint8 *)valid,
36 strlen(valid)); 36 strlen(valid));
37 if (result.status != LATEX_RENDER_OK) 37 if (result.status != LATEX_RENDER_OK)
38 fprintf(stderr, "%s\n", result.diagnostics ? result.diagnostics : "unknown error"); 38 fprintf(stderr, "%s\n", result.diagnostics ? result.diagnostics : "unknown error");
39 assert(result.status == LATEX_RENDER_OK); 39 assert(result.status == LATEX_RENDER_OK);
40 assert(result.pdf_size > 1000); 40 assert(result.pdf_size > 1000);
44 const char *invalid = 44 const char *invalid =
45 "\\documentclass{article}\n" 45 "\\documentclass{article}\n"
46 "\\begin{document}\n" 46 "\\begin{document}\n"
47 "\\notarealcommand\n" 47 "\\notarealcommand\n"
48 "\\end{document}\n"; 48 "\\end{document}\n";
49 result = Latex_Render((const uint8_t *)invalid, strlen(invalid)); 49 result = Latex_Render((const uint8 *)invalid, strlen(invalid));
50 assert(result.status == LATEX_RENDER_COMPILE_ERROR); 50 assert(result.status == LATEX_RENDER_COMPILE_ERROR);
51 assert(result.diagnostics); 51 assert(result.diagnostics);
52 assert(strstr(result.diagnostics, "Undefined control sequence")); 52 assert(strstr(result.diagnostics, "Undefined control sequence"));
53 Latex_Render_Result_Destroy(&result); 53 Latex_Render_Result_Destroy(&result);
54 54
55 const char *host_read = 55 const char *host_read =
56 "\\documentclass{article}\n" 56 "\\documentclass{article}\n"
57 "\\begin{document}\n" 57 "\\begin{document}\n"
58 "\\input{/etc/passwd}\n" 58 "\\input{/etc/passwd}\n"
59 "\\end{document}\n"; 59 "\\end{document}\n";
60 result = Latex_Render((const uint8_t *)host_read, strlen(host_read)); 60 result = Latex_Render((const uint8 *)host_read, strlen(host_read));
61 assert(result.status == LATEX_RENDER_COMPILE_ERROR); 61 assert(result.status == LATEX_RENDER_COMPILE_ERROR);
62 assert(result.diagnostics); 62 assert(result.diagnostics);
63 assert(!strstr(result.diagnostics, "root:x:")); 63 assert(!strstr(result.diagnostics, "root:x:"));
64 Latex_Render_Result_Destroy(&result); 64 Latex_Render_Result_Destroy(&result);
65 65
78 "\\immediate\\write18{touch %s}\n" 78 "\\immediate\\write18{touch %s}\n"
79 "Shell escape must stay disabled.\n" 79 "Shell escape must stay disabled.\n"
80 "\\end{document}\n", 80 "\\end{document}\n",
81 shell_path); 81 shell_path);
82 result = Latex_Render( 82 result = Latex_Render(
83 (const uint8_t *)shell_escape, 83 (const uint8 *)shell_escape,
84 strlen(shell_escape)); 84 strlen(shell_escape));
85 assert(result.status == LATEX_RENDER_OK); 85 assert(result.status == LATEX_RENDER_OK);
86 assert(access(shell_path, F_OK) != 0); 86 assert(access(shell_path, F_OK) != 0);
87 Latex_Render_Result_Destroy(&result); 87 Latex_Render_Result_Destroy(&result);
88 88
89 uint8_t oversized[LATEX_SOURCE_MAX_BYTES + 1] = {0}; 89 uint8 oversized[LATEX_SOURCE_MAX_BYTES + 1] = {0};
90 memset(oversized, 'x', sizeof(oversized)); 90 memset(oversized, 'x', sizeof(oversized));
91 result = Latex_Render(oversized, sizeof(oversized)); 91 result = Latex_Render(oversized, sizeof(oversized));
92 assert(result.status == LATEX_RENDER_INVALID_INPUT); 92 assert(result.status == LATEX_RENDER_INVALID_INPUT);
93 Latex_Render_Result_Destroy(&result); 93 Latex_Render_Result_Destroy(&result);
94 94
95 const char *infinite = 95 const char *infinite =
96 "\\documentclass{article}\n" 96 "\\documentclass{article}\n"
97 "\\begin{document}\n" 97 "\\begin{document}\n"
98 "\\loop\\iftrue\\repeat\n" 98 "\\loop\\iftrue\\repeat\n"
99 "\\end{document}\n"; 99 "\\end{document}\n";
100 result = Latex_Render((const uint8_t *)infinite, strlen(infinite)); 100 result = Latex_Render((const uint8 *)infinite, strlen(infinite));
101 assert(result.status == LATEX_RENDER_TIMEOUT); 101 assert(result.status == LATEX_RENDER_TIMEOUT);
102 Latex_Render_Result_Destroy(&result); 102 Latex_Render_Result_Destroy(&result);
103 103
104 assert(latex_workspace_count() == initial_workspaces); 104 assert(latex_workspace_count() == initial_workspaces);
105 return 0; 105 return 0;