Files
mars-nwe/tests/nwnss/cache/test_nwnss_cache.c
Mario Fetka 0f82de2743
All checks were successful
Source release / source-package (push) Successful in 1m20s
0536 build: introduce libnwnss for imported NSS runtime
2026-06-14 22:34:04 +02:00

62 lines
1.7 KiB
C

#include <include/xCache.h>
#include <include/pssmpk.h>
#include <include/register.h>
#include <internal/nCache.h>
#include <internal/pssConfig.h>
#include <include/reserveResources.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CHECK(expr) do { \
if (!(expr)) { \
fprintf(stderr, "CHECK failed: %s:%d: %s\n", __FILE__, __LINE__, #expr); \
return EXIT_FAILURE; \
} \
} while (0)
int main(void)
{
MyCache_s mycache;
Buffer_s *buffer;
Buffer_s *found;
configStartup();
nssInitializeSpinLockCode();
CHECK(COMN_RegisterLibraryResourceTags("nwnss.cache") == zOK);
MPKNSS_LOCK();
CHECK(CACHE_Startup() == zOK);
CHECK(NUM_RESOURCES() == -PRERESERVE_FOR_BEAST_FLUSH);
INC_RSRC_CHECK(PRERESERVE_FOR_BEAST_FLUSH + NAME_RESERVE);
CHECK(HAVE_RESOURCES(NAME_RESERVE - 1));
RESERVE_RSRC(NAME_RESERVE);
CHECK(NUM_RESOURCES() == 0);
RELEASE_RSRC(NAME_RESERVE);
CHECK(NUM_RESOURCES() == NAME_RESERVE);
initMyCache(&mycache, NULL, 12, "cache-test");
buffer = cacheAllocBuffer(&mycache, 7, 11, defaultSignal, CACHE_WRITE);
CHECK(buffer != NULL);
CHECK(buffer->pBuf.data != NULL);
CHECK(buffer->pBuf.mycache == &mycache);
CHECK(buffer->pBuf.fileBlk == 7);
strcpy((char *)buffer->pBuf.data, "mars-nwe");
cacheMarkDirty(buffer);
CHECK((buffer->state & CACHE_DIRTY) != 0);
cacheFlush(buffer);
CHECK((buffer->state & CACHE_DIRTY) == 0);
CACHE_RELEASE(buffer);
found = cacheFind(&mycache, 7);
CHECK(found == buffer);
cacheTossIfThere(&mycache, 7);
CHECK(cacheFind(&mycache, 7) == NULL);
CACHE_Shutdown();
MPKNSS_UNLOCK();
return EXIT_SUCCESS;
}