project_files/hwc/rtl/tests/check_fileio.c
branchwebgl
changeset 7983 02f36c3e7f6c
child 10015 4feced261c68
equal deleted inserted replaced
7981:aac257b77842 7983:02f36c3e7f6c
       
     1 #include <check.h>
       
     2 #include <stdlib.h>
       
     3 #include <stdio.h>
       
     4 #include "check_check.h"
       
     5 #include "../src/fpcrtl.h"
       
     6 
       
     7 typedef struct __TResourceList
       
     8 {
       
     9 	Integer count;
       
    10 	string255 files[500 + 1];
       
    11 } TResourceList;
       
    12 
       
    13 string255 t = STRINIT("test");
       
    14 string255 Pathz[1] =
       
    15 { STRINIT("../../") };
       
    16 int ptCurrTheme = 0;
       
    17 string255 cThemeCFGFilename = STRINIT("theme.cfg");
       
    18 const string255 __str79 = STRINIT("object");
       
    19 string255 c1 = STRINIT("=");
       
    20 string255 c2 = STRINIT("\x2c");
       
    21 string255 c3 = STRINIT("\x2f");
       
    22 
       
    23 static string255 make_string(const char* str)
       
    24 {
       
    25 	string255 s;
       
    26 	s.len = strlen(str);
       
    27 	memcpy(s.str, str, s.len + 1);
       
    28 	return s;
       
    29 }
       
    30 
       
    31 TResourceList readThemeCfg_0()
       
    32 {
       
    33 	TResourceList readthemecfg_result;
       
    34 	string255 s;
       
    35 	string255 key;
       
    36 	TextFile f;
       
    37 	Integer i;
       
    38 	TResourceList res;
       
    39 
       
    40 	s = _strconcat(_strappend(Pathz[ptCurrTheme], '\x2f'), cThemeCFGFilename);
       
    41 	//umisc_log(s);
       
    42 
       
    43 	fpcrtl_assign(f, s);
       
    44 
       
    45 	FileMode = 0;
       
    46 	fpcrtl_reset(f);
       
    47 
       
    48 	res.count = 0;
       
    49 	while (!(fpcrtl_eof(f)))
       
    50 	{
       
    51 		fpcrtl_readLnS(f, s);
       
    52 		if ((fpcrtl_Length(s)) == (0))
       
    53 		{
       
    54 			continue;
       
    55 		}
       
    56 		if ((s.s[1]) == ('\x3b'))
       
    57 		{
       
    58 			continue;
       
    59 		}
       
    60 		i = fpcrtl_pos('\x3d', s);
       
    61 		key = fpcrtl_trim(fpcrtl_copy(s, 1, i - 1));
       
    62 		fpcrtl_delete(s, 1, i);
       
    63 		if (_strcompare(key, __str79))
       
    64 		{
       
    65 			i = fpcrtl_pos('\x2c', s);
       
    66 			res.files[res.count] = _strconcat(
       
    67 					_strappend(Pathz[ptCurrTheme], '\x2f'),
       
    68 					fpcrtl_trim(fpcrtl_copy(s, 1, i - 1)));
       
    69 			++res.count;
       
    70 			//umisc_log(fpcrtl_trim(fpcrtl_copy(s, 1, i - 1)));
       
    71 		}
       
    72 	}
       
    73 	fpcrtl_close(f);
       
    74 	readthemecfg_result = res;
       
    75 	return readthemecfg_result;
       
    76 }
       
    77 
       
    78 START_TEST(test_readthemecfg)
       
    79 	{
       
    80 		int i;
       
    81 		TResourceList result;
       
    82 
       
    83 		printf("-----Entering test readthemecfg-----\n");
       
    84 		result = readThemeCfg_0();
       
    85 		for (i = 0; i < result.count; i++)
       
    86 		{
       
    87 			printf("%s\n", result.files[i].str);
       
    88 		}
       
    89 		printf("-----Leaving test readthemecfg-----\n");
       
    90 	}END_TEST
       
    91 
       
    92 Suite* fileio_suite(void)
       
    93 {
       
    94 	Suite *s = suite_create("fileio");
       
    95 
       
    96 	TCase *tc_core = tcase_create("Core");
       
    97 
       
    98 	tcase_add_test(tc_core, test_readthemecfg);
       
    99 
       
   100 	suite_add_tcase(s, tc_core);
       
   101 
       
   102 	return s;
       
   103 }