63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
| #include <sourcemod>
 | |
| 
 | |
| public Plugin:myinfo = 
 | |
| {
 | |
| 	name = "File test",
 | |
| 	author = "AlliedModders LLC",
 | |
| 	description = "Tests file functions",
 | |
| 	version = "1.0.0.0",
 | |
| 	url = "http://www.sourcemod.net/"
 | |
| };
 | |
| 
 | |
| public OnPluginStart()
 | |
| {
 | |
| 	RegServerCmd("test_fread1", Test_ReadBinStr);
 | |
| }
 | |
| 
 | |
| Handle:OpenFile2(const String:path[], const String:mode[])
 | |
| {
 | |
| 	new Handle:file = OpenFile(path, mode);
 | |
| 	if (file == INVALID_HANDLE)
 | |
| 		PrintToServer("Failed to open file %s for %s", path, mode);
 | |
| 	else
 | |
| 		PrintToServer("Opened file handle %x: %s", file, path);
 | |
| 	return file;
 | |
| }
 | |
| 
 | |
| public Action:Test_ReadBinStr(args)
 | |
| {
 | |
| 	new items[] = {1, 3, 5, 7, 0, 92, 193, 26, 0, 84, 248, 2};
 | |
| 	new Handle:of = OpenFile2("smbintest", "wb");
 | |
| 	if (of == INVALID_HANDLE)
 | |
| 		return Plugin_Handled;
 | |
| 	WriteFile(of, items, sizeof(items), 1);
 | |
| 	CloseHandle(of);
 | |
| 
 | |
| 	new Handle:inf = OpenFile2("smbintest", "rb");
 | |
| 	new String:buffer[sizeof(items)];
 | |
| 	ReadFileString(inf, buffer, sizeof(items), sizeof(items));
 | |
| 	FileSeek(inf, 0, SEEK_SET);
 | |
| 	new items2[sizeof(items)];
 | |
| 	ReadFile(inf, items2, sizeof(items), 1);
 | |
| 	CloseHandle(inf);
 | |
| 
 | |
| 	for (new i = 0; i < sizeof(items); i++)
 | |
| 	{
 | |
| 		if (buffer[i] != items[i])
 | |
| 		{
 | |
| 			PrintToServer("FAILED ON INDEX %d: %d != %d", i, buffer[i], items[i]);
 | |
| 			return Plugin_Handled;
 | |
| 		}
 | |
| 		else if (items2[i] != items[i])
 | |
| 		{
 | |
| 			PrintToServer("FAILED ON INDEX %d: %d != %d", i, items2[i], items[i]);
 | |
| 			return Plugin_Handled;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	PrintToServer("Test passed!");
 | |
| 
 | |
| 	return Plugin_Handled;
 | |
| }
 | |
| 
 |