static int FlowStorageTest02(void) { Flow *f = NULL; StorageInit(); int id1 = FlowStorageRegister("test", sizeof(void *), NULL, StorageTestFree); if (id1 < 0) goto error; if (StorageFinalize() < 0) goto error; FlowInitConfig(FLOW_QUIET); f = FlowAlloc(); if (f == NULL) { goto error; } void *ptr = FlowGetStorageById(f, id1); if (ptr != NULL) { goto error; } void *ptr1a = SCMalloc(128); if (ptr1a == NULL) { goto error; } FlowSetStorageById(f, id1, ptr1a); void *ptr1b = FlowGetStorageById(f, id1); if (ptr1a != ptr1b) { goto error; } FlowClearMemory(f, 0); FlowFree(f); FlowShutdown(); StorageCleanup(); return 1; error: if (f != NULL) { FlowClearMemory(f, 0); FlowFree(f); } FlowShutdown(); StorageCleanup(); return 0; }
static int StorageTest01(void) { StorageInit(); int id = StorageRegister(STORAGE_HOST, "test", 8, StorageTestAlloc, StorageTestFree); if (id < 0) goto error; id = StorageRegister(STORAGE_HOST, "variable", 24, StorageTestAlloc, StorageTestFree); if (id < 0) goto error; id = StorageRegister(STORAGE_FLOW, "store", sizeof(void *), StorageTestAlloc, StorageTestFree); if (id < 0) goto error; if (StorageFinalize() < 0) goto error; StorageCleanup(); return 1; error: StorageCleanup(); return 0; }
static void XBitsTestShutdown(void) { HostCleanup(); IPPairCleanup(); StorageCleanup(); }
static int FlowStorageTest01(void) { Flow *f = NULL; StorageInit(); int id1 = FlowStorageRegister("test", 8, StorageTestAlloc, StorageTestFree); if (id1 < 0) goto error; int id2 = FlowStorageRegister("variable", 24, StorageTestAlloc, StorageTestFree); if (id2 < 0) goto error; int id3 = FlowStorageRegister("store", sizeof(void *), StorageTestAlloc, StorageTestFree); if (id3 < 0) goto error; if (StorageFinalize() < 0) goto error; FlowInitConfig(FLOW_QUIET); f = FlowAlloc(); if (f == NULL) { goto error; } void *ptr = FlowGetStorageById(f, id1); if (ptr != NULL) { goto error; } ptr = FlowGetStorageById(f, id2); if (ptr != NULL) { goto error; } ptr = FlowGetStorageById(f, id3); if (ptr != NULL) { goto error; } void *ptr1a = FlowAllocStorageById(f, id1); if (ptr1a == NULL) { goto error; } void *ptr2a = FlowAllocStorageById(f, id2); if (ptr2a == NULL) { goto error; } void *ptr3a = FlowAllocStorageById(f, id3); if (ptr3a == NULL) { goto error; } void *ptr1b = FlowGetStorageById(f, id1); if (ptr1a != ptr1b) { goto error; } void *ptr2b = FlowGetStorageById(f, id2); if (ptr2a != ptr2b) { goto error; } void *ptr3b = FlowGetStorageById(f, id3); if (ptr3a != ptr3b) { goto error; } FlowClearMemory(f, 0); FlowFree(f); FlowShutdown(); StorageCleanup(); return 1; error: if (f != NULL) { FlowClearMemory(f, 0); FlowFree(f); } FlowShutdown(); StorageCleanup(); return 0; }
static int StorageTest03(void) { StorageInit(); int id = StorageRegister(STORAGE_HOST, "test", 8, StorageTestAlloc, StorageTestFree); if (id < 0) goto error; id = StorageRegister(STORAGE_HOST, "test", 8, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed: "); goto error; } id = StorageRegister(STORAGE_HOST, "test1", 6, NULL, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (2): "); goto error; } id = StorageRegister(STORAGE_HOST, "test2", 8, StorageTestAlloc, NULL); if (id != -1) { printf("duplicate registration should have failed (3): "); goto error; } id = StorageRegister(STORAGE_HOST, "test3", 0, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (4): "); goto error; } id = StorageRegister(STORAGE_HOST, "", 8, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (5): "); goto error; } id = StorageRegister(STORAGE_HOST, NULL, 8, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (6): "); goto error; } id = StorageRegister(STORAGE_MAX, "test4", 8, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (7): "); goto error; } id = StorageRegister(38, "test5", 8, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (8): "); goto error; } id = StorageRegister(-1, "test6", 8, StorageTestAlloc, StorageTestFree); if (id != -1) { printf("duplicate registration should have failed (9): "); goto error; } StorageCleanup(); return 1; error: StorageCleanup(); return 0; }
static int StorageTest02(void) { struct StorageTest02Data *test = NULL; StorageInit(); int id1 = StorageRegister(STORAGE_HOST, "test", 4, StorageTest02Init, StorageTestFree); if (id1 < 0) { printf("StorageRegister failed (2): "); goto error; } int id2 = StorageRegister(STORAGE_HOST, "test2", 4, StorageTest02Init, StorageTestFree); if (id2 < 0) { printf("StorageRegister failed (2): "); goto error; } if (StorageFinalize() < 0) { printf("StorageFinalize failed: "); goto error; } Storage *storage = NULL; void *data = StorageAllocById(&storage, STORAGE_HOST, id1); if (data == NULL) { printf("StorageAllocById failed, data == NULL, storage %p: ", storage); goto error; } test = (struct StorageTest02Data *)data; if (test->abc != 1234) { printf("setup failed, test->abc != 1234, but %d (1):", test->abc); goto error; } test->abc = 4321; data = StorageAllocById(&storage, STORAGE_HOST, id2); if (data == NULL) { printf("StorageAllocById failed, data == NULL, storage %p: ", storage); goto error; } test = (struct StorageTest02Data *)data; if (test->abc != 1234) { printf("setup failed, test->abc != 1234, but %d (2):", test->abc); goto error; } data = StorageGetById(storage, STORAGE_HOST, id1); if (data == NULL) { printf("StorageAllocById failed, data == NULL, storage %p: ", storage); goto error; } test = (struct StorageTest02Data *)data; if (test->abc != 4321) { printf("setup failed, test->abc != 4321, but %d (3):", test->abc); goto error; } //StorageFreeById(storage, STORAGE_HOST, id1); //StorageFreeById(storage, STORAGE_HOST, id2); StorageFree(&storage, STORAGE_HOST); StorageCleanup(); return 1; error: StorageCleanup(); return 0; }