OSDN Git Service

* WorkBackup: 2015/06/23(Tue) AM 05:51 (Testing & DeBugging LibEditText_LineCtrl_Spli...
[drdeamon64/drdeamon64.git] / libedittext / test_libedittext_linectrl.c
1 /*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
2
3                          D r . D e a m o n  6 4
4                         for INTEL64(R), AMD64(R)
5         
6    Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
7
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions are met:
10
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.
16
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.
28
29 DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
30
31 /* File Info -----------------------------------------------------------
32 File: drd64_.c
33 Function: 
34 Comment: 
35 ----------------------------------------------------------------------*/
36
37 #define DRD64_SRC_TEST_LIBEDITTEXT_LINECTRL
38 #include"test_libedittext.h"
39 #include"drd64_libedittext.h"
40
41
42 /* LibEditText_LineCtrl_SplitLine *************************************/
43 /*--------------------------------------------------------------------*/
44 void Test_LibEditText_LineCtrl_SplitLine_test00_001(void)
45 {
46         int     i_result;
47         int             i_tinfoid;
48         int             i_len;
49         int             i_cnt;
50         DWord   dw_lbeforeid;
51         DWord   dw_line;
52         char    str_testdata[256];
53         LibEditText_LineInfo    *p_line;
54         LibEditText_TextInfo    *p_tinfo;
55
56         i_result        = LibEditText_Init();
57         CU_ASSERT( 0x00 == i_result );
58
59         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
60         CU_ASSERT( 0x00 == i_result );
61
62         p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
63         CU_ASSERT( NULL != p_tinfo );
64
65         p_line  = LibEditText_Section_SearchLine( p_tinfo, 0 );
66         CU_ASSERT( NULL != p_line );
67
68         dw_lbeforeid    = p_line->dw_id;
69
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 );
74         }
75
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 );
80
81                 i_result        = LibEditText_LineCtrl_SplitLine( p_tinfo, p_line->dw_id, dw_line, i_cnt );
82                 CU_ASSERT( 0x00 == i_result );
83         }
84
85         i_result        = LibEditText_Debug_DebugTextInfo(
86                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_SplitLine 00-001" );
87         CU_ASSERT( 0x00 == i_result );
88
89         i_result        = LibEditText_Term();
90         CU_ASSERT( 0x00 == i_result );
91
92         return;
93 }
94
95
96 /* LibEditText_LineCtrl_PushLine ***************************************/
97 /*--------------------------------------------------------------------*/
98 void Test_LibEditText_LineCtrl_PushLine_test00_001(void)
99 {
100         int     i_result;
101         int             i_tinfoid;
102         int             i_len;
103         int             i_cnt;
104         DWord   dw_lbeforeid;
105         DWord   dw_line;
106         char    str_testdata[256];
107         LibEditText_LineInfo    *p_line;
108         LibEditText_TextInfo    *p_tinfo;
109
110         i_result        = LibEditText_Init();
111         CU_ASSERT( 0x00 == i_result );
112
113         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
114         CU_ASSERT( 0x00 == i_result );
115
116         p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
117         CU_ASSERT( NULL != p_tinfo );
118
119         p_line  = LibEditText_Section_SearchLine( p_tinfo, 0 );
120         CU_ASSERT( NULL != p_line );
121
122         dw_lbeforeid    = p_line->dw_id;
123
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 );
127
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 );
132         }
133
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 );
137
138         i_result        = LibEditText_Debug_DebugTextInfo(
139                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_PushLine 00-001" );
140         CU_ASSERT( 0x00 == i_result );
141
142         i_result        = LibEditText_Term();
143         CU_ASSERT( 0x00 == i_result );
144
145         return;
146 }
147
148
149 /* LibEditText_LineCtrl_AddLine ***************************************/
150 /*--------------------------------------------------------------------*/
151 void Test_LibEditText_LineCtrl_AddLine_test00_001(void)
152 {
153         int     i_result;
154         int             i_tinfoid;
155         int             i_len;
156         int             i_cnt;
157         DWord   dw_lbeforeid;
158         DWord   dw_line;
159         char    str_testdata[256];
160         LibEditText_LineInfo    *p_line;
161         LibEditText_TextInfo    *p_tinfo;
162
163         i_result        = LibEditText_Init();
164         CU_ASSERT( 0x00 == i_result );
165
166         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
167         CU_ASSERT( 0x00 == i_result );
168
169         p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
170         CU_ASSERT( NULL != p_tinfo );
171
172         p_line  = LibEditText_Section_SearchLine( p_tinfo, 0 );
173         CU_ASSERT( NULL != p_line );
174
175         dw_lbeforeid    = p_line->dw_id;
176
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 );
180
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 );
185         }
186
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 );
190
191         i_result        = LibEditText_Debug_DebugTextInfo(
192                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "LineCtrl_AddLine 00-001" );
193         CU_ASSERT( 0x00 == i_result );
194
195         i_result        = LibEditText_Term();
196         CU_ASSERT( 0x00 == i_result );
197
198         return;
199 }
200
201
202 /* LibEditText_AppendLastLine (API) ***********************************/
203 /*--------------------------------------------------------------------*/
204 void Test_LibEditText_API_AppendLastLine_test00_001(void)
205 {
206         int     i_result;
207         int             i_tinfoid;
208         int             i_len;
209         int             i_cnt;
210         char    str_testdata[256];
211
212         i_result        = LibEditText_Init();
213         CU_ASSERT( 0x00 == i_result );
214
215         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
216         CU_ASSERT( 0x00 == i_result );
217
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 );
222         }
223
224         i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, 0x00, NULL );
225         CU_ASSERT( 0x00 == i_result );
226
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 );
230         }
231
232         i_result        = LibEditText_Debug_DebugTextInfo(
233                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API AppendLastLine 00-001" );
234         CU_ASSERT( 0x00 == i_result );
235
236         i_result        = LibEditText_Term();
237         CU_ASSERT( 0x00 == i_result );
238
239         return;
240 }
241
242
243 /* LibEditText_InsertLine (API) ***************************************/
244 /*--------------------------------------------------------------------*/
245 void Test_LibEditText_API_InsertLine_test00_001(void)
246 {
247         int     i_result;
248         int             i_tinfoid;
249
250         i_result        = LibEditText_Init();
251         CU_ASSERT( 0x00 == i_result );
252
253         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
254         CU_ASSERT( 0x00 == i_result );
255
256         i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 0, " 1: InsertLine Test00_001", 25);
257         CU_ASSERT( 0x00 == i_result );
258
259         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
260         CU_ASSERT( 0x00 == i_result );
261
262         i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 0, " 0: InsertLine Test00_001\n", 26);
263         CU_ASSERT( 0x00 == i_result );
264
265         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
266         CU_ASSERT( 0x00 == i_result );
267
268         i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 1, " 2: InsertLine Test00_001", 25);
269         CU_ASSERT( 0x00 == i_result );
270
271         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
272         CU_ASSERT( 0x00 == i_result );
273
274         i_result        = LibEditText_Debug_DebugTextInfo(
275                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API InsertLine 00-001" );
276         CU_ASSERT( 0x00 == i_result );
277
278         i_result        = LibEditText_Term();
279         CU_ASSERT( 0x00 == i_result );
280
281         return;
282 }
283
284 /*--------------------------------------------------------------------*/
285 void Test_LibEditText_API_InsertLine_test00_002(void)
286 {
287         int     i_result;
288         int             i_tinfoid;
289         int             i_len;
290         int             i_cnt;
291         char    str_testdata[256];
292
293         i_result        = LibEditText_Init();
294         CU_ASSERT( 0x00 == i_result );
295
296         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
297         CU_ASSERT( 0x00 == i_result );
298
299         i_result        = LibEditText_AppendLastLine( i_tinfoid, "END of testdata ---", 19);
300         CU_ASSERT( 0x00 == i_result );
301
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 );
306         }
307
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 );
311         }
312
313         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
314         CU_ASSERT( 0x00 == i_result );
315
316         i_result        = LibEditText_Debug_DebugTextInfo(
317                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API InsertLine 00-002" );
318         CU_ASSERT( 0x00 == i_result );
319
320         i_result        = LibEditText_Term();
321         CU_ASSERT( 0x00 == i_result );
322
323         return;
324 }
325
326
327 /* LibEditText_JoinLine (API) *****************************************/
328 /*--------------------------------------------------------------------*/
329 void Test_LibEditText_API_JoinLine_test00_001(void)
330 {
331         int     i_result;
332         int             i_tinfoid;
333         int             i_len;
334         int             i_cnt;
335         char    str_testdata[256];
336
337         i_result        = LibEditText_Init();
338         CU_ASSERT( 0x00 == i_result );
339
340         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
341         CU_ASSERT( 0x00 == i_result );
342
343         i_result        = LibEditText_AppendLastLine( i_tinfoid, "END of testdata ---", 19);
344         CU_ASSERT( 0x00 == i_result );
345
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 );
350         }
351
352         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
353         CU_ASSERT( 0x00 == i_result );
354
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 );
358         }
359
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 );
363         }
364
365         i_result        = LibEditText_JoinLine_toLine( i_tinfoid, 499);
366         CU_ASSERT( 0x00 == i_result );
367
368         i_result        = LibEditText_Debug_DebugTextInfo(
369                                                 i_tinfoid, DEBUG_TEXTINFO_OUTPUT, "API JoinLine 00-001" );
370         CU_ASSERT( 0x00 == i_result );
371
372         i_result        = LibEditText_Term();
373         CU_ASSERT( 0x00 == i_result );
374
375         return;
376 }
377
378
379 /*----------------------------------------------------------------------
380 ----------------------------------------------------------------------*/
381 DRD64_TEST_LIBEDITTEXT_LINECTRL_EXTERN
382 int
383         Test_LibEditText_LineCtrl(
384                 void )
385 {
386         CU_pSuite       pt_edittext;
387
388         pt_edittext     = CU_add_suite( "LibEditText_LineCtrl", NULL, NULL );
389
390         CU_add_test( pt_edittext, "EditText_API_AppendLastLine_test00_001",
391                                                                 Test_LibEditText_API_AppendLastLine_test00_001 );
392
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 );
397
398         CU_add_test( pt_edittext, "EditText_API_JoinLine_test00_001",
399                                                                 Test_LibEditText_API_JoinLine_test00_001 );
400
401         CU_add_test( pt_edittext, "EditText_AddLine_test00_001",
402                                                                 Test_LibEditText_LineCtrl_AddLine_test00_001 );
403
404         CU_add_test( pt_edittext, "EditText_PushLine_test00_001",
405                                                                 Test_LibEditText_LineCtrl_PushLine_test00_001 );
406
407         CU_add_test( pt_edittext, "EditText_SplitLine_test00_001",
408                                                                 Test_LibEditText_LineCtrl_SplitLine_test00_001 );
409
410         return 0x00;
411 }
412
413
414 /* EOF of drd64_.c ----------------------------------- */