1 /*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
4 for INTEL64(R), AMD64(R)
6 Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions are met:
11 1. Redistributions of source code must retain the above copyright notice,
12 this list of conditions and the following disclaimer.
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
17 THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
18 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
21 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27 OF THE POSSIBILITY OF SUCH DAMAGE.
29 DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
31 /* File Info -----------------------------------------------------------
35 ----------------------------------------------------------------------*/
37 #define DRD64_SRC_TEST_LIBEDITTEXT_LINECTRL
38 #include"test_libedittext.h"
39 #include"drd64_libedittext.h"
42 /* LibEditText_LineCtrl_SplitLine *************************************/
43 /*--------------------------------------------------------------------*/
44 void Test_LibEditText_LineCtrl_SplitLine_test00_001(void)
52 char str_testdata[256];
53 LibEditText_LineInfo *p_line;
54 LibEditText_TextInfo *p_tinfo;
56 i_result = LibEditText_Init();
57 CU_ASSERT( 0x00 == i_result );
59 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
60 CU_ASSERT( 0x00 == i_result );
62 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
63 CU_ASSERT( NULL != p_tinfo );
65 p_line = LibEditText_Section_SearchLine( p_tinfo, 0 );
66 CU_ASSERT( NULL != p_line );
68 dw_lbeforeid = p_line->dw_id;
70 for( i_cnt = 0; i_cnt < 10; i_cnt++ ) {
71 i_len = snprintf( str_testdata, 255, "%2d Split--\n", i_cnt);
72 i_result = LibEditText_AppendLastLine( i_tinfoid, str_testdata, i_len);
73 CU_ASSERT( 0x00 == i_result );
76 for( i_cnt = 0; i_cnt < 9; i_cnt++ ) {
77 dw_line = (i_cnt * 2) + 1;
78 p_line = LibEditText_Section_SearchLine( p_tinfo, dw_line );
79 CU_ASSERT( NULL != p_line );
81 i_result = LibEditText_LineCtrl_SplitLine( p_tinfo, p_line->dw_id, dw_line, i_cnt );
82 CU_ASSERT( 0x00 == i_result );
85 i_result = LibEditText_Debug_DebugTextInfo(
86 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_SplitLine 00-001" );
87 CU_ASSERT( 0x00 == i_result );
89 i_result = LibEditText_Term();
90 CU_ASSERT( 0x00 == i_result );
96 /* LibEditText_LineCtrl_PushLine ***************************************/
97 /*--------------------------------------------------------------------*/
98 void Test_LibEditText_LineCtrl_PushLine_test00_001(void)
106 char str_testdata[256];
107 LibEditText_LineInfo *p_line;
108 LibEditText_TextInfo *p_tinfo;
110 i_result = LibEditText_Init();
111 CU_ASSERT( 0x00 == i_result );
113 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
114 CU_ASSERT( 0x00 == i_result );
116 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
117 CU_ASSERT( NULL != p_tinfo );
119 p_line = LibEditText_Section_SearchLine( p_tinfo, 0 );
120 CU_ASSERT( NULL != p_line );
122 dw_lbeforeid = p_line->dw_id;
124 for( i_cnt = 65537; i_cnt > 0; i_cnt-- ) {
125 dw_line = LibEditText_LineCtrl_PushLine( p_tinfo, dw_lbeforeid, 0, 0 );
126 CU_ASSERT( INVALID_LINE != dw_line );
128 i_len = snprintf( str_testdata, 255, "%6d Dr.deamon64 libeditext testdata---", i_cnt);
129 i_result = LibEditText_LineEdit_InsertString(
130 p_tinfo, LINFO(p_tinfo, dw_line), 0, (Byte *)str_testdata, i_len );
131 CU_ASSERT( 0x00 == i_result );
134 dw_line = LibEditText_LineCtrl_PushLine( p_tinfo, p_tinfo->dw_line_end,
135 p_tinfo->dw_maxline - 1, 0 );
136 CU_ASSERT( INVALID_LINE != dw_line );
138 i_result = LibEditText_Debug_DebugTextInfo(
139 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_PushLine 00-001" );
140 CU_ASSERT( 0x00 == i_result );
142 i_result = LibEditText_Term();
143 CU_ASSERT( 0x00 == i_result );
149 /* LibEditText_LineCtrl_AddLine ***************************************/
150 /*--------------------------------------------------------------------*/
151 void Test_LibEditText_LineCtrl_AddLine_test00_001(void)
159 char str_testdata[256];
160 LibEditText_LineInfo *p_line;
161 LibEditText_TextInfo *p_tinfo;
163 i_result = LibEditText_Init();
164 CU_ASSERT( 0x00 == i_result );
166 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
167 CU_ASSERT( 0x00 == i_result );
169 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
170 CU_ASSERT( NULL != p_tinfo );
172 p_line = LibEditText_Section_SearchLine( p_tinfo, 0 );
173 CU_ASSERT( NULL != p_line );
175 dw_lbeforeid = p_line->dw_id;
177 for( i_cnt = 65537; i_cnt > 0; i_cnt-- ) {
178 dw_line = LibEditText_LineCtrl_AddLine( p_tinfo, dw_lbeforeid, 0, 0, 0x00 );
179 CU_ASSERT( INVALID_LINE != dw_line );
181 i_len = snprintf( str_testdata, 255, "%6d Dr.deamon64 libeditext testdata---", i_cnt);
182 i_result = LibEditText_LineEdit_InsertString(
183 p_tinfo, LINFO(p_tinfo, dw_line), 0, (Byte *)str_testdata, i_len );
184 CU_ASSERT( 0x00 == i_result );
187 dw_line = LibEditText_LineCtrl_AddLine( p_tinfo, p_tinfo->dw_line_end,
188 p_tinfo->dw_maxline - 1, 0, 0x00 );
189 CU_ASSERT( INVALID_LINE != dw_line );
191 i_result = LibEditText_Debug_DebugTextInfo(
192 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_AddLine 00-001" );
193 CU_ASSERT( 0x00 == i_result );
195 i_result = LibEditText_Term();
196 CU_ASSERT( 0x00 == i_result );
202 /* LibEditText_AppendLastLine (API) ***********************************/
203 /*--------------------------------------------------------------------*/
204 void Test_LibEditText_API_AppendLastLine_test00_001(void)
210 char str_testdata[256];
212 i_result = LibEditText_Init();
213 CU_ASSERT( 0x00 == i_result );
215 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
216 CU_ASSERT( 0x00 == i_result );
218 for( i_cnt = 1; i_cnt < 65537; i_cnt++ ) {
219 i_len = snprintf( str_testdata, 255, "%6d Dr.deamon64 libeditext testdata---\n", i_cnt);
220 i_result = LibEditText_AppendLastLine( i_tinfoid, str_testdata, i_len);
221 CU_ASSERT( 0x00 == i_result );
224 i_result = LibEditText_Debug_DebugTextInfo( i_tinfoid, 0x00, NULL );
225 CU_ASSERT( 0x00 == i_result );
227 for( i_cnt = 65536; i_cnt > 2; i_cnt-- ) {
228 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, i_cnt );
229 CU_ASSERT( 0x00 == i_result );
232 i_result = LibEditText_Debug_DebugTextInfo(
233 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API AppendLastLine 00-001" );
234 CU_ASSERT( 0x00 == i_result );
236 i_result = LibEditText_Term();
237 CU_ASSERT( 0x00 == i_result );
243 /* LibEditText_InsertLine (API) ***************************************/
244 /*--------------------------------------------------------------------*/
245 void Test_LibEditText_API_InsertLine_test00_001(void)
250 i_result = LibEditText_Init();
251 CU_ASSERT( 0x00 == i_result );
253 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
254 CU_ASSERT( 0x00 == i_result );
256 i_result = LibEditText_InsertLine_toLine( i_tinfoid, 0, " 1: InsertLine Test00_001", 25);
257 CU_ASSERT( 0x00 == i_result );
259 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
260 CU_ASSERT( 0x00 == i_result );
262 i_result = LibEditText_InsertLine_toLine( i_tinfoid, 0, " 0: InsertLine Test00_001\n", 26);
263 CU_ASSERT( 0x00 == i_result );
265 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
266 CU_ASSERT( 0x00 == i_result );
268 i_result = LibEditText_InsertLine_toLine( i_tinfoid, 1, " 2: InsertLine Test00_001", 25);
269 CU_ASSERT( 0x00 == i_result );
271 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
272 CU_ASSERT( 0x00 == i_result );
274 i_result = LibEditText_Debug_DebugTextInfo(
275 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API InsertLine 00-001" );
276 CU_ASSERT( 0x00 == i_result );
278 i_result = LibEditText_Term();
279 CU_ASSERT( 0x00 == i_result );
284 /*--------------------------------------------------------------------*/
285 void Test_LibEditText_API_InsertLine_test00_002(void)
291 char str_testdata[256];
293 i_result = LibEditText_Init();
294 CU_ASSERT( 0x00 == i_result );
296 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
297 CU_ASSERT( 0x00 == i_result );
299 i_result = LibEditText_AppendLastLine( i_tinfoid, "END of testdata ---", 19);
300 CU_ASSERT( 0x00 == i_result );
302 for( i_cnt = 16384; i_cnt > 0; i_cnt-- ) {
303 i_len = snprintf( str_testdata, 255, "%6d Dr.deamon64 libeditext InsertLine2---", i_cnt);
304 i_result = LibEditText_InsertLine_toLine( i_tinfoid, 1, str_testdata, i_len);
305 CU_ASSERT( 0x00 == i_result );
308 for( i_cnt = 0; i_cnt < 16384; i_cnt++ ) {
309 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
310 CU_ASSERT( 0x00 == i_result );
313 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
314 CU_ASSERT( 0x00 == i_result );
316 i_result = LibEditText_Debug_DebugTextInfo(
317 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API InsertLine 00-002" );
318 CU_ASSERT( 0x00 == i_result );
320 i_result = LibEditText_Term();
321 CU_ASSERT( 0x00 == i_result );
327 /* LibEditText_JoinLine (API) *****************************************/
328 /*--------------------------------------------------------------------*/
329 void Test_LibEditText_API_JoinLine_test00_001(void)
335 char str_testdata[256];
337 i_result = LibEditText_Init();
338 CU_ASSERT( 0x00 == i_result );
340 i_tinfoid = LibEditText_CreateTextFile( "./testdata", NULL );
341 CU_ASSERT( 0x00 == i_result );
343 i_result = LibEditText_AppendLastLine( i_tinfoid, "END of testdata ---", 19);
344 CU_ASSERT( 0x00 == i_result );
346 for( i_cnt = 1024; i_cnt > 0; i_cnt-- ) {
347 i_len = snprintf( str_testdata, 255, "%04d JoinLine test001 -", i_cnt);
348 i_result = LibEditText_InsertLine_toLine( i_tinfoid, 1, str_testdata, i_len);
349 CU_ASSERT( 0x00 == i_result );
352 i_result = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
353 CU_ASSERT( 0x00 == i_result );
355 for( i_cnt = 0; i_cnt < 24; i_cnt++ ) {
356 i_result = LibEditText_JoinLine_toLine( i_tinfoid, 0 );
357 CU_ASSERT( 0x00 == i_result );
360 for( i_cnt = 0; i_cnt < 500; i_cnt++ ) {
361 i_result = LibEditText_JoinLine_toLine( i_tinfoid, i_cnt );
362 CU_ASSERT( 0x00 == i_result );
365 i_result = LibEditText_JoinLine_toLine( i_tinfoid, 499);
366 CU_ASSERT( 0x00 == i_result );
368 i_result = LibEditText_Debug_DebugTextInfo(
369 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API JoinLine 00-001" );
370 CU_ASSERT( 0x00 == i_result );
372 i_result = LibEditText_Term();
373 CU_ASSERT( 0x00 == i_result );
379 /*----------------------------------------------------------------------
380 ----------------------------------------------------------------------*/
381 DRD64_TEST_LIBEDITTEXT_LINECTRL_EXTERN
383 Test_LibEditText_LineCtrl(
386 CU_pSuite pt_edittext;
388 pt_edittext = CU_add_suite( "LibEditText_LineCtrl", NULL, NULL );
390 CU_add_test( pt_edittext, "EditText_API_AppendLastLine_test00_001",
391 Test_LibEditText_API_AppendLastLine_test00_001 );
393 CU_add_test( pt_edittext, "EditText_API_InsertLine_test00_001",
394 Test_LibEditText_API_InsertLine_test00_001 );
395 CU_add_test( pt_edittext, "EditText_API_InsertLine_test00_002",
396 Test_LibEditText_API_InsertLine_test00_002 );
398 CU_add_test( pt_edittext, "EditText_API_JoinLine_test00_001",
399 Test_LibEditText_API_JoinLine_test00_001 );
401 CU_add_test( pt_edittext, "EditText_AddLine_test00_001",
402 Test_LibEditText_LineCtrl_AddLine_test00_001 );
404 CU_add_test( pt_edittext, "EditText_PushLine_test00_001",
405 Test_LibEditText_LineCtrl_PushLine_test00_001 );
407 CU_add_test( pt_edittext, "EditText_SplitLine_test00_001",
408 Test_LibEditText_LineCtrl_SplitLine_test00_001 );
414 /* EOF of drd64_.c ----------------------------------- */