Example #1
0
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);
}
Example #2
0
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;
}
Example #3
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);
}
Example #4
0
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);
}
Example #5
0
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;
}