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