summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--lib/bemenu.h6
-rw-r--r--test/CMakeLists.txt18
-rw-r--r--test/bmMenuNew.c23
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 :*/