Consistency and fixing thread unit tests
This commit is contained in:
@@ -179,7 +179,7 @@ errorret_t assetUpdate(void) {
|
|||||||
|
|
||||||
// If an error occured these things need to be true, basically just
|
// If an error occured these things need to be true, basically just
|
||||||
// ensuring the sync loader is setting the error correctly.
|
// ensuring the sync loader is setting the error correctly.
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
assertTrue(
|
assertTrue(
|
||||||
loading->entry->state == ASSET_ENTRY_STATE_ERROR,
|
loading->entry->state == ASSET_ENTRY_STATE_ERROR,
|
||||||
"Loader did not set entry state to error on failed load."
|
"Loader did not set entry state to error on failed load."
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ extern assetloadercallbacks_t ASSET_LOADER_CALLBACKS[ASSET_LOADER_TYPE_COUNT];
|
|||||||
* @param ret The error return value to check and chain if it's an error.
|
* @param ret The error return value to check and chain if it's an error.
|
||||||
*/
|
*/
|
||||||
#define assetLoaderErrorChain(loading, ret) {\
|
#define assetLoaderErrorChain(loading, ret) {\
|
||||||
if(ret.code != ERROR_OK) { \
|
if(errorIsNotOk(ret)) { \
|
||||||
loading->entry->state = ASSET_ENTRY_STATE_ERROR; \
|
loading->entry->state = ASSET_ENTRY_STATE_ERROR; \
|
||||||
errorChain(ret); \
|
errorChain(ret); \
|
||||||
} \
|
} \
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ errorret_t assetMeshLoaderSync(assetloading_t *loading) {
|
|||||||
for(uint32_t i = 0; i < triangleCount; i++) {
|
for(uint32_t i = 0; i < triangleCount; i++) {
|
||||||
assetmeshstltriangle_t triData;
|
assetmeshstltriangle_t triData;
|
||||||
ret = assetFileRead(file, &triData, sizeof(triData));
|
ret = assetFileRead(file, &triData, sizeof(triData));
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
memoryFree(verts);
|
memoryFree(verts);
|
||||||
out->vertices = NULL;
|
out->vertices = NULL;
|
||||||
assetLoaderErrorChain(loading, ret);
|
assetLoaderErrorChain(loading, ret);
|
||||||
@@ -117,7 +117,7 @@ errorret_t assetMeshLoaderSync(assetloading_t *loading) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = assetFileClose(file);
|
ret = assetFileClose(file);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
memoryFree(verts);
|
memoryFree(verts);
|
||||||
out->vertices = NULL;
|
out->vertices = NULL;
|
||||||
assetLoaderErrorChain(loading, ret);
|
assetLoaderErrorChain(loading, ret);
|
||||||
@@ -127,7 +127,7 @@ errorret_t assetMeshLoaderSync(assetloading_t *loading) {
|
|||||||
ret = meshInit(
|
ret = meshInit(
|
||||||
&out->mesh, MESH_PRIMITIVE_TYPE_TRIANGLES, triangleCount * 3, verts
|
&out->mesh, MESH_PRIMITIVE_TYPE_TRIANGLES, triangleCount * 3, verts
|
||||||
);
|
);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
loading->entry->state = ASSET_ENTRY_STATE_ERROR;
|
loading->entry->state = ASSET_ENTRY_STATE_ERROR;
|
||||||
memoryFree(verts);
|
memoryFree(verts);
|
||||||
out->vertices = NULL;
|
out->vertices = NULL;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ int assetTextureReader(void *user, char *data, int size) {
|
|||||||
assertNotNull(file, "Asset file in stb_image callbacks cannot be NULL.");
|
assertNotNull(file, "Asset file in stb_image callbacks cannot be NULL.");
|
||||||
|
|
||||||
errorret_t ret = assetFileRead(file, data, (size_t)size);
|
errorret_t ret = assetFileRead(file, data, (size_t)size);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
errorCatch(errorPrint(ret));
|
errorCatch(errorPrint(ret));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ void assetTextureSkipper(void *user, int n) {
|
|||||||
assertNotNull(file, "Asset file in stb_image callbacks cannot be NULL.");
|
assertNotNull(file, "Asset file in stb_image callbacks cannot be NULL.");
|
||||||
|
|
||||||
errorret_t ret = assetFileRead(file, NULL, (size_t)n);
|
errorret_t ret = assetFileRead(file, NULL, (size_t)n);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
errorCatch(errorPrint(ret));
|
errorCatch(errorPrint(ret));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ errorret_t assetLocaleGetStringWithVA(
|
|||||||
tempBuffer,
|
tempBuffer,
|
||||||
bufferSize
|
bufferSize
|
||||||
);
|
);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
memoryFree(tempBuffer);
|
memoryFree(tempBuffer);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -637,7 +637,7 @@ errorret_t assetLocaleGetStringWithArgs(
|
|||||||
format,
|
format,
|
||||||
bufferSize
|
bufferSize
|
||||||
);
|
);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
memoryFree(format);
|
memoryFree(format);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ errorret_t errorChainImpl(
|
|||||||
const char_t *function,
|
const char_t *function,
|
||||||
const int32_t line
|
const int32_t line
|
||||||
) {
|
) {
|
||||||
if(retval.code == ERROR_OK) return retval;
|
if(errorIsOk(retval)) return retval;
|
||||||
|
|
||||||
assertNotNull(retval.state, "Error state NULL (Likely missing errorOk)");
|
assertNotNull(retval.state, "Error state NULL (Likely missing errorOk)");
|
||||||
assertNotNull(retval.state->message, "Message cannot be NULL");
|
assertNotNull(retval.state->message, "Message cannot be NULL");
|
||||||
@@ -111,7 +111,7 @@ errorret_t errorChainImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void errorCatch(errorret_t retval) {
|
void errorCatch(errorret_t retval) {
|
||||||
if(retval.code == ERROR_OK) return;
|
if(errorIsOk(retval)) return;
|
||||||
|
|
||||||
assertNotNull(retval.state, "Error state cannot be NULL");
|
assertNotNull(retval.state, "Error state cannot be NULL");
|
||||||
assertNotNull(retval.state->message, "Message cannot be NULL");
|
assertNotNull(retval.state->message, "Message cannot be NULL");
|
||||||
@@ -123,7 +123,7 @@ void errorCatch(errorret_t retval) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
errorret_t errorPrint(const errorret_t retval) {
|
errorret_t errorPrint(const errorret_t retval) {
|
||||||
if(retval.code == ERROR_OK) return retval;
|
if(errorIsOk(retval)) return retval;
|
||||||
|
|
||||||
assertNotNull(retval.state, "Error state cannot be NULL");
|
assertNotNull(retval.state, "Error state cannot be NULL");
|
||||||
assertNotNull(retval.state->message, "Message cannot be NULL");
|
assertNotNull(retval.state->message, "Message cannot be NULL");
|
||||||
|
|||||||
@@ -127,10 +127,11 @@ errorret_t errorPrint(const errorret_t retval);
|
|||||||
return errorChainImpl(errorChainRetval, __FILE__, __func__, __LINE__); \
|
return errorChainImpl(errorChainRetval, __FILE__, __func__, __LINE__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns without an error.
|
* Returns without an error.
|
||||||
|
*
|
||||||
|
* @return An error state with code ERROR_OK.
|
||||||
*/
|
*/
|
||||||
#define errorOk() \
|
#define errorOk() \
|
||||||
return errorOkImpl()
|
return errorOkImpl()
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
// Init engine
|
// Init engine
|
||||||
ret = engineInit(argc, (const char_t **)argv);
|
ret = engineInit(argc, (const char_t **)argv);
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
errorCatch(errorPrint(ret));
|
errorCatch(errorPrint(ret));
|
||||||
return ret.code;
|
return ret.code;
|
||||||
}
|
}
|
||||||
@@ -23,14 +23,14 @@ int main(int argc, char **argv) {
|
|||||||
// Begin main loop
|
// Begin main loop
|
||||||
do {
|
do {
|
||||||
ret = engineUpdate();
|
ret = engineUpdate();
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
errorCatch(errorPrint(ret));
|
errorCatch(errorPrint(ret));
|
||||||
return ret.code;
|
return ret.code;
|
||||||
}
|
}
|
||||||
} while(ENGINE.running);
|
} while(ENGINE.running);
|
||||||
|
|
||||||
ret = engineDispose();
|
ret = engineDispose();
|
||||||
if(ret.code != ERROR_OK) {
|
if(errorIsNotOk(ret)) {
|
||||||
errorCatch(errorPrint(ret));
|
errorCatch(errorPrint(ret));
|
||||||
return ret.code;
|
return ret.code;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ errorret_t saveLoad(const uint8_t slot) {
|
|||||||
saveStreamClosePlatform(&stream);
|
saveStreamClosePlatform(&stream);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(ret.code != ERROR_OK) return ret;
|
if(errorIsNotOk(ret)) return ret;
|
||||||
|
|
||||||
errorChain(saveStreamVerifyChecksumImpl(&stream, slot));
|
errorChain(saveStreamVerifyChecksumImpl(&stream, slot));
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ errorret_t saveWrite(const uint8_t slot) {
|
|||||||
|
|
||||||
errorret_t ret = saveFileWrite(&stream, file);
|
errorret_t ret = saveFileWrite(&stream, file);
|
||||||
|
|
||||||
if(ret.code == ERROR_OK) {
|
if(errorIsOk(ret)) {
|
||||||
ret = saveStreamFinalizeWriteImpl(&stream);
|
ret = saveStreamFinalizeWriteImpl(&stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ errorret_t saveWrite(const uint8_t slot) {
|
|||||||
saveStreamClosePlatform(&stream);
|
saveStreamClosePlatform(&stream);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(ret.code != ERROR_OK) return ret;
|
if(errorIsNotOk(ret)) return ret;
|
||||||
|
|
||||||
file->exists = true;
|
file->exists = true;
|
||||||
errorOk();
|
errorOk();
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ void threadInit(thread_t *thread, const threadcallback_t callback) {
|
|||||||
assertNotNull(callback, "Thread callback cannot be NULL.");
|
assertNotNull(callback, "Thread callback cannot be NULL.");
|
||||||
|
|
||||||
memoryZero(thread, sizeof(thread_t));
|
memoryZero(thread, sizeof(thread_t));
|
||||||
|
threadMutexInit(&thread->stateMutex);
|
||||||
|
|
||||||
thread->state = THREAD_STATE_STOPPED;
|
thread->state = THREAD_STATE_STOPPED;
|
||||||
thread->callback = callback;
|
thread->callback = callback;
|
||||||
@@ -59,9 +60,10 @@ void threadStart(thread_t *thread) {
|
|||||||
|
|
||||||
threadStartRequest(thread);
|
threadStartRequest(thread);
|
||||||
threadMutexLock(&thread->stateMutex);
|
threadMutexLock(&thread->stateMutex);
|
||||||
threadMutexWaitLock(&thread->stateMutex);
|
while(thread->state == THREAD_STATE_STARTING) {
|
||||||
|
threadMutexWaitLock(&thread->stateMutex);
|
||||||
|
}
|
||||||
threadMutexUnlock(&thread->stateMutex);
|
threadMutexUnlock(&thread->stateMutex);
|
||||||
printf("Thread is now running.\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void threadStop(thread_t *thread) {
|
void threadStop(thread_t *thread) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
void threadMutexInit(threadmutex_t *lock) {
|
void threadMutexInit(threadmutex_t *lock) {
|
||||||
#ifdef DUSK_THREAD_PTHREAD
|
#ifdef DUSK_THREAD_PTHREAD
|
||||||
pthread_mutex_init(&lock->mutex, NULL);
|
pthread_mutex_init(&lock->mutex, NULL);
|
||||||
|
pthread_cond_init(&lock->cond, NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,5 +47,6 @@ void threadMutexSignal(threadmutex_t *lock) {
|
|||||||
void threadMutexDispose(threadmutex_t *lock) {
|
void threadMutexDispose(threadmutex_t *lock) {
|
||||||
#ifdef DUSK_THREAD_PTHREAD
|
#ifdef DUSK_THREAD_PTHREAD
|
||||||
pthread_mutex_destroy(&lock->mutex);
|
pthread_mutex_destroy(&lock->mutex);
|
||||||
|
pthread_cond_destroy(&lock->cond);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,6 @@
|
|||||||
#include "error/errorgl.h"
|
#include "error/errorgl.h"
|
||||||
|
|
||||||
#define assertNoGLError(message) \
|
#define assertNoGLError(message) \
|
||||||
assertTrue(errorGLCheck().code == ERROR_OK, message)
|
assertTrue(errorIsOk(errorGLCheck()), message)
|
||||||
|
|
||||||
// EOF
|
// EOF
|
||||||
@@ -40,14 +40,14 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
|
|
||||||
glShaderSource(shader->vertexShaderId, 1, &def->vert, NULL);
|
glShaderSource(shader->vertexShaderId, 1, &def->vert, NULL);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
errorChain(err);
|
errorChain(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
glCompileShader(shader->vertexShaderId);
|
glCompileShader(shader->vertexShaderId);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
errorChain(err);
|
errorChain(err);
|
||||||
}
|
}
|
||||||
@@ -64,14 +64,14 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
// Create fragment shader
|
// Create fragment shader
|
||||||
shader->fragmentShaderId = glCreateShader(GL_FRAGMENT_SHADER);
|
shader->fragmentShaderId = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
errorChain(err);
|
errorChain(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
glShaderSource(shader->fragmentShaderId, 1, &def->frag, NULL);
|
glShaderSource(shader->fragmentShaderId, 1, &def->frag, NULL);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
glDeleteShader(shader->fragmentShaderId);
|
glDeleteShader(shader->fragmentShaderId);
|
||||||
errorChain(err);
|
errorChain(err);
|
||||||
@@ -79,7 +79,7 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
|
|
||||||
glCompileShader(shader->fragmentShaderId);
|
glCompileShader(shader->fragmentShaderId);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
glDeleteShader(shader->fragmentShaderId);
|
glDeleteShader(shader->fragmentShaderId);
|
||||||
errorChain(err);
|
errorChain(err);
|
||||||
@@ -97,7 +97,7 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
// Create shader program
|
// Create shader program
|
||||||
shader->shaderProgramId = glCreateProgram();
|
shader->shaderProgramId = glCreateProgram();
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
glDeleteShader(shader->fragmentShaderId);
|
glDeleteShader(shader->fragmentShaderId);
|
||||||
errorChain(err);
|
errorChain(err);
|
||||||
@@ -105,7 +105,7 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
|
|
||||||
glAttachShader(shader->shaderProgramId, shader->vertexShaderId);
|
glAttachShader(shader->shaderProgramId, shader->vertexShaderId);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteProgram(shader->shaderProgramId);
|
glDeleteProgram(shader->shaderProgramId);
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
glDeleteShader(shader->fragmentShaderId);
|
glDeleteShader(shader->fragmentShaderId);
|
||||||
@@ -114,7 +114,7 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
|
|
||||||
glAttachShader(shader->shaderProgramId, shader->fragmentShaderId);
|
glAttachShader(shader->shaderProgramId, shader->fragmentShaderId);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteProgram(shader->shaderProgramId);
|
glDeleteProgram(shader->shaderProgramId);
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
glDeleteShader(shader->fragmentShaderId);
|
glDeleteShader(shader->fragmentShaderId);
|
||||||
@@ -123,7 +123,7 @@ errorret_t shaderInitGL(shadergl_t *shader, const shaderdefinitiongl_t *def) {
|
|||||||
|
|
||||||
glLinkProgram(shader->shaderProgramId);
|
glLinkProgram(shader->shaderProgramId);
|
||||||
err = errorGLCheck();
|
err = errorGLCheck();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
glDeleteProgram(shader->shaderProgramId);
|
glDeleteProgram(shader->shaderProgramId);
|
||||||
glDeleteShader(shader->vertexShaderId);
|
glDeleteShader(shader->vertexShaderId);
|
||||||
glDeleteShader(shader->fragmentShaderId);
|
glDeleteShader(shader->fragmentShaderId);
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ errorret_t networkPSPUpdate() {
|
|||||||
|
|
||||||
// Kill the PSP network stack.
|
// Kill the PSP network stack.
|
||||||
errorret_t err = networkPSPTerm();
|
errorret_t err = networkPSPTerm();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
errorCatch(errorPrint(err));
|
errorCatch(errorPrint(err));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +203,7 @@ void networkPSPRequestDisconnection(
|
|||||||
);
|
);
|
||||||
|
|
||||||
errorret_t err = networkPSPTerm();
|
errorret_t err = networkPSPTerm();
|
||||||
if(err.code != ERROR_OK) {
|
if(errorIsNotOk(err)) {
|
||||||
errorCatch(errorPrint(err));
|
errorCatch(errorPrint(err));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user