Blame tests/core/encoding.c

Packit ae9e2a
#include "clar_libgit2.h"
Packit ae9e2a
#include "varint.h"
Packit ae9e2a
Packit ae9e2a
void test_core_encoding__decode(void)
Packit ae9e2a
{
Packit ae9e2a
	const unsigned char *buf = (unsigned char *)"AB";
Packit ae9e2a
	size_t size;
Packit ae9e2a
Packit ae9e2a
	cl_assert(git_decode_varint(buf, &size) == 65);
Packit ae9e2a
	cl_assert(size == 1);
Packit ae9e2a
Packit ae9e2a
	buf = (unsigned char *)"\xfe\xdc\xbaXY";
Packit ae9e2a
	cl_assert(git_decode_varint(buf, &size) == 267869656);
Packit ae9e2a
	cl_assert(size == 4);
Packit ae9e2a
Packit ae9e2a
	buf = (unsigned char *)"\xaa\xaa\xfe\xdc\xbaXY";
Packit ae9e2a
	cl_assert(git_decode_varint(buf, &size) == 1489279344088ULL);
Packit ae9e2a
	cl_assert(size == 6);
Packit ae9e2a
Packit ae9e2a
	buf = (unsigned char *)"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xfe\xdc\xbaXY";
Packit ae9e2a
	cl_assert(git_decode_varint(buf, &size) == 0);
Packit ae9e2a
	cl_assert(size == 0);
Packit ae9e2a
Packit ae9e2a
}
Packit ae9e2a
Packit ae9e2a
void test_core_encoding__encode(void)
Packit ae9e2a
{
Packit ae9e2a
	unsigned char buf[100];
Packit ae9e2a
	cl_assert(git_encode_varint(buf, 100, 65) == 1);
Packit ae9e2a
	cl_assert(buf[0] == 'A');
Packit ae9e2a
Packit ae9e2a
	cl_assert(git_encode_varint(buf, 1, 1) == 1);
Packit ae9e2a
	cl_assert(!memcmp(buf, "\x01", 1));
Packit ae9e2a
Packit ae9e2a
	cl_assert(git_encode_varint(buf, 100, 267869656) == 4);
Packit ae9e2a
	cl_assert(!memcmp(buf, "\xfe\xdc\xbaX", 4));
Packit ae9e2a
Packit ae9e2a
	cl_assert(git_encode_varint(buf, 100, 1489279344088ULL) == 6);
Packit ae9e2a
	cl_assert(!memcmp(buf, "\xaa\xaa\xfe\xdc\xbaX", 6));
Packit ae9e2a
Packit ae9e2a
	cl_assert(git_encode_varint(buf, 1, 1489279344088ULL) == -1);
Packit ae9e2a
}