coverageExec(__line);
main()
{coverageExec(__line);
if(true) coverageExec(__line);
{ coverageExec(__line);
coverageExec(__line); print("example-1");
} coverageExec(__line);
else coverageExec(__line);
{ coverageExec(__line);
coverageExec(__line); print("example-2");
} coverageExec(__line);
coverageExec(__line);}
main()
{
if(true)
{
print("example-1");
}
else
{
print("example-2");
}
}
> main()
> {
> if(true)
> {
> print("example-1");
> }
! else
! {
! print("example-2");
! }
> }
AddFakePlayer(playerid, name[], ...)
func()
{
return 1;
new a;
return a;
}
@PT Jб havia um pequeno trecho do tуpico dando um exemplo, porйm agora eu referкnciei uma matйria do DevMedia
@Adiiti isto й basicamente uma gambiarra, jб que o pawn nгo oferece suporte a um trace completo como este. @Bruno13 para rodar o teste, haverб trкs items sendo eles:
Ele trata as simulaзхes indiretamente, algo como: PHP код:
Callbacks para ele eu aciono-as com AddPlayerEvent Outros testes que nгo necessitam disto, eu uso um fork meu do y_test do ****** Talvez em algumas semanas, eu publique isto, para ajudar a board.. Sobre o erro 225 ele ocorre apenas csao isto aconteзa: PHP код:
|
#include <tests>
#include <hooks>
/*
Passos
1. Adcionar o player(nгo registrado)
2. Testar outros botхes de textdraws
3. Registrar o player
4. Checar no banco de dados se os dados foram inseridos
5. Setar valores nas variaveis dele
6. Remover o player
7. Checar no DB se os dados sгo iguais aos setados
8. Conectar o player(registrado), no id do player acima
9. Checar se variaveis foram limpas
10. Logar o player
11. Mudar valor das variaveis
12. Desconectar o player
13. Checar no DB se os valores foram atualizados
*/
static uvar(string: test_String[MAX_PLAYERS][15]) = "string", "\0";
static uvar(Float: test_Float[MAX_PLAYERS]) = "float", 0.0;
static uvar(Float: test_ArrayFloat[MAX_PLAYERS][15]) = "array-float", 0.0;
static uvar(bool: test_Bool[MAX_PLAYERS]) = "bool", false;
static uvar(bool: test_ArrayBool[MAX_PLAYERS][15]) = "array-bool", false;
static uvar( test_Int[MAX_PLAYERS]) = "int", 0;
static uvar( test_ArrayInt[MAX_PLAYERS][15]) = "array-int", 0;
static uvar(BitArray: test_BitArray<MAX_PLAYERS>) = "bitarray", false;
Test:Init()
{
const playerid = 0;
// 1. Adcionamos um player(nгo registrado)
AddFakePlayer(playerid, "Unknown_User", "127.0.0.1", {130, 230});
}
hook OnPlayerEvent(playerid, playerEvents:eventid)
{
static step;
if(eventid == SELECT_TEXTDRAW)
{
// 2. Testar outro botгo
if(!step)
{
++step;
clickTextDraw(playerid, loginSignIn[2]);
}
else
{
// 3. Registrar o player
step = 0;
clickTextDraw(playerid, loginSignUp[2]);
}
return;
}
// Certificar de que quando clica no botгo logar, sem estar conectado nada aconteзa
ASSERT(!step);
if(eventid == DIALOG_INPUT)
{
// 3. Registrar o player
inputDialog(playerid, "12345");
}
}
hook OnPlayerLogin(playerid, loginType:type)
{
// 3. Registrar o player
if(type == login_byRegister)
{
// Seleciona os dados da tabela
format(gs_QueryBuffer, sizeof(gs_QueryBuffer), "SELECT * from `"#USERS_TABLE"` where `id`='%d';", getPlayerIDG(playerid));
new Cache:cache = mysql_query(cHandle, gs_QueryBuffer);
// Obtem o numero de linhas existentes
new rows;
cache_get_row_count(rows);
// Certificar que a linha existe
ASSERT(rows == 1);
// 4. Checa no banco de dados se os dados foram inseridos
new
value_Arrays[15*15], // Salvo em strings, depois convertidos para indices
value_String[15],
Float:value_Float,
Float:value_ArrayFloat[15],
value_Bool,
bool:value_ArrayBool[15],
value_Int,
value_ArrayInt[15],
value_BitArray
;
cache_get_value_name(0, "string", value_String);
ASSERT(strcmp(value_String, test_String[playerid]));
cache_get_value_name_float(0, "float", value_Float);
ASSERT(value_Float == test_Float[playerid]);
cache_get_value_name(0, "array-float", value_Arrays);
sscanf(value_Arrays, "p<,>a<f>[15]", value_ArrayFloat)
ASSERT(arraycmp(value_ArrayFloat, test_ArrayFloat[plyerid]));
cache_get_value_name_int(0, "bool", value_Bool);
ASSERT(value_Bool == test_Bool[playerid]);
cache_get_value_name(0, "array-bool", value_Arrays);
sscanf(value_Arrays, "p<,>a<d>[15]", _:value_ArrayBool)
ASSERT(arraycmp(value_ArrayBool, test_ArrayBool[plyerid]));
cache_get_value_name_int(0, "int", value_Int);
ASSERT(value_Int == test_Int[playerid]);
cache_get_value_name(0, "array-int", value_Arrays);
sscanf(value_Arrays, "p<,>a<d>[15]", value_ArrayInt)
ASSERT(arraycmp(value_ArrayInt, test_ArrayInt[plyerid]));
cache_get_value_name_int(0, "bitarray", value_BitArray);
ASSERT(value_BitArray == _:Bit_Get(test_BitArray, playerid));
}
}