diff options
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | lib/bemenu.h | 6 | ||||
| -rw-r--r-- | test/CMakeLists.txt | 18 | ||||
| -rw-r--r-- | test/bmMenuNew.c | 23 | 
4 files changed, 45 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index db0851d..65e2b3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@  CMAKE_MINIMUM_REQUIRED(VERSION 2.8)  PROJECT(bemenu) +INCLUDE(CTest)  SET(BEMENU_NAME "bemenu")  SET(BEMENU_DESCRIPTION "Dynamic menu library and client program inspired by dmenu")  SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${chck_SOURCE_DIR}/CMake/modules) diff --git a/lib/bemenu.h b/lib/bemenu.h index f4823b4..3fdfb0b 100644 --- a/lib/bemenu.h +++ b/lib/bemenu.h @@ -6,9 +6,13 @@  /**   * Draw mode constants for setting bmMenu instance draw mode. + * + * BM_DRAW_MODE_LAST is provided for enumerating draw modes. + * Instancing with it however provides exactly same functionality as BM_DRAW_MODE_NONE.   */  typedef enum bmDrawMode { -    BM_DRAW_MODE_NONE +    BM_DRAW_MODE_NONE, +    BM_DRAW_MODE_LAST  } bmDrawMode;  typedef struct _bmMenu bmMenu; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8da6d4a..f9d13a5 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,5 +1,19 @@ -INCLUDE(CTest) +SET(TESTS +    "bmMenuNew" +    ) -# TODO: write test CMakeLists +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../lib") +FOREACH (test ${TESTS}) +    ADD_EXECUTABLE(${test}_test ${test}.c) +    TARGET_LINK_LIBRARIES(${test}_test bemenu) + +    IF (WIN32) +        ADD_TEST(${test}_test ${test}_test.exe) +    ELSE () +        ADD_TEST(${test}_test ${test}_test) +    ENDIF () +ENDFOREACH (test) + +MESSAGE("-!- Use 'make test' to run tests")  # vim: set ts=8 sw=4 tw=0 : diff --git a/test/bmMenuNew.c b/test/bmMenuNew.c new file mode 100644 index 0000000..f133584 --- /dev/null +++ b/test/bmMenuNew.c @@ -0,0 +1,23 @@ +#include <stdlib.h> +#include <bemenu.h> +#include <assert.h> + +int main(int argc, char **argv) +{ +    (void)argc, (void)argv; + +    // TEST: Instance bmMenu with all possible draw modes. +    { +        bmDrawMode i; +        for (i = 0; i < BM_DRAW_MODE_LAST; ++i) { +            bmMenu *menu = bmMenuNew(BM_DRAW_MODE_NONE); +            assert(menu != NULL); +            bmMenuRender(menu); +            bmMenuFree(menu); +        } +    } + +    return EXIT_SUCCESS; +} + +/* vim: set ts=8 sw=4 tw=0 :*/  | 
