static void testbitop(int op, void *data) { struct testdata *test; uint8_t *buf; void (*tester)(void *dest, size_t destpos, const void *bits1, size_t pos1, const void *bits2, size_t pos2, size_t size) = NULL; if (op == ANDOP) tester = bitand; else if (op == OROP) tester = bitor; else if (op == XOROP) tester = bitxor; test = data; buf = (uint8_t *)malloc(test->capa); /* write to a different buffer */ memcpy(buf, test->bytes1, test->capa); tester(buf, test->expos, test->bytes1, test->pos1, test->bytes2, test->pos2, test->size); testassert(biteq(buf, 0, test->expected, 0, test->capa * 8), "failed to write bits to a different buffer"); /* same buffer */ memcpy(buf, test->bytes1, test->capa); tester(buf, test->expos, buf, test->pos1, test->bytes2, test->pos2, test->size); testassert(biteq(buf, 0, test->expected, 0, test->capa * 8), "failed to write bits to a same buffer"); free(buf); }
static int DoTest(void) { cPrefabPiecePool test; auto res = test.LoadFromFile("Test.cubeset", true); if (!res) { LOGWARNING("Loading from file \"Test.cubeset\" failed."); return 1; } LOG("Loaded %u regular pieces and %u starting pieces", static_cast<unsigned>(test.GetAllPiecesCount()), static_cast<unsigned>(test.GetStartingPiecesCount())); // Check that we loaded all the pieces: testassert(test.GetAllPiecesCount() == 1); testassert(test.GetStartingPiecesCount() == 1); return 0; }
static void testbitreverse(void *data) { struct testdata *test; uint8_t *buf; test = data; buf = (uint8_t *)malloc(test->capa); /* different pointers */ memcpy(buf, test->bytes1, test->capa); bitreverse(buf, test->expos, test->bytes1, test->pos1, test->size); testassert(biteq(buf, 0, test->expected, 0, test->capa * 8), "failed to write reversed bits to a different pointer"); /* same pointer */ memcpy(buf, test->bytes1, test->capa); bitreverse(buf, test->expos, buf, test->pos1, test->size); testassert(biteq(buf, 0, test->expected, 0, test->capa * 8), "failed to write reversed bits to the pointer"); free(buf); }
void _ThreadDispatchMainTestRun(struct ThreadTest *theTest) { YMStringRef path = YMSTRC("ym-dispatch-main-test"); YMArrayRef args = YMArrayCreate(); YMArrayAdd(args, "m"); YMArrayAdd(args, "10000"); YMTaskRef testTask = YMTaskCreate(path, args, false); YMTaskLaunch(testTask); YMTaskWait(testTask); int result = YMTaskGetExitStatus(testTask); testassert(result==0,"ym-dispatch-main-test result %d",result); YMRelease(testTask); YMRelease(args); YMRelease(path); }
int main(int argc, char** argv) { class cMockAllocationPool : public cAllocationPool<cChunkData::sChunkSection> { virtual cChunkData::sChunkSection * Allocate() { return new cChunkData::sChunkSection(); } virtual void Free(cChunkData::sChunkSection * a_Ptr) { delete a_Ptr; } } Pool; { // Test first segment cChunkData buffer(Pool); BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); SrcBlockBuffer[7 + (4 * 16) + (5 * 16 * 16)] = 0xcd; buffer.SetBlockTypes(SrcBlockBuffer); testassert(buffer.GetBlock(7, 5, 4) == 0xcd); NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe; buffer.SetMetas(SrcNibbleBuffer); testassert(buffer.GetMeta(6, 2, 1) == 0xe); memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe; buffer.SetBlockLight(SrcNibbleBuffer); testassert(buffer.GetBlockLight(6, 2, 1) == 0xe); memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe; buffer.SetSkyLight(SrcNibbleBuffer); testassert(buffer.GetSkyLight(6, 2, 1) == 0xe); } { // test following segment cChunkData buffer(Pool); BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); SrcBlockBuffer[7 + (4 * 16) + (24 * 16 * 16)] = 0xcd; buffer.SetBlockTypes(SrcBlockBuffer); testassert(buffer.GetBlock(7, 24, 4) == 0xcd); NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (24 * 16 * 16)) / 2] = 0xe; buffer.SetMetas(SrcNibbleBuffer); testassert(buffer.GetMeta(6, 24, 1) == 0xe); memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + 1 * 16 + 24 * 16 * 16) / 2] = 0xe; buffer.SetBlockLight(SrcNibbleBuffer); testassert(buffer.GetBlockLight(6, 24, 1) == 0xe); memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (24 * 16 * 16)) / 2] = 0xe; buffer.SetSkyLight(SrcNibbleBuffer); testassert(buffer.GetSkyLight(6, 24, 1) == 0xe); } { // test zeros cChunkData buffer(Pool); BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); buffer.SetBlockTypes(SrcBlockBuffer); testassert(buffer.GetBlock(7, 24, 4) == 0x00); NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); buffer.SetMetas(SrcNibbleBuffer); testassert(buffer.GetMeta(6, 24, 1) == 0x0); memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); buffer.SetBlockLight(SrcNibbleBuffer); testassert(buffer.GetBlockLight(6, 24, 1) == 0x0); memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer)); buffer.SetSkyLight(SrcNibbleBuffer); testassert(buffer.GetSkyLight(6, 24, 1) == 0xf); } // All tests passed: return 0; }