OSDN Git Service

* Work: Convert LineInfo: p_sortnext to dw_sortnext for realloc LineInfo.
[drdeamon64/drdeamon64.git] / drcc / test_drcc_filetype.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_DRCC_FILETYPE
38 #include"drcc.h"
39 #include"test_drcc.h"
40
41 /* DrCC_FileType_VerifyTextFile ***************************************/
42 /*--------------------------------------------------------------------*/
43 void Test_DrCC_FileType_VerifyTextFile_test00_001(void)
44 {
45         int             i_fd;
46         int             i_err;
47         DWord   dw_lines        = 0;
48         DWord   dw_length       = 0;
49         
50         i_fd    = open( "./testdata/drcc_testfile.c", O_RDONLY );
51         if( 0 > i_fd )  {
52                 CU_FAIL( " Not Exist TestFile: testdata/drcc_testfile.c" );
53                 return;
54         }
55         i_err   = DrCC_FileType_VerifyTextFile( &dw_lines, &dw_length, i_fd );  
56         close( i_fd );
57         
58         CU_ASSERT( 0x00 == i_err );
59         CU_ASSERT( 43 == dw_lines );
60         CU_ASSERT( 76 == dw_length );
61         return;
62 }
63
64 /*--------------------------------------------------------------------*/
65 void Test_DrCC_FileType_VerifyTextFile_test00_002(void)
66 {
67         int     i_fd;
68         int     i_err;
69         DWord   dw_lines        = 0;
70         DWord   dw_length       = 0;
71         
72         i_fd    = open( "./testdata/drcc_testfile.h", O_RDONLY );
73         if( 0 > i_fd )  {
74                 CU_FAIL( " Not Exist TestFile: testdata/drcc_testfile.h" );
75                 return;
76         }
77         i_err   = DrCC_FileType_VerifyTextFile( &dw_lines, &dw_length, i_fd );  
78         close( i_fd );
79         
80         CU_ASSERT( 0x00 == i_err );
81         CU_ASSERT( 49 == dw_lines );
82         CU_ASSERT( 76 == dw_length );
83         return;
84 }
85
86 /*--------------------------------------------------------------------*/
87 void Test_DrCC_FileType_VerifyTextFile_test00_003(void)
88 {
89         int     i_fd;
90         int     i_err;
91         DWord   dw_lines        = 0;
92         DWord   dw_length       = 0;
93         
94         i_fd    = open( "./testdata/Makefile", O_RDONLY );
95         if( 0 > i_fd )  {
96                 CU_FAIL( " Not Exist TestFile: testdata/Makefile" );
97                 return;
98         }
99         i_err   = DrCC_FileType_VerifyTextFile( &dw_lines, &dw_length, i_fd );  
100         close( i_fd );
101         
102         CU_ASSERT( 0x00 == i_err );
103         CU_ASSERT( 145 == dw_lines );
104         CU_ASSERT( 78 == dw_length );
105         return;
106 }
107
108 /*--------------------------------------------------------------------*/
109 void Test_DrCC_FileType_VerifyTextFile_test00_004(void)
110 {
111         int     i_fd;
112         int     i_err;
113         DWord   dw_lines        = 0;
114         DWord   dw_length       = 0;
115         
116         i_fd    = open( "./testdata/x8664db.csv", O_RDONLY );
117         if( 0 > i_fd )  {
118                 CU_FAIL( " Not Exist TestFile: testdata/x8664db.csv" );
119                 return;
120         }
121         i_err   = DrCC_FileType_VerifyTextFile( &dw_lines, &dw_length, i_fd );  
122         close( i_fd );
123         
124         CU_ASSERT( 0x00 == i_err );
125         CU_ASSERT( 1434 == dw_lines );
126         CU_ASSERT( 156 == dw_length );
127         return;
128 }
129
130
131 /* DrCC_FileType_GetFileNamePosition **********************************/
132 /*--------------------------------------------------------------------*/
133 void Test_DrCC_FileType_GetFileNamePosition_test00_001(void)
134 {
135         CU_ASSERT_STRING_EQUAL_FATAL( "test.c",
136                         DrCC_FileType_GetFileNamePosition( "./testdata/test.c" ) );
137         return;
138 }
139
140 /*--------------------------------------------------------------------*/
141 void Test_DrCC_FileType_GetFileNamePosition_test00_002(void)
142 {
143         CU_ASSERT_STRING_EQUAL_FATAL( "Makefile",
144                         DrCC_FileType_GetFileNamePosition( "./testdata/Makefile" ) );
145         return;
146 }
147
148
149 /* DrCC_FileType_GetFileExtPosition ***********************************/
150 /*--------------------------------------------------------------------*/
151 void Test_DrCC_FileType_GetFileExtPosition_test00_001(void)
152 {
153         CU_ASSERT_STRING_EQUAL_FATAL( "c", DrCC_FileType_GetFileExtPosition( "test.c" ) );
154         return;
155 }
156
157 /*--------------------------------------------------------------------*/
158 void Test_DrCC_FileType_GetFileExtPosition_test00_002(void)
159 {
160         CU_ASSERT_STRING_EQUAL_FATAL( "", DrCC_FileType_GetFileExtPosition( "test." ) );
161         return;
162 }
163
164 /*--------------------------------------------------------------------*/
165 void Test_DrCC_FileType_GetFileExtPosition_test01_001(void)
166 {
167         CU_ASSERT_STRING_EQUAL_FATAL( "", DrCC_FileType_GetFileExtPosition( "test" ) );
168         return;
169 }
170
171 /*--------------------------------------------------------------------*/
172 void Test_DrCC_FileType_GetFileExtPosition_test01_002(void)
173 {
174         CU_ASSERT_STRING_EQUAL_FATAL( "", DrCC_FileType_GetFileExtPosition( "" ) );
175         return;
176 }
177
178
179 /* DrCC_FileType_GetFileType_fromFileName *****************************/
180 /*--------------------------------------------------------------------*/
181 void Test_DrCC_FileType_GetFileType_fromFileName_test00_001(void)
182 {
183         int             i_result;
184         Drd64_DrCC_FileType             t_ftype;
185
186         i_result        = DrCC_FileType_GetFileType_fromFileName(
187                                                 &t_ftype, "./testdata/drcc_testfile.c");
188
189         CU_ASSERT( 0x00 == i_result );
190         CU_ASSERT( t_ftype.b_type       == DRD64_DRCC_FILETYPE_TEXT );
191         CU_ASSERT( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_CSRC );
192
193         return;
194 }
195
196 /*--------------------------------------------------------------------*/
197 void Test_DrCC_FileType_GetFileType_fromFileName_test00_002(void)
198 {
199         int             i_result;
200         Drd64_DrCC_FileType             t_ftype;
201
202         i_result        = DrCC_FileType_GetFileType_fromFileName(
203                                                 &t_ftype, "./testdata/drcc_testfile.h");
204
205         CU_ASSERT( 0x00 == i_result );
206         CU_ASSERT( t_ftype.b_type       == DRD64_DRCC_FILETYPE_TEXT );
207         CU_ASSERT( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_CHEADER );
208
209         return;
210 }
211
212 /*--------------------------------------------------------------------*/
213 void Test_DrCC_FileType_GetFileType_fromFileName_test00_003(void)
214 {
215         int             i_result;
216         Drd64_DrCC_FileType             t_ftype;
217
218         i_result        = DrCC_FileType_GetFileType_fromFileName(
219                                                         &t_ftype, "./testdata/drcc_testfile.o");
220
221         CU_ASSERT( 0x00 == i_result );
222         CU_ASSERT( t_ftype.b_type       == DRD64_DRCC_FILETYPE_BINARY );
223         CU_ASSERT( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_ELF_OBJ );
224
225         return;
226 }
227
228 /*--------------------------------------------------------------------*/
229 void Test_DrCC_FileType_GetFileType_fromFileName_test01_001(void)
230 {
231         int             i_result;
232         Drd64_DrCC_FileType             t_ftype;
233
234         i_result        = DrCC_FileType_GetFileType_fromFileName(
235                                                         &t_ftype, "./testdata/drcc_notexistfile");
236
237         CU_ASSERT( 0x00 == i_result );
238         CU_ASSERT( t_ftype.b_type       == DRD64_DRCC_FILETYPE_BINARY );
239         CU_ASSERT( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_BINARY );
240
241         return;
242 }
243
244
245 /* DrCC_FileType_CheckFileType ****************************************/
246 /*--------------------------------------------------------------------*/
247 void Test_DrCC_FileType_CheckFileType_test00_001(void)
248 {
249         int             i_result;
250         Drd64_DrCC_FileType             t_ftype;
251
252         i_result        = DrCC_FileType_CheckFileType( &t_ftype, "./testdata/drcc_testfile.c");
253
254         CU_ASSERT_FATAL( 0x00 == i_result );
255         CU_ASSERT_FATAL( t_ftype.b_type == DRD64_DRCC_FILETYPE_TEXT );
256         CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_CSRC );
257         CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
258
259         return;
260 }
261
262 /*--------------------------------------------------------------------*/
263 void Test_DrCC_FileType_CheckFileType_test00_002(void)
264 {
265         int             i_result;
266         Drd64_DrCC_FileType             t_ftype;
267
268         i_result        = DrCC_FileType_CheckFileType( &t_ftype, "./testdata/drcc_testfile.h");
269
270         CU_ASSERT_FATAL( 0x00 == i_result );
271         CU_ASSERT_FATAL( t_ftype.b_type == DRD64_DRCC_FILETYPE_TEXT );
272         CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_CHEADER );
273         CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
274
275         return;
276 }
277
278 /*--------------------------------------------------------------------*/
279 void Test_DrCC_FileType_CheckFileType_test00_003(void)
280 {
281         int             i_result;
282         Drd64_DrCC_FileType             t_ftype;
283
284         i_result        = DrCC_FileType_CheckFileType( &t_ftype, "./testdata/drcc_testfile.o");
285
286         CU_ASSERT_FATAL( 0x00 == i_result );
287         CU_ASSERT_FATAL( t_ftype.b_type == DRD64_DRCC_FILETYPE_BINARY );
288         CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_ELF_OBJ );
289         CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
290
291         return;
292 }
293
294 /*--------------------------------------------------------------------*/
295 void Test_DrCC_FileType_CheckFileType_test01_001(void)
296 {
297         int             i_result;
298         Drd64_DrCC_FileType             t_ftype;
299
300         i_result        = DrCC_FileType_CheckFileType( &t_ftype, "./testdata/drcc_notexistfile");
301
302         CU_ASSERT_FATAL( 0x00 != i_result );
303
304         return;
305 }
306
307
308 /*----------------------------------------------------------------------
309 ----------------------------------------------------------------------*/
310 DRD64_TEST_DRCC_FILETYPE_EXTERN
311 int
312         Test_DrCC_FileType(
313                 void )
314 {
315         CU_pSuite       pt_edittext;
316
317         pt_edittext     = CU_add_suite( "DrCC_FileType", NULL, NULL );
318
319         /* FileType_GetFileType_fromFileName *****************************************/
320         CU_add_test( pt_edittext, "FileType_GetFileType_fromFileName_test00_001",
321                                         Test_DrCC_FileType_GetFileType_fromFileName_test00_001 );
322         CU_add_test( pt_edittext, "FileType_GetFileType_fromFileName_test00_002",
323                                         Test_DrCC_FileType_GetFileType_fromFileName_test00_002 );
324         CU_add_test( pt_edittext, "FileType_GetFileType_fromFileName_test00_003",
325                                         Test_DrCC_FileType_GetFileType_fromFileName_test00_003 );
326         CU_add_test( pt_edittext, "FileType_GetFileType_fromFileName_test01_001",
327                                         Test_DrCC_FileType_GetFileType_fromFileName_test01_001 );
328
329         /* FileType_CheckFileType *****************************************/
330         CU_add_test( pt_edittext, "FileType_CheckFileType_test00_001",
331                                         Test_DrCC_FileType_CheckFileType_test00_001 );
332         CU_add_test( pt_edittext, "FileType_CheckFileType_test00_002",
333                                         Test_DrCC_FileType_CheckFileType_test00_002 );
334         CU_add_test( pt_edittext, "FileType_CheckFileType_test00_003",
335                                         Test_DrCC_FileType_CheckFileType_test00_003 );
336         CU_add_test( pt_edittext, "FileType_CheckFileType_test01_001",
337                                         Test_DrCC_FileType_CheckFileType_test01_001 );
338
339         /* FileType_GetFileExtPosition ************************************/
340         CU_add_test( pt_edittext, "FileType_GetFileExtPosition_test00_001",
341                                         Test_DrCC_FileType_GetFileExtPosition_test00_001 );
342         CU_add_test( pt_edittext, "FileType_GetFileExtPosition_test00_002",
343                                         Test_DrCC_FileType_GetFileExtPosition_test00_002 );
344         CU_add_test( pt_edittext, "FileType_GetFileExtPosition_test01_001",
345                                         Test_DrCC_FileType_GetFileExtPosition_test01_001 );
346         CU_add_test( pt_edittext, "FileType_GetFileExtPosition_test01_002",
347                                         Test_DrCC_FileType_GetFileExtPosition_test01_002 );
348
349         /* FileType_GetFileNamePosition ***********************************/
350         CU_add_test( pt_edittext, "FileType_GetFileNamePosition_test00_001",
351                                         Test_DrCC_FileType_GetFileNamePosition_test00_001 );
352         CU_add_test( pt_edittext, "FileType_GetFileNamePosition_test00_002",
353                                         Test_DrCC_FileType_GetFileNamePosition_test00_002 );
354
355         /* FileType_VerifyTextFile ***************************************/
356         CU_add_test( pt_edittext, "FileType_VerifyTextFile_test00_001",
357                                         Test_DrCC_FileType_VerifyTextFile_test00_001);
358         CU_add_test( pt_edittext, "FileType_VerifyTextFile_test00_002",
359                                         Test_DrCC_FileType_VerifyTextFile_test00_002);
360         CU_add_test( pt_edittext, "FileType_VerifyTextFile_test00_003",
361                                         Test_DrCC_FileType_VerifyTextFile_test00_003);
362         CU_add_test( pt_edittext, "FileType_VerifyTextFile_test00_004",
363                                         Test_DrCC_FileType_VerifyTextFile_test00_004);
364
365         return 0x00;
366 }
367
368
369 /* EOF of drd64_.c ----------------------------------- */