plugins/testsuite/filetest.sp
author David Anderson <dvander@alliedmods.net>
Sat Nov 29 22:44:11 2008 -0600 (2008-11-29)
changeset 2446 46bfcd5b47a1
permissions -rw-r--r--
Added filetest.sp to testsuite.
     1 #include <sourcemod>
     2 
     3 public Plugin:myinfo = 
     4 {
     5 	name = "File test",
     6 	author = "AlliedModders LLC",
     7 	description = "Tests file functions",
     8 	version = "1.0.0.0",
     9 	url = "http://www.sourcemod.net/"
    10 };
    11 
    12 public OnPluginStart()
    13 {
    14 	RegServerCmd("test_fread1", Test_ReadBinStr);
    15 }
    16 
    17 Handle:OpenFile2(const String:path[], const String:mode[])
    18 {
    19 	new Handle:file = OpenFile(path, mode);
    20 	if (file == INVALID_HANDLE)
    21 		PrintToServer("Failed to open file %s for %s", path, mode);
    22 	else
    23 		PrintToServer("Opened file handle %x: %s", file, path);
    24 	return file;
    25 }
    26 
    27 public Action:Test_ReadBinStr(args)
    28 {
    29 	new items[] = {1, 3, 5, 7, 0, 92, 193, 26, 0, 84, 248, 2};
    30 	new Handle:of = OpenFile2("smbintest", "wb");
    31 	if (of == INVALID_HANDLE)
    32 		return Plugin_Handled;
    33 	WriteFile(of, items, sizeof(items), 1);
    34 	CloseHandle(of);
    35 
    36 	new Handle:inf = OpenFile2("smbintest", "rb");
    37 	new String:buffer[sizeof(items)];
    38 	ReadFileString(inf, buffer, sizeof(items), sizeof(items));
    39 	FileSeek(inf, 0, SEEK_SET);
    40 	new items2[sizeof(items)];
    41 	ReadFile(inf, items2, sizeof(items), 1);
    42 	CloseHandle(inf);
    43 
    44 	for (new i = 0; i < sizeof(items); i++)
    45 	{
    46 		if (buffer[i] != items[i])
    47 		{
    48 			PrintToServer("FAILED ON INDEX %d: %d != %d", i, buffer[i], items[i]);
    49 			return Plugin_Handled;
    50 		}
    51 		else if (items2[i] != items[i])
    52 		{
    53 			PrintToServer("FAILED ON INDEX %d: %d != %d", i, items2[i], items[i]);
    54 			return Plugin_Handled;
    55 		}
    56 	}
    57 
    58 	PrintToServer("Test passed!");
    59 
    60 	return Plugin_Handled;
    61 }
    62