Compare commits
4
Commits
c8febec8a7
...
2a927b5447
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2a927b5447 | ||
|
|
ce8b44f4e9 | ||
|
|
bcbd03269f | ||
|
|
dfdb61e5b5 |
@@ -0,0 +1,3 @@
|
||||
[submodule "third_party/munit"]
|
||||
path = third_party/munit
|
||||
url = https://github.com/nemequ/munit.git
|
||||
@@ -10,3 +10,4 @@ pkg_check_modules(SDL3 REQUIRED IMPORTED_TARGET sdl3)
|
||||
|
||||
add_subdirectory(src/engine)
|
||||
add_subdirectory(src/examples)
|
||||
add_subdirectory(tests)
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
add_library(munit STATIC
|
||||
"${PROJECT_SOURCE_DIR}/third_party/munit/munit.c"
|
||||
)
|
||||
|
||||
target_include_directories(munit
|
||||
PUBLIC
|
||||
${PROJECT_SOURCE_DIR}/third_party
|
||||
)
|
||||
|
||||
file(GLOB TEST_SOURCES CONFIGURE_DEPENDS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/suites/*.c"
|
||||
)
|
||||
|
||||
add_library(dangerzone_tests STATIC
|
||||
${TEST_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(dangerzone_tests
|
||||
PUBLIC
|
||||
${PROJECT_SOURCE_DIR}/include
|
||||
${PROJECT_SOURCE_DIR}/src
|
||||
${PROJECT_SOURCE_DIR}/third_party
|
||||
)
|
||||
|
||||
add_executable(test_runner
|
||||
main.c
|
||||
)
|
||||
|
||||
target_link_libraries(test_runner
|
||||
PRIVATE
|
||||
dangerzone_tests
|
||||
munit
|
||||
dangerzone_engine
|
||||
)
|
||||
|
||||
add_custom_target(test
|
||||
COMMAND tests/test_runner
|
||||
DEPENDS test_runner
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
)
|
||||
@@ -0,0 +1,26 @@
|
||||
#include "munit/munit.h"
|
||||
|
||||
extern const MunitSuite sdl_suite;
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
MunitSuite sub_suites[] = {
|
||||
sdl_suite,
|
||||
{ // terminator
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
MUNIT_SUITE_OPTION_NONE
|
||||
}
|
||||
};
|
||||
|
||||
MunitSuite master_suite = {
|
||||
"",
|
||||
NULL,
|
||||
sub_suites,
|
||||
1,
|
||||
MUNIT_SUITE_OPTION_NONE
|
||||
};
|
||||
|
||||
return munit_suite_main(&master_suite, NULL, argc, argv);
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
#include <dangerzone/engine.h>
|
||||
#include "internal/engine_internal.h"
|
||||
|
||||
#include "munit/munit.h"
|
||||
|
||||
static void*
|
||||
test_setup(
|
||||
const MunitParameter params[],
|
||||
void* data
|
||||
) {
|
||||
(void)params;
|
||||
(void)data;
|
||||
|
||||
internal_state = (engine_internal_state_t *)
|
||||
malloc(sizeof(engine_internal_state_t));
|
||||
munit_assert_not_null(internal_state);
|
||||
|
||||
internal_state->sdl_state = (engine_sdl_state_t *)
|
||||
malloc(sizeof(engine_sdl_state_t));
|
||||
munit_assert_not_null(internal_state->sdl_state);
|
||||
|
||||
internal_state->sdl_state->width = 500;
|
||||
internal_state->sdl_state->height = 500;
|
||||
strncpy(
|
||||
internal_state->sdl_state->window_name, "Dangerzone",
|
||||
WINDOW_NAME_MAX_LENGTH - 1
|
||||
);
|
||||
internal_state->sdl_state->window_name[WINDOW_NAME_MAX_LENGTH - 1] = '\0';
|
||||
|
||||
return internal_state;
|
||||
}
|
||||
|
||||
static void
|
||||
test_teardown(
|
||||
void *fixture
|
||||
) {
|
||||
engine_internal_state_t *state = fixture;
|
||||
|
||||
if (state->sdl_state != NULL) {
|
||||
free(state->sdl_state);
|
||||
free(state);
|
||||
}
|
||||
|
||||
internal_state = NULL;
|
||||
}
|
||||
|
||||
static MunitResult
|
||||
test_window_parameters(
|
||||
const MunitParameter params[],
|
||||
void* data
|
||||
) {
|
||||
(void)params;
|
||||
|
||||
engine_internal_state_t *state = data;
|
||||
|
||||
munit_assert_not_null(state);
|
||||
munit_assert_not_null(state->sdl_state);
|
||||
munit_assert_int(state->sdl_state->width, ==, 500);
|
||||
munit_assert_int(state->sdl_state->height, ==, 500);
|
||||
munit_assert_int(strcmp(state->sdl_state->window_name, "Dangerzone"), ==, 0);
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MunitTest tests[] = {
|
||||
{
|
||||
"/window-parameters",
|
||||
test_window_parameters,
|
||||
test_setup,
|
||||
test_teardown,
|
||||
MUNIT_TEST_OPTION_NONE,
|
||||
NULL
|
||||
},
|
||||
{ // terminator
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
MUNIT_TEST_OPTION_NONE,
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
||||
const MunitSuite sdl_suite = {
|
||||
"/sdl",
|
||||
tests,
|
||||
NULL,
|
||||
1,
|
||||
MUNIT_SUITE_OPTION_NONE
|
||||
};
|
||||
+1
Submodule third_party/munit added at ad67a3a2ca
Reference in New Issue
Block a user