Initial test setup

This commit is contained in:
Drew DeVault 2016-06-16 08:31:04 -04:00
parent 71f710cf0f
commit 0e5e2700e5
3 changed files with 86 additions and 2 deletions

66
CMake/FindCMocka.cmake Normal file
View file

@ -0,0 +1,66 @@
# - Try to find CMocka
# Once done this will define
#
# CMOCKA_ROOT_DIR - Set this variable to the root installation of CMocka
#
# Read-Only variables:
# CMOCKA_FOUND - system has CMocka
# CMOCKA_INCLUDE_DIR - the CMocka include directory
# CMOCKA_LIBRARIES - Link these to use CMocka
# CMOCKA_DEFINITIONS - Compiler switches required for using CMocka
#
#=============================================================================
# Copyright (c) 2011-2012 Andreas Schneider <asn@cryptomilk.org>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
#
set(_CMOCKA_ROOT_HINTS
)
set(_CMOCKA_ROOT_PATHS
"$ENV{PROGRAMFILES}/cmocka"
)
find_path(CMOCKA_ROOT_DIR
NAMES
include/cmocka.h
HINTS
${_CMOCKA_ROOT_HINTS}
PATHS
${_CMOCKA_ROOT_PATHS}
)
mark_as_advanced(CMOCKA_ROOT_DIR)
find_path(CMOCKA_INCLUDE_DIR
NAMES
cmocka.h
PATHS
${CMOCKA_ROOT_DIR}/include
)
find_library(CMOCKA_LIBRARY
NAMES
cmocka
PATHS
${CMOCKA_ROOT_DIR}/lib
)
if (CMOCKA_LIBRARY)
set(CMOCKA_LIBRARIES
${CMOCKA_LIBRARIES}
${CMOCKA_LIBRARY}
)
endif (CMOCKA_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CMocka DEFAULT_MSG CMOCKA_LIBRARIES CMOCKA_INCLUDE_DIR)
# show the CMOCKA_INCLUDE_DIR and CMOCKA_LIBRARIES variables only in the advanced view
mark_as_advanced(CMOCKA_INCLUDE_DIR CMOCKA_LIBRARIES)

View file

@ -48,18 +48,19 @@ option(enable-gdk-pixbuf "Use Pixbuf to support more image formats" YES)
option(enable-binding-event "Enables binding event subscription" YES) option(enable-binding-event "Enables binding event subscription" YES)
option(zsh-completions "Zsh shell completions" NO) option(zsh-completions "Zsh shell completions" NO)
option(default-wallpaper "Installs the default wallpaper" YES) option(default-wallpaper "Installs the default wallpaper" YES)
option(enable-tests "Enables test suite" YES)
find_package(JsonC REQUIRED) find_package(JsonC REQUIRED)
find_package(PCRE REQUIRED) find_package(PCRE REQUIRED)
find_package(WLC REQUIRED) find_package(WLC REQUIRED)
find_package(Wayland REQUIRED) find_package(Wayland REQUIRED)
find_package(XKBCommon REQUIRED) find_package(XKBCommon REQUIRED)
find_package(LibInput REQUIRED)
find_package(Cairo REQUIRED) find_package(Cairo REQUIRED)
find_package(Pango REQUIRED) find_package(Pango REQUIRED)
find_package(GdkPixbuf) find_package(GdkPixbuf)
find_package(PAM) find_package(PAM)
find_package(CMocka)
find_package(LibInput REQUIRED)
find_package(Backtrace) find_package(Backtrace)
if(Backtrace_FOUND) if(Backtrace_FOUND)
@ -130,6 +131,14 @@ install(
COMPONENT data COMPONENT data
) )
if(enable-tests)
if (CMOCKA_FOUND)
add_subdirectory(test)
else()
message(WARNING "Not buliding tests - cmocka is required.")
endif()
endif()
if(default-wallpaper) if(default-wallpaper)
install( install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/

9
include/tests.h Normal file
View file

@ -0,0 +1,9 @@
#ifndef __TESTS_H
#define __TESTS_H
#include <stddef.h>
#include <setjmp.h>
#include <stdarg.h>
#include <cmocka.h>
#endif