OSDN Git Service

* Tested: API DeleteString()
[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_AppendLine (API) ***************************************/
43 /*--------------------------------------------------------------------*/
44 void Test_LibEditText_API_AppendLine_test00_001(void)
45 {
46         int     i_result;
47         int             i_tinfoid;
48         int             i_len;
49         int             i_cnt;
50         char    str_testdata[256];
51
52         i_result        = LibEditText_Init();
53         CU_ASSERT( 0x00 == i_result );
54
55         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
56         CU_ASSERT( 0x00 == i_result );
57
58         for( i_cnt = 1; i_cnt < 65537; i_cnt++ )        {
59                 i_len   = snprintf( str_testdata, 255, "%6d Dr.deamon64 libeditext testdata---\n", i_cnt);
60                 i_result        = LibEditText_AppendLine( i_tinfoid, str_testdata, i_len);
61                 CU_ASSERT( 0x00 == i_result );
62         }
63
64         i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, 0x00);
65         CU_ASSERT( 0x00 == i_result );
66
67         for( i_cnt = 65536; i_cnt > 2; i_cnt-- )        {
68                 i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, i_cnt );
69                 CU_ASSERT( 0x00 == i_result );
70         }
71
72         i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, DEBUG_TEXTINFO_OUTPUT );
73         CU_ASSERT( 0x00 == i_result );
74
75         i_result        = LibEditText_Term();
76         CU_ASSERT( 0x00 == i_result );
77
78         return;
79 }
80
81
82 /* LibEditText_InsertLine (API) ***************************************/
83 /*--------------------------------------------------------------------*/
84 void Test_LibEditText_API_InsertLine_test00_001(void)
85 {
86         int     i_result;
87         int             i_tinfoid;
88
89         i_result        = LibEditText_Init();
90         CU_ASSERT( 0x00 == i_result );
91
92         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
93         CU_ASSERT( 0x00 == i_result );
94
95         i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 0, " 1: InsertLine Test00_001", 25);
96         CU_ASSERT( 0x00 == i_result );
97
98         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
99         CU_ASSERT( 0x00 == i_result );
100
101         i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 0, " 0: InsertLine Test00_001\n", 26);
102         CU_ASSERT( 0x00 == i_result );
103
104         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
105         CU_ASSERT( 0x00 == i_result );
106
107         i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 1, " 2: InsertLine Test00_001", 25);
108         CU_ASSERT( 0x00 == i_result );
109
110         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
111         CU_ASSERT( 0x00 == i_result );
112
113         i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, DEBUG_TEXTINFO_OUTPUT );
114         CU_ASSERT( 0x00 == i_result );
115
116         i_result        = LibEditText_Term();
117         CU_ASSERT( 0x00 == i_result );
118
119         return;
120 }
121
122 /*--------------------------------------------------------------------*/
123 void Test_LibEditText_API_InsertLine_test00_002(void)
124 {
125         int     i_result;
126         int             i_tinfoid;
127         int             i_len;
128         int             i_cnt;
129         char    str_testdata[256];
130
131         i_result        = LibEditText_Init();
132         CU_ASSERT( 0x00 == i_result );
133
134         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
135         CU_ASSERT( 0x00 == i_result );
136
137         i_result        = LibEditText_AppendLine( i_tinfoid, "END of testdata ---", 19);
138         CU_ASSERT( 0x00 == i_result );
139
140         for( i_cnt = 16384; i_cnt > 0; i_cnt-- )        {
141                 i_len   = snprintf( str_testdata, 255, "%6d Dr.deamon64 libeditext InsertLine2---\n", i_cnt);
142                 i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 1, str_testdata, i_len);
143                 CU_ASSERT( 0x00 == i_result );
144         }
145
146         for( i_cnt = 0; i_cnt < 16384; i_cnt++ )        {
147                 i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 1 );
148                 CU_ASSERT( 0x00 == i_result );
149         }
150
151         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
152         CU_ASSERT( 0x00 == i_result );
153
154         i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, DEBUG_TEXTINFO_OUTPUT );
155         CU_ASSERT( 0x00 == i_result );
156
157         i_result        = LibEditText_Term();
158         CU_ASSERT( 0x00 == i_result );
159
160         return;
161 }
162
163
164 /* LibEditText_JoinLine (API) *****************************************/
165 /*--------------------------------------------------------------------*/
166 void Test_LibEditText_API_JoinLine_test00_001(void)
167 {
168         int     i_result;
169         int             i_tinfoid;
170         int             i_len;
171         int             i_cnt;
172         char    str_testdata[256];
173
174         i_result        = LibEditText_Init();
175         CU_ASSERT( 0x00 == i_result );
176
177         i_tinfoid       = LibEditText_CreateTextFile( "./testdata", NULL );
178         CU_ASSERT( 0x00 == i_result );
179
180         i_result        = LibEditText_AppendLine( i_tinfoid, "END of testdata ---", 19);
181         CU_ASSERT( 0x00 == i_result );
182
183         for( i_cnt = 1024; i_cnt > 0; i_cnt-- ) {
184                 i_len   = snprintf( str_testdata, 255, "%04d JoinLine test001 -\n", i_cnt);
185                 i_result        = LibEditText_InsertLine_toLine( i_tinfoid, 1, str_testdata, i_len);
186                 CU_ASSERT( 0x00 == i_result );
187         }
188
189         i_result        = LibEditText_DeleteLine_toLine( i_tinfoid, 0 );
190         CU_ASSERT( 0x00 == i_result );
191
192         for( i_cnt = 1; i_cnt < 2; i_cnt++ )    {
193                 i_result        = LibEditText_JoinLine_toLine( i_tinfoid, i_cnt );
194                 CU_ASSERT( 0x00 == i_result );
195         }
196
197         i_result        = LibEditText_Debug_DebugTextInfo( i_tinfoid, DEBUG_TEXTINFO_OUTPUT );
198         CU_ASSERT( 0x00 == i_result );
199
200         i_result        = LibEditText_Term();
201         CU_ASSERT( 0x00 == i_result );
202
203         return;
204 }
205
206
207 /*----------------------------------------------------------------------
208 ----------------------------------------------------------------------*/
209 DRD64_TEST_LIBEDITTEXT_LINECTRL_EXTERN
210 int
211         Test_LibEditText_LineCtrl(
212                 void )
213 {
214         CU_pSuite       pt_edittext;
215
216         pt_edittext     = CU_add_suite( "LibEditText_LineCtrl", NULL, NULL );
217
218         CU_add_test( pt_edittext, "EditText_API_AppendLine_test00_001",
219                                                                 Test_LibEditText_API_AppendLine_test00_001 );
220
221         CU_add_test( pt_edittext, "EditText_API_InsertLine_test00_001",
222                                                                 Test_LibEditText_API_InsertLine_test00_001 );
223         CU_add_test( pt_edittext, "EditText_API_InsertLine_test00_002",
224                                                                 Test_LibEditText_API_InsertLine_test00_002 );
225
226         CU_add_test( pt_edittext, "EditText_API_JoinLine_test00_001",
227                                                                 Test_LibEditText_API_JoinLine_test00_001 );
228
229         return 0x00;
230 }
231
232
233 /* EOF of drd64_.c ----------------------------------- */