Initial commit
This commit is contained in:
73
scripting/testsuite/filetest.sp
Normal file
73
scripting/testsuite/filetest.sp
Normal file
@@ -0,0 +1,73 @@
|
||||
#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 void OnPluginStart()
|
||||
{
|
||||
RegServerCmd("test_fread1", Test_ReadBinStr);
|
||||
}
|
||||
|
||||
File OpenFile2(const String:path[], const String:mode[])
|
||||
{
|
||||
File file = OpenFile(path, mode);
|
||||
if (!file)
|
||||
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)
|
||||
{
|
||||
int items[] = {1, 3, 5, 7, 0, 92, 193, 26, 0, 84, 248, 2};
|
||||
File of = OpenFile2("smbintest", "wb");
|
||||
if (!of)
|
||||
return Plugin_Handled;
|
||||
of.Write(items, sizeof(items), 1);
|
||||
of.Close();
|
||||
|
||||
File inf = OpenFile2("smbintest", "rb");
|
||||
char buffer[sizeof(items)];
|
||||
inf.ReadString(buffer, sizeof(items), sizeof(items));
|
||||
inf.Seek(0, SEEK_SET);
|
||||
int items2[sizeof(items)];
|
||||
inf.Read(items2, sizeof(items), 1);
|
||||
inf.Close();
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
inf = OpenFile2("smbintest", "rb");
|
||||
for (new i = 0; i < sizeof(items); i++)
|
||||
{
|
||||
new item;
|
||||
if (!inf.ReadInt8(item) || item != items[i])
|
||||
{
|
||||
PrintToServer("FAILED ON INDEX %d: %d != %d", i, item, items[i]);
|
||||
return Plugin_Handled;
|
||||
}
|
||||
}
|
||||
|
||||
PrintToServer("Test passed!");
|
||||
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
Reference in New Issue
Block a user