commit cc06b4c22f2342b9af3eded2e85b955698ef162b
Author: seleznevae
Date: Mon Jan 1 11:26:34 2018 +0300
[A] Initial commit
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..36d0353
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(libfort)
+
+option(CERAII_TEST_BUILD "Test build with sanitizers and small library stack size" ON)
+option(CERAII_GCC_BUILD "Build with gcc" ON)
+
+set(CMAKE_VERBOSE_MAKEFILE ON)
+
+include_directories(include)
+include_directories(src)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+
+
+
+
+FILE(GLOB_RECURSE FortHeaders "include/*.h" "tests/*.h")
+add_custom_target(headers SOURCES ${FortHeaders})
+
+
+set(FORT_SOURCES src/fort.c)
+
+
+add_executable(${PROJECT_NAME}
+ example/main.c
+ ${FORT_SOURCES})
+
+
+include_directories(tests/cmocka-1.1.0/include)
+link_directories(${CMAKE_SOURCE_DIR}/tests/cmocka-1.1.0/build/src)
+
+add_executable(TEST
+ tests/test.c
+ tests/test_vector.c
+ tests/test_table.c)
+
+target_link_libraries(TEST
+ cmocka)
+
+
+
+
+
+if(CERAII_TEST_BUILD)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
+ if(CERAII_GCC_BUILD)
+ target_link_libraries(${PROJECT_NAME} asan)
+ target_link_libraries(TEST asan)
+ endif(CERAII_GCC_BUILD)
+endif(CERAII_TEST_BUILD)
+
diff --git a/example/main.c b/example/main.c
new file mode 100644
index 0000000..1c97fa4
--- /dev/null
+++ b/example/main.c
@@ -0,0 +1,24 @@
+#include
+#include "fort.h"
+
+
+
+
+int main()
+{
+ FTABLE *table = ft_create_table();
+
+ int n = ft_hdr_printf(table, "%d , %c|| %s|%f", 3, 'c', "234", 3.14);
+
+ fprintf(stderr, "n = %d\n", n);
+
+ fprintf(stderr, "result: %s\n", ft_to_string(table));
+
+// printf("Hello, world!\n");
+// char buffer[3] = {'a', 'b', 'c'};
+// int ret = snprintf(buffer, 3, "so");
+// printf("result is %s = lent = %d\n", buffer, ret);
+// fprintf(stderr, "asd %d|", 3);
+// fprintf(stderr, "%d\n", 3.14);
+ ft_destroy_table(table);
+}
diff --git a/include/fort.h b/include/fort.h
new file mode 100644
index 0000000..5ff8ca3
--- /dev/null
+++ b/include/fort.h
@@ -0,0 +1,100 @@
+/*
+libfort
+
+MIT License
+
+Copyright (c) 2017 - 2018 Seleznev Anton
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef LIBFORT_H
+#define LIBFORT_H
+
+#include
+
+/*
+ * Determine compiler
+ */
+#if defined(__clang__)
+#define FORT_CLANG_COMPILER
+#elif defined(__GNUC__)
+#define FORT_GCC_COMPILER
+#elif defined(_MSC_VER)
+#define FORT_MICROSOFT_COMPILER
+#else
+#define FORT_UNDEFINED_COMPILER
+#endif
+
+/*
+ * Declare restrict
+ */
+#if defined(__cplusplus)
+#if defined(FORT_CLANG_COMPILER)
+#define FORT_RESTRICT __restrict__
+#else
+#define FORT_RESTRICT __restrict
+#endif /* if defined(FORT_CLANG_COMPILER) */
+#else
+#define FORT_RESTRICT restrict
+#endif /* if defined(__cplusplus) */
+
+
+/*
+ * C++ needs to know that types and declarations are C, not C++.
+ */
+#ifdef __cplusplus
+# define FORT_BEGIN_DECLS extern "C" {
+# define FORT_END_DECLS }
+#else
+# define FORT_BEGIN_DECLS
+# define FORT_END_DECLS
+#endif
+
+
+/*
+ * libfort structures and functions declarations
+ */
+
+FORT_BEGIN_DECLS
+
+struct fort_table;
+typedef struct fort_table FTABLE;
+
+FTABLE * ft_create_table(void);
+void ft_destroy_table(FTABLE *FORT_RESTRICT table);
+
+
+int ft_printf(FTABLE *FORT_RESTRICT table, const char* FORT_RESTRICT fmt, ...);
+int ft_hdr_printf(FTABLE *FORT_RESTRICT table, const char* FORT_RESTRICT fmt, ...);
+int ft_row_printf(FTABLE *FORT_RESTRICT table, size_t row, const char* FORT_RESTRICT fmt, ...);
+int ft_cell_printf(FTABLE *FORT_RESTRICT table, size_t row, size_t col, const char* FORT_RESTRICT fmt, ...);
+
+const char* ft_to_string(const FTABLE *FORT_RESTRICT table);
+const char* ft_n_to_string(const FTABLE *FORT_RESTRICT table, char *FORT_RESTRICT dst, size_t dst_len);
+
+const char* ft_header_to_string(const FTABLE *FORT_RESTRICT table);
+const char* ft_n_header_to_string(const FTABLE *FORT_RESTRICT table, char *FORT_RESTRICT dst, size_t dst_len);
+
+const char* ft_row_to_string(const FTABLE *FORT_RESTRICT table, size_t row);
+const char* ft_n_row_to_string(const FTABLE *FORT_RESTRICT table, size_t row, char *FORT_RESTRICT dst, size_t dst_len);
+
+FORT_END_DECLS
+
+#endif // LIBFORT_H
diff --git a/src/fort.c b/src/fort.c
new file mode 100644
index 0000000..bee8849
--- /dev/null
+++ b/src/fort.c
@@ -0,0 +1,776 @@
+#include "stdlib.h"
+#include "stdarg.h"
+#include "stdio.h"
+#include "fort.h"
+#include "assert.h"
+#include "string.h"
+#include "wchar.h"
+
+#define FORT_COL_SEPARATOR '|'
+#define FORT_UNUSED __attribute__((unused))
+
+#define F_CALLOC calloc
+#define F_MALLOC malloc
+#define F_REALLOC realloc
+#define F_FREE free
+#define F_STRDUP fort_strdup
+
+#define F_CREATE(type) ((type *)F_CALLOC(sizeof(type), 1))
+
+#define MAX(a,b) ((a) > (b) ? (a) : b)
+
+
+/*****************************************************************************
+ * LOGGER
+ *****************************************************************************/
+#define SYS_LOG_ERROR(...)
+
+
+/*****************************************************************************
+ * RETURN CODES
+ * ***************************************************************************/
+typedef int fort_status_t;
+#define F_SUCCESS 0
+#define F_MEMORY_ERROR 1
+#define F_ERROR 2
+#define IS_SUCCESS(arg) ((arg) == F_SUCCESS)
+#define IS_ERROR(arg) (!IS_SUCCESS(arg))
+
+
+
+
+/*****************************************************************************
+ * STRING BUFFER
+ * ***************************************************************************/
+struct string_buffer;
+typedef struct string_buffer string_buffer_t;
+struct string_buffer
+{
+ char *str;
+ size_t str_sz;
+};
+
+static string_buffer_t* create_string_buffer(size_t sz);
+static void destroy_string_buffer(string_buffer_t *buffer);
+static fort_status_t realloc_string_buffer_without_copy(string_buffer_t *buffer);
+static fort_status_t fill_buffer_from_string(string_buffer_t *buffer, const char *str);
+
+/*****************************************************************************
+ * VECTOR
+ * ***************************************************************************/
+
+struct vector;
+typedef struct vector vector_t;
+
+#define INVALID_VEC_INDEX ((size_t) -1)
+
+static vector_t* create_vector(size_t item_size, size_t capacity);
+static void destroy_vector(vector_t*);
+
+static size_t vector_size(const vector_t*);
+static size_t vector_capacity(const vector_t*);
+static size_t vector_index_of(const vector_t*, const void *item);
+
+static int vector_push(vector_t*, const void *item);
+static int vector_erase(vector_t*, size_t index);
+static void vector_clear(vector_t*);
+static void* vector_at(vector_t*, size_t index);
+
+
+/*****************************************************************************
+ * CELL
+ * ***************************************************************************/
+struct fort_cell;
+typedef struct fort_cell fort_cell_t;
+struct fort_cell
+{
+ string_buffer_t *str_buffer;
+};
+
+fort_cell_t * create_cell()
+{
+ fort_cell_t *cell = F_CALLOC(sizeof(fort_cell_t), 1);
+ if (cell == NULL)
+ return NULL;
+ cell->str_buffer = create_string_buffer(1024);
+ if (cell->str_buffer == NULL) {
+ F_FREE(cell);
+ return NULL;
+ }
+ return cell;
+}
+
+void destroy_cell(fort_cell_t *cell)
+{
+ if (cell == NULL)
+ return;
+ destroy_string_buffer(cell->str_buffer);
+ F_FREE(cell);
+}
+
+/*
+ * Returns number of lines in cell. If cell is empty or
+ * contains empty string, then 0 is returned.
+ */
+//int fort_cell_lines_number(fort_cell_t *cell)
+//{
+// assert(cell);
+// if (cell->str == NULL || cell->str[0] == '\0') {
+// return 0;
+// }
+
+// int result = 0;
+// char *pos = cell->str;
+// while ((pos = strchr(pos, '\n')) != NULL) {
+// result++;
+// pos++;
+// }
+// return result + 1;
+//}
+
+/*****************************************************************************
+ * ROW
+ * ***************************************************************************/
+struct fort_row;
+typedef struct fort_row fort_row_t;
+struct fort_row
+{
+ vector_t *cells;
+};
+
+
+static fort_row_t * create_row()
+{
+ fort_row_t * row = F_CALLOC(sizeof(fort_row_t), 1);
+ if (row == NULL)
+ return NULL;
+ row->cells = create_vector(sizeof(fort_cell_t*), 10);
+ if (row->cells == NULL) {
+ F_FREE(row);
+ return NULL;
+ }
+ return row;
+}
+
+static void destroy_row(fort_row_t *row)
+{
+ if (row == NULL)
+ return;
+
+ if (row->cells) {
+ size_t cells_n = vector_size(row->cells);
+ for (size_t i = 0; i < cells_n; ++i) {
+ fort_cell_t *cell = *(fort_cell_t **)vector_at(row->cells, i);
+ destroy_cell(cell);
+ }
+ destroy_vector(row->cells);
+ }
+
+ F_FREE(row);
+}
+
+static fort_row_t * create_row_from_string(const char *str);
+static fort_row_t* create_row_from_fmt_string(const char* FORT_RESTRICT fmt, va_list *va_args);
+
+
+/*****************************************************************************
+ * TABLE
+ *****************************************************************************/
+struct fort_table
+{
+ fort_row_t *header;
+ vector_t *rows;
+};
+
+
+/*****************************************************************************
+ * LIBFORT helpers
+ *****************************************************************************/
+char *fort_strdup(const char* str)
+{
+ if (str == NULL)
+ return NULL;
+
+ size_t sz = strlen(str);
+ char *str_copy = (char*)F_MALLOC(sz + 1);
+ if (str_copy == NULL)
+ return NULL;
+
+ strcpy(str_copy, str);
+ return str_copy;
+}
+
+size_t number_of_columns_in_format_string(const char *fmt)
+{
+ int separator_counter = 0;
+ const char *pos = fmt;
+ while (1) {
+ pos = strchr(pos, FORT_COL_SEPARATOR);
+ if (pos == NULL)
+ break;
+
+ separator_counter++;
+ ++pos;
+ }
+ return separator_counter + 1;
+}
+
+/*****************************************************************************
+ * LIBFORT
+ * ***************************************************************************/
+
+FTABLE * ft_create_table(void)
+{
+ FTABLE *result = F_CALLOC(1, sizeof(FTABLE));
+
+ return result;
+}
+
+
+void ft_destroy_table(FTABLE *FORT_RESTRICT table)
+{
+ if (table == NULL)
+ return;
+
+ destroy_row(table->header);
+ if (table->rows) {
+ size_t row_n = vector_size(table->rows);
+ for (size_t i = 0; i < row_n; ++i) {
+ destroy_row(*(fort_row_t **)vector_at(table->rows, i));
+ }
+ destroy_vector(table->rows);
+ }
+ F_FREE(table);
+}
+
+//void forward_va_list(const char *fmt FORT_UNUSED, va_list *va)
+//{
+// /* todo - do normal implementation */
+// va_arg(*va, int);
+// va_arg(*va, int);
+
+// while (*fmt) {
+// if (*fmt != '%') {
+// ++fmt;
+// continue;
+// }
+
+// char argument_type[2] = { '\0', '\0'};
+
+// check_format:
+// ++fmt;
+// /* todo: do normal checking for order of symbols. Don't think symbol checking can be in independent order. */
+// switch(*fmt) {
+// case '\0':
+// return;
+
+// /* flags */
+// case '-':
+// case '+':
+// case ' ':
+// case '#':
+// case '0':
+// case '1':
+// case '2':
+// case '3':
+// case '4':
+// case '5':
+// case '6':
+// case '7':
+// case '8':
+// case '9':
+// case '.':
+// goto check_format;
+
+
+// /* length modifiers */
+// case 'h':
+// case 'l':
+// if (argument_type[0] == '\0')
+// argument_type[0] = *fmt;
+// else
+// argument_type[1] = *fmt;
+// goto check_format;
+// case 'j':
+// case 'z':
+// case 't':
+// case 'L':
+// argument_type[1] = *fmt;
+// goto check_format;
+
+// /* specifiers */
+// case 'c':
+// if (argument_type[0] == 'l' && argument_type[0] == '\0')
+// va_arg(*va, wint_t);
+// else
+// va_arg(*va, int);
+// break;
+
+// /* specifiers */
+// case 's':
+// if (argument_type[0] == 'l' && argument_type[0] == '\0')
+// va_arg(*va, wint_t);
+// else
+// va_arg(*va, int);
+// break;
+
+
+// }
+// }
+//}
+
+//int ft_hdr_printf(FTABLE *FORT_RESTRICT table, const char* FORT_RESTRICT fmt, ...)
+//{
+// int DUMMY_BUFFER_SZ = 1024;
+// char dummy_buffer[DUMMY_BUFFER_SZ];
+
+// char *fmt_copy = F_STRDUP(fmt);
+// if (fmt_copy == NULL)
+// return 0;
+
+// va_list va;
+// va_start(va, fmt);
+
+// char *pos = fmt_copy;
+// char *base_pos = fmt_copy;
+// while (*pos) {
+// pos = strchr(pos, FORT_COL_SEPARATOR);
+// if (pos != NULL) {
+// /* todo: do normal escape checking */
+// if (pos > base_pos && (*(pos - 1) == '\\')) { /* column separator is escaped */
+// ++pos;
+// continue;
+// } else { /* column separator is found and it is not escaped */
+// *(pos) = '\0';
+// ++pos;
+// }
+// }
+
+// while (1) {
+// va_list va_arg;
+// va_copy(va_arg, va);
+// int n = vsnprintf(dummy_buffer, DUMMY_BUFFER_SZ, base_pos, va_arg);
+
+// /* successful write */
+// if (n < DUMMY_BUFFER_SZ) {
+// forward_va_list(base_pos, &va);
+// fprintf(stderr, "%s\n", dummy_buffer);
+// break;
+// }
+// }
+
+// if (pos == NULL)
+// break;
+// base_pos = pos;
+// }
+
+//// va_list va;
+//// int written_cols = 0;
+
+
+
+//// written_cols = vfprintf(stderr, fmt, va);
+
+//// va_end(va);
+//// va_start(va, fmt);
+//// written_cols |= vfprintf(stderr, fmt, va);
+
+
+//// va_end(va);
+
+// F_FREE(fmt_copy);
+// return 0;
+//}
+
+
+
+//int ft_hdr_printf(FTABLE *FORT_RESTRICT table, const char* FORT_RESTRICT fmt, ...)
+//{
+// string_buffer_t *buffer = create_string_buffer(1024);
+// if (buffer == NULL)
+// return -1;
+
+// int cols_origin = number_of_columns_in_format_string(fmt);
+
+// while (1) {
+// va_list va;
+// va_start(va, fmt);
+// int virtual_sz = vsnprintf(buffer->str, buffer->str_sz, fmt, va);
+// va_end(va);
+// /* If error encountered */
+// if (virtual_sz == -1)
+// goto clear;
+
+// /* Successful write */
+// if (virtual_sz < buffer->str_sz)
+// break;
+
+// /* Otherwise buffer was too small, so incr. buffer size ant try again. */
+// if (!IS_SUCCESS(realloc_string_buffer_without_copy(buffer)))
+// goto clear;
+// }
+
+// int cols = number_of_columns_in_format_string(buffer->str);
+// if (cols == cols_origin) {
+
+// fort_row_t *row = create_row_from_string(buffer->str);
+// if (row == NULL) {
+// goto clear;
+// }
+
+// table->header = row;
+// return vector_size(row->cells);
+// }
+
+
+//clear:
+// destroy_string_buffer(buffer);
+// return -1;
+//}
+
+int ft_hdr_printf(FTABLE *FORT_RESTRICT table, const char* FORT_RESTRICT fmt, ...)
+{
+ va_list va;
+ va_start(va, fmt);
+ fort_row_t *row = create_row_from_fmt_string(fmt, &va);
+ va_end(va);
+
+ if (row == NULL) {
+ return -1;
+ }
+
+ table->header = row;
+ return vector_size(row->cells);
+}
+
+
+
+
+/*****************************************************************************
+ * STRING BUFFER
+ * ***************************************************************************/
+string_buffer_t* create_string_buffer(size_t sz)
+{
+ string_buffer_t *result = (string_buffer_t *)F_MALLOC(sizeof(string_buffer_t));
+ if (result == NULL)
+ return NULL;
+ result->str = F_MALLOC(sz);
+ if (result->str == NULL) {
+ F_FREE(result);
+ return NULL;
+ }
+ result->str_sz = sz;
+
+ return result;
+}
+
+void destroy_string_buffer(string_buffer_t *buffer)
+{
+ if (buffer == NULL)
+ return;
+ F_FREE(buffer->str);
+ buffer->str = NULL;
+ F_FREE(buffer);
+}
+
+fort_status_t realloc_string_buffer_without_copy(string_buffer_t *buffer)
+{
+ assert(buffer);
+ char *new_str = (char*)F_MALLOC(buffer->str_sz * 2);
+ if (new_str == NULL) {
+ return F_MEMORY_ERROR;
+ }
+ F_FREE(buffer->str);
+ buffer->str = new_str;
+ buffer->str_sz *= 2;
+ return F_SUCCESS;
+}
+
+static fort_status_t fill_buffer_from_string(string_buffer_t *buffer, const char *str)
+{
+ assert(buffer);
+ assert(str);
+
+ size_t sz = strlen(str);
+ char * copy = F_STRDUP(str);
+ if (copy == NULL)
+ return F_MEMORY_ERROR;
+
+ while (sz >= buffer->str_sz) {
+ int status = realloc_string_buffer_without_copy(buffer);
+ if (!IS_SUCCESS(status)) {
+ return status;
+ }
+ }
+ F_FREE(buffer->str);
+ buffer->str = copy;
+
+ return F_SUCCESS;
+}
+
+/*****************************************************************************
+ * VECTOR IMPLEMENTATIONS
+ * ***************************************************************************/
+
+struct vector
+{
+ size_t m_size;
+ void *m_data;
+ size_t m_capacity;
+ size_t m_item_size;
+};
+
+static int vector_reallocate_(vector_t *vector, size_t new_capacity)
+{
+ assert(vector);
+ assert(new_capacity > vector->m_capacity);
+
+ size_t new_size = new_capacity * vector->m_item_size;
+ vector->m_data = realloc(vector->m_data, new_size);
+ if (vector->m_data == NULL)
+ return -1;
+ return 0;
+}
+
+/* ------------ Constructors & Destructors ----------------------------- */
+
+static vector_t* create_vector(size_t item_size, size_t capacity)
+{
+ vector_t *vector = malloc(sizeof(vector_t));
+ if (vector == NULL) {
+ SYS_LOG_ERROR("Failed to allocate memory for asock vector");
+ return NULL;
+ }
+
+ size_t init_size = MAX(item_size * capacity, 1);
+ vector->m_data = malloc(init_size);
+ if (vector->m_data == NULL) {
+ SYS_LOG_ERROR("Failed to allocate memory for asock vector inern. buffer");
+ free(vector);
+ return NULL;
+ }
+
+ vector->m_size = 0;
+ vector->m_capacity = capacity;
+ vector->m_item_size = item_size;
+
+ return vector;
+}
+
+
+static void destroy_vector(vector_t* vector)
+{
+ assert(vector);
+ free(vector->m_data);
+ free(vector);
+}
+
+
+/* ----------- Nonmodifying functions --------------------------------- */
+
+static size_t vector_size(const vector_t* vector)
+{
+ assert(vector);
+ return vector->m_size;
+}
+
+
+static size_t vector_capacity(const vector_t* vector)
+{
+ assert(vector);
+ return vector->m_capacity;
+}
+
+static size_t vector_index_of(const vector_t* vector, const void *item)
+{
+ assert(vector);
+ assert(item);
+
+ for (size_t i = 0; i < vector->m_size; ++i) {
+ void *data_pos = vector->m_data + i * vector->m_item_size;
+ if (memcmp(data_pos, item, vector->m_item_size) == 0) {
+ return i;
+ }
+ }
+ return INVALID_VEC_INDEX;
+}
+
+
+/* ----------- Modifying functions ------------------------------------- */
+
+static int vector_push (vector_t* vector, const void* item)
+{
+ assert(vector);
+ assert(item);
+
+ if (vector->m_size == vector->m_capacity) {
+ if (vector_reallocate_(vector, vector->m_capacity * 2) == -1)
+ return F_ERROR;
+ vector->m_capacity = vector->m_capacity * 2;
+ }
+
+ ptrdiff_t deviation = vector->m_size * vector->m_item_size;
+ memcpy(vector->m_data + deviation, item, vector->m_item_size);
+
+ ++(vector->m_size);
+
+ return F_SUCCESS;
+}
+
+
+static int vector_erase(vector_t *vector, size_t index)
+{
+ assert(vector);
+
+ if (vector->m_size == 0 || index >= vector->m_size)
+ return F_ERROR;
+
+ memmove(vector->m_data + vector->m_item_size * index,
+ vector->m_data + vector->m_item_size * (index + 1),
+ (vector->m_size - 1 - index) * vector->m_item_size);
+ vector->m_size--;
+ return F_SUCCESS;
+}
+
+
+static void vector_clear(vector_t *vector)
+{
+ vector->m_size = 0;
+}
+
+
+
+static void *vector_at(vector_t *vector, size_t index)
+{
+ if (index >= vector->m_size)
+ return NULL;
+
+ return vector->m_data + index * vector->m_item_size;
+}
+
+
+
+/*****************************************************************************
+ * ROW
+ * ***************************************************************************/
+
+static fort_row_t* create_row_from_string(const char *str)
+{
+ fort_row_t * row = create_row();
+ if (row == NULL)
+ return NULL;
+
+ if (str == NULL)
+ return row;
+
+ char *str_copy = F_STRDUP(str);
+ if (str_copy == NULL)
+ goto clear;
+
+ char *pos = str_copy;
+ char *base_pos = str_copy;
+ while (*pos) {
+ pos = strchr(pos, FORT_COL_SEPARATOR);
+ if (pos != NULL) {
+ *(pos) = '\0';
+ ++pos;
+ }
+
+ fort_cell_t *cell = create_cell();
+ if (cell == NULL)
+ goto clear;
+
+ int status = fill_buffer_from_string(cell->str_buffer, base_pos);
+ if (IS_ERROR(status)) {
+ destroy_cell(cell);
+ goto clear;
+ }
+
+ status = vector_push(row->cells, &cell);
+ if (IS_ERROR(status)) {
+ destroy_cell(cell);
+ goto clear;
+ }
+
+ if (pos == NULL)
+ break;
+ base_pos = pos;
+ }
+
+ F_FREE(str_copy);
+ return row;
+
+clear:
+ destroy_row(row);
+ F_FREE(str_copy);
+ return NULL;
+}
+
+
+static fort_row_t* create_row_from_fmt_string(const char* FORT_RESTRICT fmt, va_list *va_args)
+{
+ string_buffer_t *buffer = create_string_buffer(1024);
+ if (buffer == NULL)
+ return NULL;
+
+ int cols_origin = number_of_columns_in_format_string(fmt);
+
+ while (1) {
+ va_list va;
+ va_copy(va, *va_args);
+ int virtual_sz = vsnprintf(buffer->str, buffer->str_sz, fmt, va);
+ va_end(va);
+ /* If error encountered */
+ if (virtual_sz == -1)
+ goto clear;
+
+ /* Successful write */
+ if (virtual_sz < buffer->str_sz)
+ break;
+
+ /* Otherwise buffer was too small, so incr. buffer size ant try again. */
+ if (!IS_SUCCESS(realloc_string_buffer_without_copy(buffer)))
+ goto clear;
+ }
+
+ int cols = number_of_columns_in_format_string(buffer->str);
+ if (cols == cols_origin) {
+
+ fort_row_t *row = create_row_from_string(buffer->str);
+ if (row == NULL) {
+ goto clear;
+ }
+
+ destroy_string_buffer(buffer);
+ return row;
+ }
+
+
+clear:
+ destroy_string_buffer(buffer);
+ return NULL;
+}
+
+
+/*****************************************************************************
+ * TABLE
+ * ***************************************************************************/
+const char* ft_to_string(const FTABLE *FORT_RESTRICT table)
+{
+ assert(table);
+ char *dummy = F_MALLOC(2056);
+ fort_row_t *header = table->header;
+ ssize_t pos = 0;
+ size_t v_size = vector_size(header->cells);
+ for (size_t i = 0; i < v_size; ++i) {
+ fort_cell_t* cell = *(fort_cell_t**)vector_at(header->cells, i);
+ int deviation = sprintf(dummy + pos, "| %s", cell->str_buffer->str);
+ pos += deviation;
+ }
+ return dummy;
+
+}
+
+
+
+
diff --git a/tests/cmocka-1.1.0/.clang_complete b/tests/cmocka-1.1.0/.clang_complete
new file mode 100644
index 0000000..6177904
--- /dev/null
+++ b/tests/cmocka-1.1.0/.clang_complete
@@ -0,0 +1,2 @@
+-Iinclude
+-Iobj
diff --git a/tests/cmocka-1.1.0/.ycm_extra_conf.py b/tests/cmocka-1.1.0/.ycm_extra_conf.py
new file mode 100644
index 0000000..8305a8b
--- /dev/null
+++ b/tests/cmocka-1.1.0/.ycm_extra_conf.py
@@ -0,0 +1,109 @@
+import os
+import ycm_core
+
+flags = [
+'-Wall',
+'-Wextra',
+'-Werror',
+'-x', 'c',
+'-Iinclude',
+]
+
+# Set this to the absolute path to the folder (NOT the file!) containing the
+# compile_commands.json file to use that instead of 'flags'. See here for
+# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
+#
+# Most projects will NOT need to set this to anything; you can just change the
+# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
+compilation_database_folder = 'obj'
+
+if os.path.exists( compilation_database_folder ):
+ database = ycm_core.CompilationDatabase( compilation_database_folder )
+else:
+ database = None
+
+SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]
+
+def DirectoryOfThisScript():
+ return os.path.dirname( os.path.abspath( __file__ ) )
+
+
+def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
+ if not working_directory:
+ return list( flags )
+ new_flags = []
+ make_next_absolute = False
+ path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
+ for flag in flags:
+ new_flag = flag
+
+ if make_next_absolute:
+ make_next_absolute = False
+ if not flag.startswith( '/' ):
+ new_flag = os.path.join( working_directory, flag )
+
+ for path_flag in path_flags:
+ if flag == path_flag:
+ make_next_absolute = True
+ break
+
+ if flag.startswith( path_flag ):
+ path = flag[ len( path_flag ): ]
+ new_flag = path_flag + os.path.join( working_directory, path )
+ break
+
+ if new_flag:
+ new_flags.append( new_flag )
+ return new_flags
+
+
+def IsHeaderFile( filename ):
+ extension = os.path.splitext( filename )[ 1 ]
+ return extension in [ '.h', '.hxx', '.hpp', '.hh' ]
+
+
+def GetCompilationInfoForFile( filename ):
+ # The compilation_commands.json file generated by CMake does not have entries
+ # for header files. So we do our best by asking the db for flags for a
+ # corresponding source file, if any. If one exists, the flags for that file
+ # should be good enough.
+ if IsHeaderFile( filename ):
+ basename = os.path.splitext( filename )[ 0 ]
+ for extension in SOURCE_EXTENSIONS:
+ replacement_file = basename + extension
+ if os.path.exists( replacement_file ):
+ compilation_info = database.GetCompilationInfoForFile(
+ replacement_file )
+ if compilation_info.compiler_flags_:
+ return compilation_info
+ return None
+ return database.GetCompilationInfoForFile( filename )
+
+
+def FlagsForFile( filename, **kwargs ):
+ if database:
+ # Bear in mind that compilation_info.compiler_flags_ does NOT return a
+ # python list, but a "list-like" StringVec object
+ compilation_info = GetCompilationInfoForFile( filename )
+ if not compilation_info:
+ return None
+
+ final_flags = MakeRelativePathsInFlagsAbsolute(
+ compilation_info.compiler_flags_,
+ compilation_info.compiler_working_dir_ )
+
+ # NOTE: This is just for YouCompleteMe; it's highly likely that your project
+ # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
+ # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.
+ try:
+ final_flags.remove( '-stdlib=libc++' )
+ except ValueError:
+ pass
+ else:
+ relative_to = DirectoryOfThisScript()
+ final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
+
+ return {
+ 'flags': final_flags,
+ 'do_cache': True
+ }
diff --git a/tests/cmocka-1.1.0/AUTHORS b/tests/cmocka-1.1.0/AUTHORS
new file mode 100644
index 0000000..1fe0d34
--- /dev/null
+++ b/tests/cmocka-1.1.0/AUTHORS
@@ -0,0 +1,3 @@
+opensource@google.com
+Andreas Schneider
+Jakub Hrozek
diff --git a/tests/cmocka-1.1.0/CMakeLists.txt b/tests/cmocka-1.1.0/CMakeLists.txt
new file mode 100644
index 0000000..7f7dac4
--- /dev/null
+++ b/tests/cmocka-1.1.0/CMakeLists.txt
@@ -0,0 +1,88 @@
+project(cmocka C)
+
+# Required cmake version
+cmake_minimum_required(VERSION 2.6.0)
+
+# global needed variables
+set(APPLICATION_NAME ${PROJECT_NAME})
+
+set(APPLICATION_VERSION_MAJOR "1")
+set(APPLICATION_VERSION_MINOR "1")
+set(APPLICATION_VERSION_PATCH "0")
+
+set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
+
+# SOVERSION scheme: CURRENT.AGE.REVISION
+# If there was an incompatible interface change:
+# Increment CURRENT. Set AGE and REVISION to 0
+# If there was a compatible interface change:
+# Increment AGE. Set REVISION to 0
+# If the source code was changed, but there were no interface changes:
+# Increment REVISION.
+set(LIBRARY_VERSION "0.4.0")
+set(LIBRARY_SOVERSION "0")
+
+# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
+set(CMAKE_MODULE_PATH
+ ${CMAKE_SOURCE_DIR}/cmake/Modules
+)
+
+# add definitions
+include(DefineCMakeDefaults)
+include(DefinePlatformDefaults)
+include(DefineCompilerFlags)
+include(DefineInstallationPaths)
+include(DefineOptions.cmake)
+include(CPackConfig.cmake)
+include(CheckSymbolExists)
+
+# disallow in-source build
+include(MacroEnsureOutOfSourceBuild)
+macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
+
+# config.h checks
+include(ConfigureChecks.cmake)
+configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+
+# MinGW DLL Naming Workaround
+if (MINGW)
+ set(CMAKE_SHARED_LIBRARY_PREFIX "")
+endif (MINGW)
+
+# check subdirectories
+add_subdirectory(doc)
+add_subdirectory(include)
+add_subdirectory(src)
+
+if (UNIT_TESTING)
+ include(AddCMockaTest)
+ add_subdirectory(tests)
+endif (UNIT_TESTING)
+
+add_subdirectory(example)
+
+# pkg-config file
+configure_file(cmocka.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/cmocka.pc)
+install(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/cmocka.pc
+ DESTINATION
+ ${LIB_INSTALL_DIR}/pkgconfig
+ COMPONENT
+ pkgconfig
+)
+
+# cmake config files
+set(CMOCKA_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+configure_file(${PROJECT_NAME}-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake @ONLY)
+configure_file(${PROJECT_NAME}-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake @ONLY)
+install(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
+ DESTINATION
+ ${CMAKE_INSTALL_DIR}/${PROJECT_NAME}
+ COMPONENT
+ devel
+)
diff --git a/tests/cmocka-1.1.0/COPYING b/tests/cmocka-1.1.0/COPYING
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/tests/cmocka-1.1.0/COPYING
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/tests/cmocka-1.1.0/CPackConfig.cmake b/tests/cmocka-1.1.0/CPackConfig.cmake
new file mode 100644
index 0000000..8d427a3
--- /dev/null
+++ b/tests/cmocka-1.1.0/CPackConfig.cmake
@@ -0,0 +1,53 @@
+# For help take a look at:
+# http://www.cmake.org/Wiki/CMake:CPackConfiguration
+
+### general settings
+set(CPACK_PACKAGE_NAME ${APPLICATION_NAME})
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Unit testing framework for C with mock objects")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README")
+set(CPACK_PACKAGE_VENDOR "Andreas Schneider")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
+
+
+### versions
+set(CPACK_PACKAGE_VERSION_MAJOR "${APPLICATION_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${APPLICATION_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${APPLICATION_VERSION_PATCH}")
+set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+
+
+### source generator
+set(CPACK_SOURCE_GENERATOR "TGZ")
+set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/obj*;tags;cscope.*;.ycm_extra_conf.pyc")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
+
+if (WIN32)
+ set(CPACK_GENERATOR "ZIP")
+
+ ### nsis generator
+ find_package(NSIS)
+ if (NSIS_MAKE)
+ set(CPACK_GENERATOR "${CPACK_GENERATOR};NSIS")
+ set(CPACK_NSIS_DISPLAY_NAME "CMocka")
+ set(CPACK_NSIS_COMPRESSOR "/SOLID zlib")
+ set(CPACK_NSIS_MENU_LINKS "http://cmocka.org/" "cmocka homepage")
+ endif (NSIS_MAKE)
+endif (WIN32)
+
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "cmocka")
+
+set(CPACK_PACKAGE_FILE_NAME ${APPLICATION_NAME}-${CPACK_PACKAGE_VERSION})
+
+set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
+set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers")
+set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION
+ "Libraries used to build programs which use cmocka")
+set(CPACK_COMPONENT_HEADERS_DESCRIPTION
+ "C/C++ header files for use with cmocka")
+set(CPACK_COMPONENT_HEADERS_DEPENDS libraries)
+#set(CPACK_COMPONENT_APPLICATIONS_GROUP "Runtime")
+set(CPACK_COMPONENT_LIBRARIES_GROUP "Development")
+set(CPACK_COMPONENT_HEADERS_GROUP "Development")
+
+include(CPack)
diff --git a/tests/cmocka-1.1.0/CTestConfig.cmake b/tests/cmocka-1.1.0/CTestConfig.cmake
new file mode 100644
index 0000000..f93a981
--- /dev/null
+++ b/tests/cmocka-1.1.0/CTestConfig.cmake
@@ -0,0 +1,10 @@
+set(UPDATE_TYPE "true")
+
+set(CTEST_PROJECT_NAME "cmocka")
+set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC")
+
+set(CTEST_DROP_METHOD "https")
+set(CTEST_DROP_SITE "mock.cryptomilk.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=${CTEST_PROJECT_NAME}")
+set(CTEST_DROP_SITE_CDASH TRUE)
+
diff --git a/tests/cmocka-1.1.0/ChangeLog b/tests/cmocka-1.1.0/ChangeLog
new file mode 100644
index 0000000..0319c15
--- /dev/null
+++ b/tests/cmocka-1.1.0/ChangeLog
@@ -0,0 +1,92 @@
+Wed Sep 21 2016 Andreas Schneider
+ * cmocka: version 1.1.0
+ * Added support to catch multiple exceptions
+ * Added support to verify call ordering
+ * Added support to pass initial data to test cases
+ * Added will_return_maybe() for ignoring mock returns
+ * Added subtests for groups using TAP output
+ * Added support to write multiple XML files for groups
+ * Improved documentation
+ * Fixed XML output generataion
+ * Fixed Windows builds with VS2015
+
+Thu Mar 12 2015 Andreas Schneider
+ * cmocka: version 1.0.1
+ * Added a macro for assert_ptr_equal().
+ * Fixed test_realloc() if 0 size is passed.
+ * Fixed objects packaging bug.
+ * Fixed building with newer gcc versions.
+
+Sun Feb 16 2015 Andreas Schneider
+ * cmocka: version 1.0.0
+ * Added new test runner with group fixtures. The old runner is deprecated
+ * Added an extensible message output formatter
+ * Added jUnit XML message output
+ * Added subunit message output
+ * Added Test Anything Protocol message output
+ * Added skip() command
+ * Added test_realloc()
+ * Added a cmockery compat header
+ * Fixed a lot of bugs on Windows
+
+Thu May 22 2014 Andreas Schneider
+ * cmocka: version 0.4.1
+ * Added CMOCKA_TEST_ABORT env variable to leave threading apps.
+ * Fixed count parameter of expect_check() macro.
+ * Fixed reporting the number of tests.
+ * Fixed cmake config files.
+
+Fri Apr 11 2014 Andreas Schneider
+ * cmocka: version 0.4.0
+ * Added support for group testing.
+ * Added assert_return_code().
+ * Added better messages for errors.
+ * Added cmake config mode support.
+ * Fixed bug with unit_test_setup and unit_test_teardown.
+ * Fixed a lot of small bugs.
+
+Wed Nov 06 2013 Andreas Schneider
+ * cmocka: version 0.3.2
+ * Fixed FindNSIS detection.
+ * Fixed unit_test_setup() and unit_test_teardown().
+ * Fixed GTest and GCC message style conformance
+ * Fixed stringification in will_return_always().
+
+Wed Jul 10 15:24 2013 Andreas Schneider
+ * cmocka: version 0.3.1
+ * Fixed pointer conversion on s390 and ppc (32bit big endian).
+ * Fixed the customer_database test on big endian.
+
+Wed Jun 05 08:14 2013 Andreas Schneider
+ * cmocka: version 0.3.0
+ * Added a better mock object example.
+ * Added pkgconfig file.
+ * Added new macros mock_type() and mock_ptr_type().
+ * Added more documentation.
+ * Fixed installation problems on some platforms.
+
+Mon Jan 14 11:16 2013 Andreas Schneider
+ * cmocka: version 0.2.0
+ * Added doxygen api documentation.
+ * Added new cmake build system.
+ * Added support to create windows NSIS installer.
+ * Fixed examples which didn't work.
+ * Fixed a huge amount of bugs.
+
+Mon Sep 15 17:21:22 2008 Google Inc.
+ * cmockery: version 0.12
+ * Made it possible to specify additional compiler, lib tool and link
+ flags on Windows.
+ * Added Windows makefile to the tar ball.
+
+Fri Aug 29 10:50:46 2008 Google Inc.
+
+ * cmockery: version 0.11
+ * Made it possible to specify executable, library and object output
+ directories.
+
+Tue Aug 26 10:18:02 2008 Google Inc.
+
+ * cmockery: initial release:
+ A lightweight library to simplify and generalize the process of
+ writing unit tests for C applications.
diff --git a/tests/cmocka-1.1.0/ConfigureChecks.cmake b/tests/cmocka-1.1.0/ConfigureChecks.cmake
new file mode 100644
index 0000000..31c5a94
--- /dev/null
+++ b/tests/cmocka-1.1.0/ConfigureChecks.cmake
@@ -0,0 +1,149 @@
+include(CheckIncludeFile)
+include(CheckSymbolExists)
+include(CheckFunctionExists)
+include(CheckLibraryExists)
+include(CheckTypeSize)
+include(CheckCXXSourceCompiles)
+include(CheckStructHasMember)
+include(TestBigEndian)
+
+set(PACKAGE ${APPLICATION_NAME})
+set(VERSION ${APPLICATION_VERSION})
+set(DATADIR ${DATA_INSTALL_DIR})
+set(LIBDIR ${LIB_INSTALL_DIR})
+set(PLUGINDIR "${PLUGIN_INSTALL_DIR}-${LIBRARY_SOVERSION}")
+set(SYSCONFDIR ${SYSCONF_INSTALL_DIR})
+
+set(BINARYDIR ${CMAKE_BINARY_DIR})
+set(SOURCEDIR ${CMAKE_SOURCE_DIR})
+
+function(COMPILER_DUMPVERSION _OUTPUT_VERSION)
+ # Remove whitespaces from the argument.
+ # This is needed for CC="ccache gcc" cmake ..
+ string(REPLACE " " "" _C_COMPILER_ARG "${CMAKE_C_COMPILER_ARG1}")
+
+ execute_process(
+ COMMAND
+ ${CMAKE_C_COMPILER} ${_C_COMPILER_ARG} -dumpversion
+ OUTPUT_VARIABLE _COMPILER_VERSION
+ )
+
+ string(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2"
+ _COMPILER_VERSION ${_COMPILER_VERSION})
+
+ set(${_OUTPUT_VERSION} ${_COMPILER_VERSION} PARENT_SCOPE)
+endfunction()
+
+if(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW)
+ compiler_dumpversion(GNUCC_VERSION)
+ if (NOT GNUCC_VERSION EQUAL 34)
+ check_c_compiler_flag("-fvisibility=hidden" WITH_VISIBILITY_HIDDEN)
+ endif (NOT GNUCC_VERSION EQUAL 34)
+endif(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW)
+
+# DEFINITIONS
+if (SOLARIS)
+ add_definitions(-D__EXTENSIONS__)
+endif (SOLARIS)
+
+# HEADER FILES
+check_include_file(assert.h HAVE_ASSERT_H)
+check_include_file(inttypes.h HAVE_INTTYPES_H)
+check_include_file(io.h HAVE_IO_H)
+check_include_file(malloc.h HAVE_MALLOC_H)
+check_include_file(memory.h HAVE_MEMORY_H)
+check_include_file(setjmp.h HAVE_SETJMP_H)
+check_include_file(signal.h HAVE_SIGNAL_H)
+check_include_file(stdarg.h HAVE_STDARG_H)
+check_include_file(stddef.h HAVE_STDDEF_H)
+check_include_file(stdint.h HAVE_STDINT_H)
+check_include_file(stdio.h HAVE_STDIO_H)
+check_include_file(stdlib.h HAVE_STDLIB_H)
+check_include_file(string.h HAVE_STRING_H)
+check_include_file(strings.h HAVE_STRINGS_H)
+check_include_file(sys/stat.h HAVE_SYS_STAT_H)
+check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(time.h HAVE_TIME_H)
+check_include_file(unistd.h HAVE_UNISTD_H)
+
+if (HAVE_TIME_H)
+ check_struct_has_member("struct timespec" tv_sec "time.h" HAVE_STRUCT_TIMESPEC)
+endif (HAVE_TIME_H)
+
+# FUNCTIONS
+check_function_exists(calloc HAVE_CALLOC)
+check_function_exists(exit HAVE_EXIT)
+check_function_exists(fprintf HAVE_FPRINTF)
+check_function_exists(free HAVE_FREE)
+check_function_exists(longjmp HAVE_LONGJMP)
+check_function_exists(siglongjmp HAVE_SIGLONGJMP)
+check_function_exists(malloc HAVE_MALLOC)
+check_function_exists(memcpy HAVE_MEMCPY)
+check_function_exists(memset HAVE_MEMSET)
+check_function_exists(printf HAVE_PRINTF)
+check_function_exists(setjmp HAVE_SETJMP)
+check_function_exists(signal HAVE_SIGNAL)
+check_function_exists(strsignal HAVE_STRSIGNAL)
+check_function_exists(strcmp HAVE_STRCMP)
+check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
+
+if (WIN32)
+ check_function_exists(_vsnprintf_s HAVE__VSNPRINTF_S)
+ check_function_exists(_vsnprintf HAVE__VSNPRINTF)
+ check_function_exists(_snprintf HAVE__SNPRINTF)
+ check_function_exists(_snprintf_s HAVE__SNPRINTF_S)
+ check_symbol_exists(snprintf stdio.h HAVE_SNPRINTF)
+ check_symbol_exists(vsnprintf stdio.h HAVE_VSNPRINTF)
+else (WIN32)
+ check_function_exists(sprintf HAVE_SNPRINTF)
+ check_function_exists(vsnprintf HAVE_VSNPRINTF)
+endif (WIN32)
+
+find_library(RT_LIBRARY rt)
+if (RT_LIBRARY AND NOT LINUX)
+ set(CMOCKA_REQUIRED_LIBRARIES ${RT_LIBRARY} CACHE INTERNAL "cmocka required system libraries")
+endif ()
+
+# OPTIONS
+check_c_source_compiles("
+__thread int tls;
+
+int main(void) {
+ return 0;
+}" HAVE_GCC_THREAD_LOCAL_STORAGE)
+
+if (WIN32)
+check_c_source_compiles("
+__declspec(thread) int tls;
+
+int main(void) {
+ return 0;
+}" HAVE_MSVC_THREAD_LOCAL_STORAGE)
+endif(WIN32)
+
+if (HAVE_TIME_H AND HAVE_STRUCT_TIMESPEC AND HAVE_CLOCK_GETTIME)
+ if (RT_LIBRARY)
+ set(CMAKE_REQUIRED_LIBRARIES ${RT_LIBRARY})
+ endif()
+
+ check_c_source_compiles("
+#include
+
+int main(void) {
+ struct timespec ts;
+
+ clock_gettime(CLOCK_REALTIME, &ts);
+
+ return 0;
+}" HAVE_CLOCK_GETTIME_REALTIME)
+
+ # reset cmake requirements
+ set(CMAKE_REQUIRED_INCLUDES)
+ set(CMAKE_REQUIRED_LIBRARIES)
+endif ()
+
+# ENDIAN
+if (NOT WIN32)
+ set(WORDS_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
+ test_big_endian(WORDS_BIGENDIAN)
+endif (NOT WIN32)
diff --git a/tests/cmocka-1.1.0/DefineOptions.cmake b/tests/cmocka-1.1.0/DefineOptions.cmake
new file mode 100644
index 0000000..7564a22
--- /dev/null
+++ b/tests/cmocka-1.1.0/DefineOptions.cmake
@@ -0,0 +1,7 @@
+option(WITH_STATIC_LIB "Build with a static library" OFF)
+option(WITH_CMOCKERY_SUPPORT "Install a cmockery header" OFF)
+option(UNIT_TESTING "Build with unit testing" OFF)
+
+if (UNIT_TESTING)
+ set(WITH_STATIC_LIB ON)
+endif()
diff --git a/tests/cmocka-1.1.0/INSTALL b/tests/cmocka-1.1.0/INSTALL
new file mode 100644
index 0000000..8b438d5
--- /dev/null
+++ b/tests/cmocka-1.1.0/INSTALL
@@ -0,0 +1,102 @@
+# How to build from source
+
+## Requirements
+
+### Common requirements
+
+In order to build cmocka, you need to install several components:
+
+- A C compiler
+- [CMake](http://www.cmake.org) >= 2.8.0.
+
+Note that these version numbers are version we know works correctly. If you
+build and run cmocka successfully with an older version, please let us know.
+
+## Building
+First, you need to configure the compilation, using CMake. Go inside the
+`build` dir. Create it if it doesn't exist.
+
+GNU/Linux, MacOS X, MSYS/MinGW:
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ..
+ make
+
+On Windows you should choose a makefile gernerator with -G, for example:
+
+ cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE=Debug /path/to/source
+
+You can also use the CMake GUI which is shipped with CMake. It will list all
+available generators for MSVC on Windows.
+
+### CMake standard options
+Here is a list of the most interesting options provided out of the box by
+CMake.
+
+- CMAKE_BUILD_TYPE: The type of build (can be Debug Release MinSizeRel
+ RelWithDebInfo)
+- CMAKE_INSTALL_PREFIX: The prefix to use when running make install (Default
+ to /usr/local on GNU/Linux and MacOS X)
+- CMAKE_C_COMPILER: The path to the C compiler
+- CMAKE_CXX_COMPILER: The path to the C++ compiler
+
+### CMake options defined for cmocka
+
+Options are defined in the following files:
+
+- DefineOptions.cmake
+
+They can be changed with the -D option:
+
+`cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON ..`
+
+### Browsing/editing CMake options
+
+In addition to passing options on the command line, you can browse and edit
+CMake options using `cmakesetup` (Windows), `cmake-gui` or `ccmake` (GNU/Linux
+and MacOS X).
+
+- Go to the build dir
+- On Windows: run `cmakesetup`
+- On GNU/Linux and MacOS X: run `ccmake ..`
+
+## Installing
+
+If you want to install cmocka after compilation run:
+
+ make install
+
+## Running
+
+The cmocka library can be found in the `build/src` directory.
+You can run the binaries in `build/examples/*` which is a
+are exsample tests.
+
+## Testing
+
+As mention above you can turn on the unit tests and make it possible to easily
+execute them:
+
+`cmake -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON ..`
+
+After that you can simply call `make test` in the build directory or if you
+want more output simply call `ctest -V`.
+
+If you want to enable the generation of coverage files you can do this by
+using the following options:
+
+`cmake -DCMAKE_BUILD_TYPE=Profiling -DUNIT_TESTING=ON ..`
+
+After building it you will see that you have several coverage options in
+
+`make help`
+
+You should have `make ExperimentalCoverage` and running it will create
+coverage files. The result is stored in Testing directory.
+
+## About this document
+
+This document is written using [Markdown][] syntax, making it possible to
+provide usable information in both plain text and HTML format. Whenever
+modifying this document please use [Markdown][] syntax.
+
+[markdown]: http://www.daringfireball.net/projects/markdown
diff --git a/tests/cmocka-1.1.0/NEWS b/tests/cmocka-1.1.0/NEWS
new file mode 100644
index 0000000..e69de29
diff --git a/tests/cmocka-1.1.0/README b/tests/cmocka-1.1.0/README
new file mode 100644
index 0000000..b432e8e
--- /dev/null
+++ b/tests/cmocka-1.1.0/README
@@ -0,0 +1,15 @@
+CMOCKA
+=======
+
+cmocka is a fork for Google's cmockery unit testing framework to fix bugs and
+support it in future.
+See https://code.google.com/p/cmockery/
+
+For information about how to use the cmocka unit testing framework see
+doc/index.html.
+
+COMPILING
+---------
+To compile the cmocka library and example applications run, create a build dir,
+and in the build dir call 'cmake /path/to/cmocka' followed by 'make'. On
+Windows you can use the cmake gui. More details can be found in the INSTALL file.
diff --git a/tests/cmocka-1.1.0/build/CMakeCache.txt b/tests/cmocka-1.1.0/build/CMakeCache.txt
new file mode 100644
index 0000000..ac2a311
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeCache.txt
@@ -0,0 +1,533 @@
+# This is the CMakeCache file.
+# For build in directory: /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//The cmocka binary install dir (default prefix/bin)
+BIN_INSTALL_DIR:PATH=/usr/local/bin
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//The subdirectory to install cmake config files
+CMAKE_INSTALL_DIR:PATH=/usr/local/lib/cmake
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=cmocka
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Path to include directory for cmocka_platform.h
+CMOCKA_PLATFORM_INCLUDE:PATH=
+
+//Enable to build Debian packages
+CPACK_BINARY_DEB:BOOL=OFF
+
+//Enable to build IFW packages
+CPACK_BINARY_IFW:BOOL=OFF
+
+//Enable to build NSIS packages
+CPACK_BINARY_NSIS:BOOL=OFF
+
+//Enable to build RPM packages
+CPACK_BINARY_RPM:BOOL=OFF
+
+//Enable to build STGZ packages
+CPACK_BINARY_STGZ:BOOL=ON
+
+//Enable to build TBZ2 packages
+CPACK_BINARY_TBZ2:BOOL=OFF
+
+//Enable to build TGZ packages
+CPACK_BINARY_TGZ:BOOL=ON
+
+//Enable to build TXZ packages
+CPACK_BINARY_TXZ:BOOL=OFF
+
+//Enable to build TZ packages
+CPACK_BINARY_TZ:BOOL=ON
+
+//The parent directory where applications can install their data
+// (default prefix/share/cmocka)
+DATA_INSTALL_DIR:PATH=/usr/local/share/cmocka
+
+//The parent directory where applications can install their data
+DATA_INSTALL_PREFIX:PATH=/usr/local/share/cmocka
+
+//Graphviz Dot tool for using Doxygen
+DOXYGEN_DOT_EXECUTABLE:FILEPATH=DOXYGEN_DOT_EXECUTABLE-NOTFOUND
+
+//Doxygen documentation generation tool (http://www.doxygen.org)
+DOXYGEN_EXECUTABLE:FILEPATH=DOXYGEN_EXECUTABLE-NOTFOUND
+
+//Base directory for executables and libraries
+EXEC_INSTALL_PREFIX:PATH=/usr/local
+
+//The HTML install dir for documentation (default data/doc/html)
+HTML_INSTALL_DIR:PATH=/usr/local/share/cmocka/doc/HTML
+
+//The icon install dir (default data/icons/)
+ICON_INSTALL_DIR:PATH=/usr/local/share/cmocka/icons
+
+//The subdirectory to the header prefix (default prefix/include)
+INCLUDE_INSTALL_DIR:PATH=/usr/local/include
+
+//The cmocka info install dir (default prefix/info)
+INFO_INSTALL_DIR:PATH=/usr/local/share/info
+
+//The subdirectory relative to the install prefix where libraries
+// will be installed (default is prefix/libexec)
+LIBEXEC_INSTALL_DIR:PATH=/usr/local/libexec
+
+//The subdirectory relative to the install prefix where libraries
+// will be installed (default is prefix/lib)
+LIB_INSTALL_DIR:PATH=/usr/local/lib
+
+//Define suffix of directory name (32/64)
+LIB_SUFFIX:STRING=
+
+//The install dir for translations (default prefix/share/locale)
+LOCALE_INSTALL_DIR:PATH=/usr/local/share/locale
+
+//The cmocka man install dir (default prefix/man)
+MAN_INSTALL_DIR:PATH=/usr/local/share/man
+
+//The subdirectory relative to the install prefix where plugins
+// will be installed (default is prefix/lib/cmocka)
+PLUGIN_INSTALL_DIR:PATH=/usr/local/lib/cmocka
+
+//Path to a library.
+RT_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/librt.so
+
+//The cmocka sbin install dir (default prefix/sbin)
+SBIN_INSTALL_DIR:PATH=/usr/local/sbin
+
+//Base directory for files which go to share/
+SHARE_INSTALL_PREFIX:PATH=/usr/local/share
+
+//The install dir for sound files (default data/sounds)
+SOUND_INSTALL_DIR:PATH=/usr/local/share/cmocka/sounds
+
+//The cmocka sysconfig install dir (default prefix/etc)
+SYSCONF_INSTALL_DIR:PATH=/usr/local/etc
+
+//Build with unit testing
+UNIT_TESTING:BOOL=OFF
+
+//Install a cmockery header
+WITH_CMOCKERY_SUPPORT:BOOL=OFF
+
+//Build with a static library
+WITH_STATIC_LIB:BOOL=OFF
+
+//The XDG apps dir
+XDG_APPS_DIR:PATH=/usr/local/share/applications
+
+//The XDG directory
+XDG_DIRECTORY_DIR:PATH=/usr/local/share/desktop-directories
+
+//Value Computed by CMake
+cmocka-examples_BINARY_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example
+
+//Value Computed by CMake
+cmocka-examples_SOURCE_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/example
+
+//Value Computed by CMake
+cmocka-headers_BINARY_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include
+
+//Value Computed by CMake
+cmocka-headers_SOURCE_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
+//Value Computed by CMake
+cmocka-library_BINARY_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src
+
+//Value Computed by CMake
+cmocka-library_SOURCE_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/src
+
+//Value Computed by CMake
+cmocka-wrap-examples_BINARY_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap
+
+//Value Computed by CMake
+cmocka-wrap-examples_SOURCE_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap
+
+//Value Computed by CMake
+cmocka_BINARY_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+//Value Computed by CMake
+cmocka_SOURCE_DIR:STATIC=/home/anton/programs/libfort/tests/cmocka-1.1.0
+
+//Dependencies for target
+cmocka_shared_LIB_DEPENDS:STATIC=
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/anton/programs/libfort/tests/cmocka-1.1.0/build
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=7
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/anton/programs/libfort/tests/cmocka-1.1.0
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=6
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//CHECK_TYPE_SIZE: sizeof(unsigned short)
+CMAKE_SIZEOF_UNSIGNED_SHORT:INTERNAL=2
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//cmocka link libraries
+CMOCKA_LINK_LIBRARIES:INTERNAL=
+//cmocka public include directories
+CMOCKA_PUBLIC_INCLUDE_DIRS:INTERNAL=/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+//cmocka shared library
+CMOCKA_SHARED_LIBRARY:INTERNAL=cmocka_shared
+//ADVANCED property for variable: CPACK_BINARY_DEB
+CPACK_BINARY_DEB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_IFW
+CPACK_BINARY_IFW-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_NSIS
+CPACK_BINARY_NSIS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_RPM
+CPACK_BINARY_RPM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_STGZ
+CPACK_BINARY_STGZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TBZ2
+CPACK_BINARY_TBZ2-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TGZ
+CPACK_BINARY_TGZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TXZ
+CPACK_BINARY_TXZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TZ
+CPACK_BINARY_TZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: DOXYGEN_DOT_EXECUTABLE
+DOXYGEN_DOT_EXECUTABLE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: DOXYGEN_EXECUTABLE
+DOXYGEN_EXECUTABLE-ADVANCED:INTERNAL=1
+//Have include assert.h
+HAVE_ASSERT_H:INTERNAL=1
+//Have function calloc
+HAVE_CALLOC:INTERNAL=1
+//Have function clock_gettime
+HAVE_CLOCK_GETTIME:INTERNAL=1
+//Test HAVE_CLOCK_GETTIME_REALTIME
+HAVE_CLOCK_GETTIME_REALTIME:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_CMAKE_SIZEOF_UNSIGNED_SHORT:INTERNAL=TRUE
+//Have function exit
+HAVE_EXIT:INTERNAL=1
+//Have function fprintf
+HAVE_FPRINTF:INTERNAL=1
+//Have function free
+HAVE_FREE:INTERNAL=1
+//Test HAVE_GCC_THREAD_LOCAL_STORAGE
+HAVE_GCC_THREAD_LOCAL_STORAGE:INTERNAL=1
+//Have include inttypes.h
+HAVE_INTTYPES_H:INTERNAL=1
+//Have include io.h
+HAVE_IO_H:INTERNAL=
+//Have function longjmp
+HAVE_LONGJMP:INTERNAL=1
+//Have function malloc
+HAVE_MALLOC:INTERNAL=1
+//Have include malloc.h
+HAVE_MALLOC_H:INTERNAL=1
+//Have function memcpy
+HAVE_MEMCPY:INTERNAL=1
+//Have include memory.h
+HAVE_MEMORY_H:INTERNAL=1
+//Have function memset
+HAVE_MEMSET:INTERNAL=1
+//Have function printf
+HAVE_PRINTF:INTERNAL=1
+//Have function setjmp
+HAVE_SETJMP:INTERNAL=1
+//Have include setjmp.h
+HAVE_SETJMP_H:INTERNAL=1
+//Have function siglongjmp
+HAVE_SIGLONGJMP:INTERNAL=1
+//Have function signal
+HAVE_SIGNAL:INTERNAL=1
+//Have include signal.h
+HAVE_SIGNAL_H:INTERNAL=1
+//Have function sprintf
+HAVE_SNPRINTF:INTERNAL=1
+//Have include stdarg.h
+HAVE_STDARG_H:INTERNAL=1
+//Have include stddef.h
+HAVE_STDDEF_H:INTERNAL=1
+//Have include stdint.h
+HAVE_STDINT_H:INTERNAL=1
+//Have include stdio.h
+HAVE_STDIO_H:INTERNAL=1
+//Have include stdlib.h
+HAVE_STDLIB_H:INTERNAL=1
+//Have function strcmp
+HAVE_STRCMP:INTERNAL=1
+//Have include strings.h
+HAVE_STRINGS_H:INTERNAL=1
+//Have include string.h
+HAVE_STRING_H:INTERNAL=1
+//Have function strsignal
+HAVE_STRSIGNAL:INTERNAL=1
+//Test HAVE_STRUCT_TIMESPEC
+HAVE_STRUCT_TIMESPEC:INTERNAL=1
+//Have include sys/stat.h
+HAVE_SYS_STAT_H:INTERNAL=1
+//Have include sys/types.h
+HAVE_SYS_TYPES_H:INTERNAL=1
+//Have include time.h
+HAVE_TIME_H:INTERNAL=1
+//Have include unistd.h
+HAVE_UNISTD_H:INTERNAL=1
+//Have function vsnprintf
+HAVE_VSNPRINTF:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_WORDS_BIGENDIAN:INTERNAL=TRUE
+//Test WITH_FPIC
+WITH_FPIC:INTERNAL=1
+//Test WITH_STACK_PROTECTOR
+WITH_STACK_PROTECTOR:INTERNAL=1
+//Test WITH_VISIBILITY_HIDDEN
+WITH_VISIBILITY_HIDDEN:INTERNAL=1
+//Result of TEST_BIG_ENDIAN
+WORDS_BIGENDIAN:INTERNAL=0
+
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeCCompiler.cmake
new file mode 100644
index 0000000..d628b11
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeCCompiler.cmake
@@ -0,0 +1,68 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "6.3.0")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+ set(CYGWIN 1)
+ set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000..49ad924
Binary files /dev/null and b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeSystem.cmake b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeSystem.cmake
new file mode 100644
index 0000000..6de073d
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-4.10.0-42-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "4.10.0-42-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-4.10.0-42-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "4.10.0-42-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000..512e360
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,561 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+ /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+ /* __SUNPRO_C = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+ /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+ /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+ /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(SDCC)
+# define COMPILER_ID "SDCC"
+ /* SDCC = VRP */
+# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+ /* _SGI_COMPILER_VERSION = VRP */
+# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
+# else
+ /* _COMPILER_VERSION = VRP */
+# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if defined(_MSC_VER) && !defined(__clang__)
+# define C_DIALECT "90"
+# else
+# define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+ "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+ require += info_cray[argc];
+#endif
+ require += info_language_dialect_default[argc];
+ (void)argv;
+ return require;
+}
+#endif
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/a.out b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/a.out
new file mode 100755
index 0000000..2c9d824
Binary files /dev/null and b/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/a.out differ
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/CMakeDirectoryInformation.cmake b/tests/cmocka-1.1.0/build/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..71cbe6c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/anton/programs/libfort/tests/cmocka-1.1.0")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/CMakeError.log b/tests/cmocka-1.1.0/build/CMakeFiles/CMakeError.log
new file mode 100644
index 0000000..ced71bb
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/CMakeError.log
@@ -0,0 +1,19 @@
+Determining if the include file io.h exists failed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_2bb09/fast"
+/usr/bin/make -f CMakeFiles/cmTC_2bb09.dir/build.make CMakeFiles/cmTC_2bb09.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_2bb09.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_2bb09.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:16: fatal error: io.h: No such file or directory
+ #include
+ ^
+compilation terminated.
+CMakeFiles/cmTC_2bb09.dir/build.make:65: recipe for target 'CMakeFiles/cmTC_2bb09.dir/CheckIncludeFile.c.o' failed
+make[1]: *** [CMakeFiles/cmTC_2bb09.dir/CheckIncludeFile.c.o] Error 1
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Makefile:126: recipe for target 'cmTC_2bb09/fast' failed
+make: *** [cmTC_2bb09/fast] Error 2
+
+
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/CMakeOutput.log b/tests/cmocka-1.1.0/build/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000..6617a3f
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,891 @@
+The system is: Linux - 4.10.0-42-generic - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc
+Build flags:
+Id flags:
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/3.7.2/CompilerIdC/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_37184/fast"
+/usr/bin/make -f CMakeFiles/cmTC_37184.dir/build.make CMakeFiles/cmTC_37184.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_37184.dir/testCCompiler.c.o
+/usr/bin/cc -o CMakeFiles/cmTC_37184.dir/testCCompiler.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_37184
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_37184.dir/link.txt --verbose=1
+/usr/bin/cc CMakeFiles/cmTC_37184.dir/testCCompiler.c.o -o cmTC_37184 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_2356d/fast"
+/usr/bin/make -f CMakeFiles/cmTC_2356d.dir/build.make CMakeFiles/cmTC_2356d.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc -o CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_2356d
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2356d.dir/link.txt --verbose=1
+/usr/bin/cc -v CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o -o cmTC_2356d -rdynamic
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2356d' '-rdynamic' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccjoVrpq.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2356d /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2356d' '-rdynamic' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+ link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+ ignore line: [Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp]
+ ignore line: []
+ ignore line: [Run Build Command:"/usr/bin/make" "cmTC_2356d/fast"]
+ ignore line: [/usr/bin/make -f CMakeFiles/cmTC_2356d.dir/build.make CMakeFiles/cmTC_2356d.dir/build]
+ ignore line: [make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp']
+ ignore line: [Building C object CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o]
+ ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c]
+ ignore line: [Linking C executable cmTC_2356d]
+ ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2356d.dir/link.txt --verbose=1]
+ ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o -o cmTC_2356d -rdynamic ]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/cc]
+ ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+ ignore line: [Target: x86_64-linux-gnu]
+ ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+ ignore line: [Thread model: posix]
+ ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+ ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2356d' '-rdynamic' '-mtune=generic' '-march=x86-64']
+ link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccjoVrpq.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2356d /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+ arg [-plugin] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+ arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+ arg [-plugin-opt=-fresolution=/tmp/ccjoVrpq.res] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [--sysroot=/] ==> ignore
+ arg [--build-id] ==> ignore
+ arg [--eh-frame-hdr] ==> ignore
+ arg [-m] ==> ignore
+ arg [elf_x86_64] ==> ignore
+ arg [--hash-style=gnu] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-export-dynamic] ==> ignore
+ arg [-dynamic-linker] ==> ignore
+ arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+ arg [-pie] ==> ignore
+ arg [-znow] ==> ignore
+ arg [-zrelro] ==> ignore
+ arg [-o] ==> ignore
+ arg [cmTC_2356d] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+ arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+ arg [-L/lib/../lib] ==> dir [/lib/../lib]
+ arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+ arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+ arg [CMakeFiles/cmTC_2356d.dir/CMakeCCompilerABI.c.o] ==> ignore
+ arg [-lgcc] ==> lib [gcc]
+ arg [--as-needed] ==> ignore
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [--no-as-needed] ==> ignore
+ arg [-lc] ==> lib [c]
+ arg [-lgcc] ==> lib [gcc]
+ arg [--as-needed] ==> ignore
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [--no-as-needed] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+ remove lib [gcc]
+ remove lib [gcc_s]
+ remove lib [gcc]
+ remove lib [gcc_s]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+ collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+ collapse library dir [/lib/../lib] ==> [/lib]
+ collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+ collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+ implicit libs: [c]
+ implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+ implicit fwks: []
+
+
+
+
+Detecting C [-std=c11] compiler features compiled with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_cbb1f/fast"
+/usr/bin/make -f CMakeFiles/cmTC_cbb1f.dir/build.make CMakeFiles/cmTC_cbb1f.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_cbb1f.dir/feature_tests.c.o
+/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_cbb1f.dir/feature_tests.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.c
+Linking C executable cmTC_cbb1f
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cbb1f.dir/link.txt --verbose=1
+/usr/bin/cc CMakeFiles/cmTC_cbb1f.dir/feature_tests.c.o -o cmTC_cbb1f -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+ Feature record: C_FEATURE:1c_function_prototypes
+ Feature record: C_FEATURE:1c_restrict
+ Feature record: C_FEATURE:1c_static_assert
+ Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c99] compiler features compiled with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_7f241/fast"
+/usr/bin/make -f CMakeFiles/cmTC_7f241.dir/build.make CMakeFiles/cmTC_7f241.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_7f241.dir/feature_tests.c.o
+/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_7f241.dir/feature_tests.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.c
+Linking C executable cmTC_7f241
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7f241.dir/link.txt --verbose=1
+/usr/bin/cc CMakeFiles/cmTC_7f241.dir/feature_tests.c.o -o cmTC_7f241 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+ Feature record: C_FEATURE:1c_function_prototypes
+ Feature record: C_FEATURE:1c_restrict
+ Feature record: C_FEATURE:0c_static_assert
+ Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c90] compiler features compiled with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_c8a4e/fast"
+/usr/bin/make -f CMakeFiles/cmTC_c8a4e.dir/build.make CMakeFiles/cmTC_c8a4e.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_c8a4e.dir/feature_tests.c.o
+/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_c8a4e.dir/feature_tests.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.c
+Linking C executable cmTC_c8a4e
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c8a4e.dir/link.txt --verbose=1
+/usr/bin/cc CMakeFiles/cmTC_c8a4e.dir/feature_tests.c.o -o cmTC_c8a4e -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+ Feature record: C_FEATURE:1c_function_prototypes
+ Feature record: C_FEATURE:0c_restrict
+ Feature record: C_FEATURE:0c_static_assert
+ Feature record: C_FEATURE:0c_variadic_macros
+Performing C SOURCE FILE Test WITH_FPIC succeeded with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_55b38/fast"
+/usr/bin/make -f CMakeFiles/cmTC_55b38.dir/build.make CMakeFiles/cmTC_55b38.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_55b38.dir/src.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -DWITH_FPIC -fPIC -o CMakeFiles/cmTC_55b38.dir/src.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_55b38
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_55b38.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -DWITH_FPIC CMakeFiles/cmTC_55b38.dir/src.c.o -o cmTC_55b38 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+Source file was:
+int main(void) { return 0; }
+Performing C SOURCE FILE Test WITH_STACK_PROTECTOR succeeded with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_afd93/fast"
+/usr/bin/make -f CMakeFiles/cmTC_afd93.dir/build.make CMakeFiles/cmTC_afd93.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_afd93.dir/src.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -DWITH_STACK_PROTECTOR -fstack-protector -o CMakeFiles/cmTC_afd93.dir/src.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c: In function ‘main’:
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c:1:27: warning: unused parameter ‘argv’ [-Wunused-parameter]
+ int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}
+ ^~~~
+Linking C executable cmTC_afd93
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_afd93.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -DWITH_STACK_PROTECTOR CMakeFiles/cmTC_afd93.dir/src.c.o -o cmTC_afd93 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+Source file was:
+int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}
+Performing C SOURCE FILE Test WITH_VISIBILITY_HIDDEN succeeded with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_dd710/fast"
+/usr/bin/make -f CMakeFiles/cmTC_dd710.dir/build.make CMakeFiles/cmTC_dd710.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_dd710.dir/src.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DWITH_VISIBILITY_HIDDEN -fvisibility=hidden -o CMakeFiles/cmTC_dd710.dir/src.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_dd710
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dd710.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DWITH_VISIBILITY_HIDDEN CMakeFiles/cmTC_dd710.dir/src.c.o -o cmTC_dd710 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+Source file was:
+int main(void) { return 0; }
+Determining if the include file assert.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_8e8c2/fast"
+/usr/bin/make -f CMakeFiles/cmTC_8e8c2.dir/build.make CMakeFiles/cmTC_8e8c2.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_8e8c2.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_8e8c2.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_8e8c2
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8e8c2.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_8e8c2.dir/CheckIncludeFile.c.o -o cmTC_8e8c2 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file inttypes.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_871ae/fast"
+/usr/bin/make -f CMakeFiles/cmTC_871ae.dir/build.make CMakeFiles/cmTC_871ae.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_871ae.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_871ae.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_871ae
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_871ae.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_871ae.dir/CheckIncludeFile.c.o -o cmTC_871ae -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file malloc.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_df4fe/fast"
+/usr/bin/make -f CMakeFiles/cmTC_df4fe.dir/build.make CMakeFiles/cmTC_df4fe.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_df4fe.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_df4fe.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_df4fe
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_df4fe.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_df4fe.dir/CheckIncludeFile.c.o -o cmTC_df4fe -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file memory.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_07846/fast"
+/usr/bin/make -f CMakeFiles/cmTC_07846.dir/build.make CMakeFiles/cmTC_07846.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_07846.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_07846.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_07846
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_07846.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_07846.dir/CheckIncludeFile.c.o -o cmTC_07846 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file setjmp.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_3b114/fast"
+/usr/bin/make -f CMakeFiles/cmTC_3b114.dir/build.make CMakeFiles/cmTC_3b114.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_3b114.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_3b114.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_3b114
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3b114.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_3b114.dir/CheckIncludeFile.c.o -o cmTC_3b114 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file signal.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_43a38/fast"
+/usr/bin/make -f CMakeFiles/cmTC_43a38.dir/build.make CMakeFiles/cmTC_43a38.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_43a38.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_43a38.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_43a38
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_43a38.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_43a38.dir/CheckIncludeFile.c.o -o cmTC_43a38 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file stdarg.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_50216/fast"
+/usr/bin/make -f CMakeFiles/cmTC_50216.dir/build.make CMakeFiles/cmTC_50216.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_50216.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_50216.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_50216
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_50216.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_50216.dir/CheckIncludeFile.c.o -o cmTC_50216 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file stddef.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_ffbc2/fast"
+/usr/bin/make -f CMakeFiles/cmTC_ffbc2.dir/build.make CMakeFiles/cmTC_ffbc2.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_ffbc2.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_ffbc2.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_ffbc2
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ffbc2.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_ffbc2.dir/CheckIncludeFile.c.o -o cmTC_ffbc2 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file stdint.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_72e6b/fast"
+/usr/bin/make -f CMakeFiles/cmTC_72e6b.dir/build.make CMakeFiles/cmTC_72e6b.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_72e6b.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_72e6b.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_72e6b
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_72e6b.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_72e6b.dir/CheckIncludeFile.c.o -o cmTC_72e6b -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file stdio.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_3f583/fast"
+/usr/bin/make -f CMakeFiles/cmTC_3f583.dir/build.make CMakeFiles/cmTC_3f583.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_3f583.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_3f583.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_3f583
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3f583.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_3f583.dir/CheckIncludeFile.c.o -o cmTC_3f583 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file stdlib.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_6f2d2/fast"
+/usr/bin/make -f CMakeFiles/cmTC_6f2d2.dir/build.make CMakeFiles/cmTC_6f2d2.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_6f2d2.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_6f2d2.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_6f2d2
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6f2d2.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_6f2d2.dir/CheckIncludeFile.c.o -o cmTC_6f2d2 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file string.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_ceb09/fast"
+/usr/bin/make -f CMakeFiles/cmTC_ceb09.dir/build.make CMakeFiles/cmTC_ceb09.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_ceb09.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_ceb09.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_ceb09
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ceb09.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_ceb09.dir/CheckIncludeFile.c.o -o cmTC_ceb09 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file strings.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_10b38/fast"
+/usr/bin/make -f CMakeFiles/cmTC_10b38.dir/build.make CMakeFiles/cmTC_10b38.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_10b38.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_10b38.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_10b38
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_10b38.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_10b38.dir/CheckIncludeFile.c.o -o cmTC_10b38 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file sys/stat.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_c9b40/fast"
+/usr/bin/make -f CMakeFiles/cmTC_c9b40.dir/build.make CMakeFiles/cmTC_c9b40.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_c9b40.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_c9b40.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_c9b40
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c9b40.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_c9b40.dir/CheckIncludeFile.c.o -o cmTC_c9b40 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file sys/types.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_38dbe/fast"
+/usr/bin/make -f CMakeFiles/cmTC_38dbe.dir/build.make CMakeFiles/cmTC_38dbe.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_38dbe.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_38dbe.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_38dbe
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_38dbe.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_38dbe.dir/CheckIncludeFile.c.o -o cmTC_38dbe -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file time.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_0cfb4/fast"
+/usr/bin/make -f CMakeFiles/cmTC_0cfb4.dir/build.make CMakeFiles/cmTC_0cfb4.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_0cfb4.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_0cfb4.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_0cfb4
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0cfb4.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_0cfb4.dir/CheckIncludeFile.c.o -o cmTC_0cfb4 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the include file unistd.h exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_9a732/fast"
+/usr/bin/make -f CMakeFiles/cmTC_9a732.dir/build.make CMakeFiles/cmTC_9a732.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_9a732.dir/CheckIncludeFile.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_9a732.dir/CheckIncludeFile.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_9a732
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9a732.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_9a732.dir/CheckIncludeFile.c.o -o cmTC_9a732 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Performing C SOURCE FILE Test HAVE_STRUCT_TIMESPEC succeeded with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_b9f45/fast"
+/usr/bin/make -f CMakeFiles/cmTC_b9f45.dir/build.make CMakeFiles/cmTC_b9f45.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_b9f45.dir/src.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_STRUCT_TIMESPEC -o CMakeFiles/cmTC_b9f45.dir/src.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_b9f45
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b9f45.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_STRUCT_TIMESPEC CMakeFiles/cmTC_b9f45.dir/src.c.o -o cmTC_b9f45 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+Source file was:
+
+#include
+
+int main()
+{
+ (void)sizeof(((struct timespec *)0)->tv_sec);
+ return 0;
+}
+
+Determining if the function calloc exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_23e2e/fast"
+/usr/bin/make -f CMakeFiles/cmTC_23e2e.dir/build.make CMakeFiles/cmTC_23e2e.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_23e2e.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=calloc -o CMakeFiles/cmTC_23e2e.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘calloc’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_23e2e
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_23e2e.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=calloc CMakeFiles/cmTC_23e2e.dir/CheckFunctionExists.c.o -o cmTC_23e2e -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function exit exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_efdb7/fast"
+/usr/bin/make -f CMakeFiles/cmTC_efdb7.dir/build.make CMakeFiles/cmTC_efdb7.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_efdb7.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=exit -o CMakeFiles/cmTC_efdb7.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘exit’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_efdb7
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_efdb7.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=exit CMakeFiles/cmTC_efdb7.dir/CheckFunctionExists.c.o -o cmTC_efdb7 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function fprintf exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_3f800/fast"
+/usr/bin/make -f CMakeFiles/cmTC_3f800.dir/build.make CMakeFiles/cmTC_3f800.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_3f800.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=fprintf -o CMakeFiles/cmTC_3f800.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘fprintf’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_3f800
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3f800.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=fprintf CMakeFiles/cmTC_3f800.dir/CheckFunctionExists.c.o -o cmTC_3f800 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function free exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_ca18c/fast"
+/usr/bin/make -f CMakeFiles/cmTC_ca18c.dir/build.make CMakeFiles/cmTC_ca18c.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_ca18c.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=free -o CMakeFiles/cmTC_ca18c.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘free’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_ca18c
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ca18c.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=free CMakeFiles/cmTC_ca18c.dir/CheckFunctionExists.c.o -o cmTC_ca18c -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function longjmp exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_6ac97/fast"
+/usr/bin/make -f CMakeFiles/cmTC_6ac97.dir/build.make CMakeFiles/cmTC_6ac97.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_6ac97.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=longjmp -o CMakeFiles/cmTC_6ac97.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+Linking C executable cmTC_6ac97
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6ac97.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=longjmp CMakeFiles/cmTC_6ac97.dir/CheckFunctionExists.c.o -o cmTC_6ac97 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function siglongjmp exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_f51d1/fast"
+/usr/bin/make -f CMakeFiles/cmTC_f51d1.dir/build.make CMakeFiles/cmTC_f51d1.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_f51d1.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=siglongjmp -o CMakeFiles/cmTC_f51d1.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+Linking C executable cmTC_f51d1
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f51d1.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=siglongjmp CMakeFiles/cmTC_f51d1.dir/CheckFunctionExists.c.o -o cmTC_f51d1 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function malloc exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_a74bd/fast"
+/usr/bin/make -f CMakeFiles/cmTC_a74bd.dir/build.make CMakeFiles/cmTC_a74bd.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_a74bd.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=malloc -o CMakeFiles/cmTC_a74bd.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘malloc’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_a74bd
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a74bd.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=malloc CMakeFiles/cmTC_a74bd.dir/CheckFunctionExists.c.o -o cmTC_a74bd -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function memcpy exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_905ca/fast"
+/usr/bin/make -f CMakeFiles/cmTC_905ca.dir/build.make CMakeFiles/cmTC_905ca.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_905ca.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=memcpy -o CMakeFiles/cmTC_905ca.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘memcpy’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_905ca
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_905ca.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=memcpy CMakeFiles/cmTC_905ca.dir/CheckFunctionExists.c.o -o cmTC_905ca -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function memset exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_82c8a/fast"
+/usr/bin/make -f CMakeFiles/cmTC_82c8a.dir/build.make CMakeFiles/cmTC_82c8a.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_82c8a.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=memset -o CMakeFiles/cmTC_82c8a.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘memset’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_82c8a
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_82c8a.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=memset CMakeFiles/cmTC_82c8a.dir/CheckFunctionExists.c.o -o cmTC_82c8a -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function printf exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_bda81/fast"
+/usr/bin/make -f CMakeFiles/cmTC_bda81.dir/build.make CMakeFiles/cmTC_bda81.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_bda81.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=printf -o CMakeFiles/cmTC_bda81.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘printf’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_bda81
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bda81.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=printf CMakeFiles/cmTC_bda81.dir/CheckFunctionExists.c.o -o cmTC_bda81 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function setjmp exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_bc50f/fast"
+/usr/bin/make -f CMakeFiles/cmTC_bc50f.dir/build.make CMakeFiles/cmTC_bc50f.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_bc50f.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=setjmp -o CMakeFiles/cmTC_bc50f.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+Linking C executable cmTC_bc50f
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bc50f.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=setjmp CMakeFiles/cmTC_bc50f.dir/CheckFunctionExists.c.o -o cmTC_bc50f -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function signal exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_07761/fast"
+/usr/bin/make -f CMakeFiles/cmTC_07761.dir/build.make CMakeFiles/cmTC_07761.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_07761.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=signal -o CMakeFiles/cmTC_07761.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+Linking C executable cmTC_07761
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_07761.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=signal CMakeFiles/cmTC_07761.dir/CheckFunctionExists.c.o -o cmTC_07761 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function strsignal exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_64c26/fast"
+/usr/bin/make -f CMakeFiles/cmTC_64c26.dir/build.make CMakeFiles/cmTC_64c26.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_64c26.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=strsignal -o CMakeFiles/cmTC_64c26.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+Linking C executable cmTC_64c26
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_64c26.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=strsignal CMakeFiles/cmTC_64c26.dir/CheckFunctionExists.c.o -o cmTC_64c26 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function strcmp exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_9b089/fast"
+/usr/bin/make -f CMakeFiles/cmTC_9b089.dir/build.make CMakeFiles/cmTC_9b089.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_9b089.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=strcmp -o CMakeFiles/cmTC_9b089.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘strcmp’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_9b089
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9b089.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=strcmp CMakeFiles/cmTC_9b089.dir/CheckFunctionExists.c.o -o cmTC_9b089 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function clock_gettime exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_40837/fast"
+/usr/bin/make -f CMakeFiles/cmTC_40837.dir/build.make CMakeFiles/cmTC_40837.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_40837.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=clock_gettime -o CMakeFiles/cmTC_40837.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+Linking C executable cmTC_40837
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_40837.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=clock_gettime CMakeFiles/cmTC_40837.dir/CheckFunctionExists.c.o -o cmTC_40837 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function sprintf exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_0b030/fast"
+/usr/bin/make -f CMakeFiles/cmTC_0b030.dir/build.make CMakeFiles/cmTC_0b030.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_0b030.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=sprintf -o CMakeFiles/cmTC_0b030.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘sprintf’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_0b030
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0b030.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=sprintf CMakeFiles/cmTC_0b030.dir/CheckFunctionExists.c.o -o cmTC_0b030 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the function vsnprintf exists passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_12874/fast"
+/usr/bin/make -f CMakeFiles/cmTC_12874.dir/build.make CMakeFiles/cmTC_12874.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_12874.dir/CheckFunctionExists.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=vsnprintf -o CMakeFiles/cmTC_12874.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.7/Modules/CheckFunctionExists.c
+:0:23: warning: conflicting types for built-in function ‘vsnprintf’
+/usr/share/cmake-3.7/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
+ CHECK_FUNCTION_EXISTS();
+ ^~~~~~~~~~~~~~~~~~~~~
+Linking C executable cmTC_12874
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_12874.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DCHECK_FUNCTION_EXISTS=vsnprintf CMakeFiles/cmTC_12874.dir/CheckFunctionExists.c.o -o cmTC_12874 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Performing C SOURCE FILE Test HAVE_GCC_THREAD_LOCAL_STORAGE succeeded with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_82e48/fast"
+/usr/bin/make -f CMakeFiles/cmTC_82e48.dir/build.make CMakeFiles/cmTC_82e48.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_82e48.dir/src.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GCC_THREAD_LOCAL_STORAGE -o CMakeFiles/cmTC_82e48.dir/src.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_82e48
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_82e48.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GCC_THREAD_LOCAL_STORAGE CMakeFiles/cmTC_82e48.dir/src.c.o -o cmTC_82e48 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+Source file was:
+
+__thread int tls;
+
+int main(void) {
+ return 0;
+}
+Performing C SOURCE FILE Test HAVE_CLOCK_GETTIME_REALTIME succeeded with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_00495/fast"
+/usr/bin/make -f CMakeFiles/cmTC_00495.dir/build.make CMakeFiles/cmTC_00495.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_00495.dir/src.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_CLOCK_GETTIME_REALTIME -o CMakeFiles/cmTC_00495.dir/src.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_00495
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_00495.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_CLOCK_GETTIME_REALTIME CMakeFiles/cmTC_00495.dir/src.c.o -o cmTC_00495 -rdynamic /usr/lib/x86_64-linux-gnu/librt.so
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+Source file was:
+
+#include
+
+int main(void) {
+ struct timespec ts;
+
+ clock_gettime(CLOCK_REALTIME, &ts);
+
+ return 0;
+}
+Determining size of unsigned short passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_6d621/fast"
+/usr/bin/make -f CMakeFiles/cmTC_6d621.dir/build.make CMakeFiles/cmTC_6d621.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_6d621.dir/CMAKE_SIZEOF_UNSIGNED_SHORT.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_6d621.dir/CMAKE_SIZEOF_UNSIGNED_SHORT.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c
+Linking C executable cmTC_6d621
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6d621.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_6d621.dir/CMAKE_SIZEOF_UNSIGNED_SHORT.c.o -o cmTC_6d621 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+
+Determining if the system is big endian passed with the following output:
+Change Dir: /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_ee632/fast"
+/usr/bin/make -f CMakeFiles/cmTC_ee632.dir/build.make CMakeFiles/cmTC_ee632.dir/build
+make[1]: Entering directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_ee632.dir/TestEndianess.c.o
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/cmTC_ee632.dir/TestEndianess.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp/TestEndianess.c
+Linking C executable cmTC_ee632
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ee632.dir/link.txt --verbose=1
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/cmTC_ee632.dir/TestEndianess.c.o -o cmTC_ee632 -rdynamic
+make[1]: Leaving directory '/mnt/dev_0/home/anton1987/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/CMakeTmp'
+
+TestEndianess.c:
+/* A 16 bit integer is required. */
+typedef unsigned short cmakeint16;
+
+/* On a little endian machine, these 16bit ints will give "THIS IS LITTLE ENDIAN."
+ On a big endian machine the characters will be exchanged pairwise. */
+const cmakeint16 info_little[] = {0x4854, 0x5349, 0x4920, 0x2053, 0x494c, 0x5454, 0x454c, 0x4520, 0x444e, 0x4149, 0x2e4e, 0x0000};
+
+/* on a big endian machine, these 16bit ints will give "THIS IS BIG ENDIAN."
+ On a little endian machine the characters will be exchanged pairwise. */
+const cmakeint16 info_big[] = {0x5448, 0x4953, 0x2049, 0x5320, 0x4249, 0x4720, 0x454e, 0x4449, 0x414e, 0x2e2e, 0x0000};
+
+#ifdef __CLASSIC_C__
+int main(argc, argv) int argc; char *argv[];
+#else
+int main(int argc, char *argv[])
+#endif
+{
+ int require = 0;
+ require += info_little[argc];
+ require += info_big[argc];
+ (void)argv;
+ return require;
+}
+
+
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.bin b/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.bin
new file mode 100755
index 0000000..1ba1569
Binary files /dev/null and b/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.bin differ
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c b/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c
new file mode 100644
index 0000000..a192656
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c
@@ -0,0 +1,40 @@
+#include
+#include
+#include
+
+
+#undef KEY
+#if defined(__i386)
+# define KEY '_','_','i','3','8','6'
+#elif defined(__x86_64)
+# define KEY '_','_','x','8','6','_','6','4'
+#elif defined(__ppc__)
+# define KEY '_','_','p','p','c','_','_'
+#elif defined(__ppc64__)
+# define KEY '_','_','p','p','c','6','4','_','_'
+#endif
+
+#define SIZE (sizeof(unsigned short))
+char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',
+ ('0' + ((SIZE / 10000)%10)),
+ ('0' + ((SIZE / 1000)%10)),
+ ('0' + ((SIZE / 100)%10)),
+ ('0' + ((SIZE / 10)%10)),
+ ('0' + (SIZE % 10)),
+ ']',
+#ifdef KEY
+ ' ','k','e','y','[', KEY, ']',
+#endif
+ '\0'};
+
+#ifdef __CLASSIC_C__
+int main(argc, argv) int argc; char *argv[];
+#else
+int main(int argc, char *argv[])
+#endif
+{
+ int require = 0;
+ require += info_size[argc];
+ (void)argv;
+ return require;
+}
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/Makefile.cmake b/tests/cmocka-1.1.0/build/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000..8713b37
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/Makefile.cmake
@@ -0,0 +1,157 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+ "CMakeCache.txt"
+ "../CMakeLists.txt"
+ "../CPackConfig.cmake"
+ "../ConfigureChecks.cmake"
+ "../DefineOptions.cmake"
+ "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+ "CMakeFiles/3.7.2/CMakeSystem.cmake"
+ "CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c"
+ "CMakeFiles/feature_tests.c"
+ "../cmake/Modules/CheckCCompilerFlagSSP.cmake"
+ "../cmake/Modules/DefineCMakeDefaults.cmake"
+ "../cmake/Modules/DefineCompilerFlags.cmake"
+ "../cmake/Modules/DefineInstallationPaths.cmake"
+ "../cmake/Modules/DefinePlatformDefaults.cmake"
+ "../cmake/Modules/MacroEnsureOutOfSourceBuild.cmake"
+ "../cmake/Modules/UseDoxygen.cmake"
+ "../cmocka-config-version.cmake.in"
+ "../cmocka-config.cmake.in"
+ "../cmocka.pc.cmake"
+ "../config.h.cmake"
+ "../doc/CMakeLists.txt"
+ "../example/CMakeLists.txt"
+ "../example/chef_wrap/CMakeLists.txt"
+ "../include/CMakeLists.txt"
+ "../src/CMakeLists.txt"
+ "/usr/share/cmake-3.7/Modules/CMakeCCompiler.cmake.in"
+ "/usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c"
+ "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeCompilerIdDetection.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeDetermineCCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeDetermineCompileFeatures.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeDetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeDetermineCompilerABI.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeDetermineCompilerId.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeDetermineSystem.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeFindBinUtils.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeParseArguments.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeParseImplicitLinkInfo.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeSystem.cmake.in"
+ "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeTestCompilerCommon.cmake"
+ "/usr/share/cmake-3.7/Modules/CMakeUnixFindMake.cmake"
+ "/usr/share/cmake-3.7/Modules/CPack.cmake"
+ "/usr/share/cmake-3.7/Modules/CPackComponent.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckCCompilerFlag.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckCSourceCompiles.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckCXXSourceCompiles.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckFunctionExists.c"
+ "/usr/share/cmake-3.7/Modules/CheckFunctionExists.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckIncludeFile.c.in"
+ "/usr/share/cmake-3.7/Modules/CheckIncludeFile.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckIncludeFileCXX.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckLibraryExists.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckStructHasMember.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckSymbolExists.cmake"
+ "/usr/share/cmake-3.7/Modules/CheckTypeSize.c.in"
+ "/usr/share/cmake-3.7/Modules/CheckTypeSize.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/ADSP-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Borland-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Clang-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Cray-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/GHS-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/GNU-C-FeatureTests.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/GNU-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/HP-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/IAR-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Intel-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/MSVC-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/PGI-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/PathScale-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/SCO-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/TI-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/Watcom-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/XL-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
+ "/usr/share/cmake-3.7/Modules/FindDoxygen.cmake"
+ "/usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake"
+ "/usr/share/cmake-3.7/Modules/FindPackageMessage.cmake"
+ "/usr/share/cmake-3.7/Modules/Internal/FeatureTesting.cmake"
+ "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake"
+ "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake"
+ "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake"
+ "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake"
+ "/usr/share/cmake-3.7/Modules/TestBigEndian.cmake"
+ "/usr/share/cmake-3.7/Modules/TestEndianess.c.in"
+ "/usr/share/cmake-3.7/Templates/CPackConfig.cmake.in"
+ )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+ "Makefile"
+ "CMakeFiles/cmake.check_cache"
+ )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+ "CMakeFiles/3.7.2/CMakeSystem.cmake"
+ "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+ "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+ "CPackConfig.cmake"
+ "CPackSourceConfig.cmake"
+ "CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c"
+ "config.h"
+ "cmocka.pc"
+ "cmocka-config.cmake"
+ "cmocka-config-version.cmake"
+ "CMakeFiles/CMakeDirectoryInformation.cmake"
+ "doc/CMakeFiles/CMakeDirectoryInformation.cmake"
+ "include/CMakeFiles/CMakeDirectoryInformation.cmake"
+ "src/CMakeFiles/CMakeDirectoryInformation.cmake"
+ "example/CMakeFiles/CMakeDirectoryInformation.cmake"
+ "example/chef_wrap/CMakeFiles/CMakeDirectoryInformation.cmake"
+ )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+ "src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ "example/CMakeFiles/allocate_module_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/simple_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/key_value_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/calculator_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/assert_macro_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/assert_module_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/customer_database_test.dir/DependInfo.cmake"
+ "example/CMakeFiles/product_database_test.dir/DependInfo.cmake"
+ "example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/DependInfo.cmake"
+ )
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/Makefile2 b/tests/cmocka-1.1.0/build/CMakeFiles/Makefile2
new file mode 100644
index 0000000..e32b315
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/Makefile2
@@ -0,0 +1,547 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# The main recursive all target
+all:
+
+.PHONY : all
+
+# The main recursive preinstall target
+preinstall:
+
+.PHONY : preinstall
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Directory level rules for directory doc
+
+# Convenience name for "all" pass in the directory.
+doc/all:
+
+.PHONY : doc/all
+
+# Convenience name for "clean" pass in the directory.
+doc/clean:
+
+.PHONY : doc/clean
+
+# Convenience name for "preinstall" pass in the directory.
+doc/preinstall:
+
+.PHONY : doc/preinstall
+
+#=============================================================================
+# Directory level rules for directory include
+
+# Convenience name for "all" pass in the directory.
+include/all:
+
+.PHONY : include/all
+
+# Convenience name for "clean" pass in the directory.
+include/clean:
+
+.PHONY : include/clean
+
+# Convenience name for "preinstall" pass in the directory.
+include/preinstall:
+
+.PHONY : include/preinstall
+
+#=============================================================================
+# Directory level rules for directory src
+
+# Convenience name for "all" pass in the directory.
+src/all: src/CMakeFiles/cmocka_shared.dir/all
+
+.PHONY : src/all
+
+# Convenience name for "clean" pass in the directory.
+src/clean: src/CMakeFiles/cmocka_shared.dir/clean
+
+.PHONY : src/clean
+
+# Convenience name for "preinstall" pass in the directory.
+src/preinstall:
+
+.PHONY : src/preinstall
+
+#=============================================================================
+# Target rules for target src/CMakeFiles/cmocka_shared.dir
+
+# All Build rule for target.
+src/CMakeFiles/cmocka_shared.dir/all:
+ $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/depend
+ $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=13,14 "Built target cmocka_shared"
+.PHONY : src/CMakeFiles/cmocka_shared.dir/all
+
+# Include target in all.
+all: src/CMakeFiles/cmocka_shared.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+src/CMakeFiles/cmocka_shared.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 2
+ $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/cmocka_shared.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : src/CMakeFiles/cmocka_shared.dir/rule
+
+# Convenience name for target.
+cmocka_shared: src/CMakeFiles/cmocka_shared.dir/rule
+
+.PHONY : cmocka_shared
+
+# clean rule for target.
+src/CMakeFiles/cmocka_shared.dir/clean:
+ $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/clean
+.PHONY : src/CMakeFiles/cmocka_shared.dir/clean
+
+# clean rule for target.
+clean: src/CMakeFiles/cmocka_shared.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Directory level rules for directory example
+
+# Convenience name for "all" pass in the directory.
+example/all: example/CMakeFiles/allocate_module_test.dir/all
+example/all: example/CMakeFiles/simple_test.dir/all
+example/all: example/CMakeFiles/key_value_test.dir/all
+example/all: example/CMakeFiles/calculator_test.dir/all
+example/all: example/CMakeFiles/assert_macro_test.dir/all
+example/all: example/CMakeFiles/assert_module_test.dir/all
+example/all: example/CMakeFiles/customer_database_test.dir/all
+example/all: example/CMakeFiles/product_database_test.dir/all
+example/all: example/chef_wrap/all
+
+.PHONY : example/all
+
+# Convenience name for "clean" pass in the directory.
+example/clean: example/CMakeFiles/allocate_module_test.dir/clean
+example/clean: example/CMakeFiles/simple_test.dir/clean
+example/clean: example/CMakeFiles/key_value_test.dir/clean
+example/clean: example/CMakeFiles/calculator_test.dir/clean
+example/clean: example/CMakeFiles/assert_macro_test.dir/clean
+example/clean: example/CMakeFiles/assert_module_test.dir/clean
+example/clean: example/CMakeFiles/customer_database_test.dir/clean
+example/clean: example/CMakeFiles/product_database_test.dir/clean
+example/clean: example/chef_wrap/clean
+
+.PHONY : example/clean
+
+# Convenience name for "preinstall" pass in the directory.
+example/preinstall: example/chef_wrap/preinstall
+
+.PHONY : example/preinstall
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/allocate_module_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/allocate_module_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=1,2,3 "Built target allocate_module_test"
+.PHONY : example/CMakeFiles/allocate_module_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/allocate_module_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/allocate_module_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/allocate_module_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/allocate_module_test.dir/rule
+
+# Convenience name for target.
+allocate_module_test: example/CMakeFiles/allocate_module_test.dir/rule
+
+.PHONY : allocate_module_test
+
+# clean rule for target.
+example/CMakeFiles/allocate_module_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/clean
+.PHONY : example/CMakeFiles/allocate_module_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/allocate_module_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/simple_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/simple_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=24,25 "Built target simple_test"
+.PHONY : example/CMakeFiles/simple_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/simple_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/simple_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 4
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/simple_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/simple_test.dir/rule
+
+# Convenience name for target.
+simple_test: example/CMakeFiles/simple_test.dir/rule
+
+.PHONY : simple_test
+
+# clean rule for target.
+example/CMakeFiles/simple_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/clean
+.PHONY : example/CMakeFiles/simple_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/simple_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/key_value_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/key_value_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=18,19,20 "Built target key_value_test"
+.PHONY : example/CMakeFiles/key_value_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/key_value_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/key_value_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/key_value_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/key_value_test.dir/rule
+
+# Convenience name for target.
+key_value_test: example/CMakeFiles/key_value_test.dir/rule
+
+.PHONY : key_value_test
+
+# clean rule for target.
+example/CMakeFiles/key_value_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/clean
+.PHONY : example/CMakeFiles/key_value_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/key_value_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/calculator_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/calculator_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=10,11,12 "Built target calculator_test"
+.PHONY : example/CMakeFiles/calculator_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/calculator_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/calculator_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/calculator_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/calculator_test.dir/rule
+
+# Convenience name for target.
+calculator_test: example/CMakeFiles/calculator_test.dir/rule
+
+.PHONY : calculator_test
+
+# clean rule for target.
+example/CMakeFiles/calculator_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/clean
+.PHONY : example/CMakeFiles/calculator_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/calculator_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/assert_macro_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/assert_macro_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=4,5,6 "Built target assert_macro_test"
+.PHONY : example/CMakeFiles/assert_macro_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/assert_macro_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/assert_macro_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/assert_macro_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/assert_macro_test.dir/rule
+
+# Convenience name for target.
+assert_macro_test: example/CMakeFiles/assert_macro_test.dir/rule
+
+.PHONY : assert_macro_test
+
+# clean rule for target.
+example/CMakeFiles/assert_macro_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/clean
+.PHONY : example/CMakeFiles/assert_macro_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/assert_macro_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/assert_module_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/assert_module_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=7,8,9 "Built target assert_module_test"
+.PHONY : example/CMakeFiles/assert_module_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/assert_module_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/assert_module_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/assert_module_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/assert_module_test.dir/rule
+
+# Convenience name for target.
+assert_module_test: example/CMakeFiles/assert_module_test.dir/rule
+
+.PHONY : assert_module_test
+
+# clean rule for target.
+example/CMakeFiles/assert_module_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/clean
+.PHONY : example/CMakeFiles/assert_module_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/assert_module_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/customer_database_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/customer_database_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=15,16,17 "Built target customer_database_test"
+.PHONY : example/CMakeFiles/customer_database_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/customer_database_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/customer_database_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/customer_database_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/customer_database_test.dir/rule
+
+# Convenience name for target.
+customer_database_test: example/CMakeFiles/customer_database_test.dir/rule
+
+.PHONY : customer_database_test
+
+# clean rule for target.
+example/CMakeFiles/customer_database_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/clean
+.PHONY : example/CMakeFiles/customer_database_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/customer_database_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target example/CMakeFiles/product_database_test.dir
+
+# All Build rule for target.
+example/CMakeFiles/product_database_test.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/depend
+ $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=21,22,23 "Built target product_database_test"
+.PHONY : example/CMakeFiles/product_database_test.dir/all
+
+# Include target in all.
+all: example/CMakeFiles/product_database_test.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/CMakeFiles/product_database_test.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/product_database_test.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/CMakeFiles/product_database_test.dir/rule
+
+# Convenience name for target.
+product_database_test: example/CMakeFiles/product_database_test.dir/rule
+
+.PHONY : product_database_test
+
+# clean rule for target.
+example/CMakeFiles/product_database_test.dir/clean:
+ $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/clean
+.PHONY : example/CMakeFiles/product_database_test.dir/clean
+
+# clean rule for target.
+clean: example/CMakeFiles/product_database_test.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Directory level rules for directory example/chef_wrap
+
+# Convenience name for "all" pass in the directory.
+example/chef_wrap/all: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/all
+
+.PHONY : example/chef_wrap/all
+
+# Convenience name for "clean" pass in the directory.
+example/chef_wrap/clean: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean
+
+.PHONY : example/chef_wrap/clean
+
+# Convenience name for "preinstall" pass in the directory.
+example/chef_wrap/preinstall:
+
+.PHONY : example/chef_wrap/preinstall
+
+#=============================================================================
+# Target rules for target example/chef_wrap/CMakeFiles/waiter_test_wrap.dir
+
+# All Build rule for target.
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/all: src/CMakeFiles/cmocka_shared.dir/all
+ $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend
+ $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=26,27,28 "Built target waiter_test_wrap"
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/all
+
+# Include target in all.
+all: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 5
+ $(MAKE) -f CMakeFiles/Makefile2 example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule
+
+# Convenience name for target.
+waiter_test_wrap: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule
+
+.PHONY : waiter_test_wrap
+
+# clean rule for target.
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean:
+ $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean
+
+# clean rule for target.
+clean: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/TargetDirectories.txt b/tests/cmocka-1.1.0/build/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000..47fcc6a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,58 @@
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/install/strip.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/install/local.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/install.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/list_install_components.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/package.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/rebuild_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/package_source.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/edit_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/install/strip.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/install/local.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/install.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/list_install_components.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/package.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/rebuild_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/package_source.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/edit_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/install/strip.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/install/local.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/install.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/list_install_components.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/package.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/rebuild_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/package_source.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/edit_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/install/strip.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/install/local.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/install.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/list_install_components.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/rebuild_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/package.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/package_source.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/edit_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/install/local.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/rebuild_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/edit_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/install/strip.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/list_install_components.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/package_source.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/install.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/package.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/install/strip.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/install/local.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/install.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/list_install_components.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/rebuild_cache.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/package.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/package_source.dir
+/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/edit_cache.dir
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/TestEndianess.bin b/tests/cmocka-1.1.0/build/CMakeFiles/TestEndianess.bin
new file mode 100755
index 0000000..3990528
Binary files /dev/null and b/tests/cmocka-1.1.0/build/CMakeFiles/TestEndianess.bin differ
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/cmake.check_cache b/tests/cmocka-1.1.0/build/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.bin b/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.bin
new file mode 100755
index 0000000..eb7bca0
Binary files /dev/null and b/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.bin differ
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.c b/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000..6590dde
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/feature_tests.c
@@ -0,0 +1,34 @@
+
+ const char features[] = {"\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_restrict\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
+"1"
+#else
+"0"
+#endif
+"c_static_assert\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/tests/cmocka-1.1.0/build/CMakeFiles/progress.marks b/tests/cmocka-1.1.0/build/CMakeFiles/progress.marks
new file mode 100644
index 0000000..9902f17
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+28
diff --git a/tests/cmocka-1.1.0/build/CPackConfig.cmake b/tests/cmocka-1.1.0/build/CPackConfig.cmake
new file mode 100644
index 0000000..3b2018e
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CPackConfig.cmake
@@ -0,0 +1,92 @@
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. The list of available CPACK_xxx variables and their associated
+# documentation may be obtained using
+# cpack --help-variable-list
+#
+# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
+# and some are specific to a generator
+# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
+# usually begin with CPACK__xxxx.
+
+
+SET(CPACK_BINARY_7Z "")
+SET(CPACK_BINARY_BUNDLE "")
+SET(CPACK_BINARY_CYGWIN "")
+SET(CPACK_BINARY_DEB "OFF")
+SET(CPACK_BINARY_DRAGNDROP "")
+SET(CPACK_BINARY_IFW "OFF")
+SET(CPACK_BINARY_NSIS "OFF")
+SET(CPACK_BINARY_OSXX11 "")
+SET(CPACK_BINARY_PACKAGEMAKER "")
+SET(CPACK_BINARY_PRODUCTBUILD "")
+SET(CPACK_BINARY_RPM "OFF")
+SET(CPACK_BINARY_STGZ "ON")
+SET(CPACK_BINARY_TBZ2 "OFF")
+SET(CPACK_BINARY_TGZ "ON")
+SET(CPACK_BINARY_TXZ "OFF")
+SET(CPACK_BINARY_TZ "ON")
+SET(CPACK_BINARY_WIX "")
+SET(CPACK_BINARY_ZIP "")
+SET(CPACK_BUILD_SOURCE_DIRS "/home/anton/programs/libfort/tests/cmocka-1.1.0;/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+SET(CPACK_CMAKE_GENERATOR "Unix Makefiles")
+SET(CPACK_COMPONENTS_ALL "")
+SET(CPACK_COMPONENT_HEADERS_DEPENDS "libraries")
+SET(CPACK_COMPONENT_HEADERS_DESCRIPTION "C/C++ header files for use with cmocka")
+SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers")
+SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
+SET(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Libraries used to build programs which use cmocka")
+SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
+SET(CPACK_COMPONENT_LIBRARIES_GROUP "Development")
+SET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
+SET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
+SET(CPACK_GENERATOR "STGZ;TGZ;TZ")
+SET(CPACK_INSTALL_CMAKE_PROJECTS "/home/anton/programs/libfort/tests/cmocka-1.1.0/build;cmocka;ALL;/")
+SET(CPACK_INSTALL_PREFIX "/usr/local")
+SET(CPACK_MODULE_PATH "/home/anton/programs/libfort/tests/cmocka-1.1.0/cmake/Modules")
+SET(CPACK_NSIS_DISPLAY_NAME "cmocka")
+SET(CPACK_NSIS_INSTALLER_ICON_CODE "")
+SET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
+SET(CPACK_NSIS_PACKAGE_NAME "cmocka")
+SET(CPACK_OUTPUT_CONFIG_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackConfig.cmake")
+SET(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/README")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Unit testing framework for C with mock objects")
+SET(CPACK_PACKAGE_FILE_NAME "cmocka-1.1.0")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "cmocka")
+SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "cmocka")
+SET(CPACK_PACKAGE_NAME "cmocka")
+SET(CPACK_PACKAGE_RELOCATABLE "true")
+SET(CPACK_PACKAGE_VENDOR "Andreas Schneider")
+SET(CPACK_PACKAGE_VERSION "1.1.0")
+SET(CPACK_PACKAGE_VERSION_MAJOR "1")
+SET(CPACK_PACKAGE_VERSION_MINOR "1")
+SET(CPACK_PACKAGE_VERSION_PATCH "0")
+SET(CPACK_RESOURCE_FILE_LICENSE "/home/anton/programs/libfort/tests/cmocka-1.1.0/COPYING")
+SET(CPACK_RESOURCE_FILE_README "/usr/share/cmake-3.7/Templates/CPack.GenericDescription.txt")
+SET(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake-3.7/Templates/CPack.GenericWelcome.txt")
+SET(CPACK_SET_DESTDIR "OFF")
+SET(CPACK_SOURCE_7Z "")
+SET(CPACK_SOURCE_CYGWIN "")
+SET(CPACK_SOURCE_GENERATOR "TGZ")
+SET(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/obj*;tags;cscope.*;.ycm_extra_conf.pyc")
+SET(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake")
+SET(CPACK_SOURCE_PACKAGE_FILE_NAME "cmocka-1.1.0")
+SET(CPACK_SOURCE_RPM "")
+SET(CPACK_SOURCE_TBZ2 "")
+SET(CPACK_SOURCE_TGZ "")
+SET(CPACK_SOURCE_TXZ "")
+SET(CPACK_SOURCE_TZ "")
+SET(CPACK_SOURCE_ZIP "")
+SET(CPACK_SYSTEM_NAME "Linux")
+SET(CPACK_TOPLEVEL_TAG "Linux")
+SET(CPACK_WIX_SIZEOF_VOID_P "8")
+
+if(NOT CPACK_PROPERTIES_FILE)
+ set(CPACK_PROPERTIES_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackProperties.cmake")
+endif()
+
+if(EXISTS ${CPACK_PROPERTIES_FILE})
+ include(${CPACK_PROPERTIES_FILE})
+endif()
diff --git a/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake b/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
new file mode 100644
index 0000000..0546216
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
@@ -0,0 +1,98 @@
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. The list of available CPACK_xxx variables and their associated
+# documentation may be obtained using
+# cpack --help-variable-list
+#
+# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
+# and some are specific to a generator
+# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
+# usually begin with CPACK__xxxx.
+
+
+SET(CPACK_BINARY_7Z "")
+SET(CPACK_BINARY_BUNDLE "")
+SET(CPACK_BINARY_CYGWIN "")
+SET(CPACK_BINARY_DEB "OFF")
+SET(CPACK_BINARY_DRAGNDROP "")
+SET(CPACK_BINARY_IFW "OFF")
+SET(CPACK_BINARY_NSIS "OFF")
+SET(CPACK_BINARY_OSXX11 "")
+SET(CPACK_BINARY_PACKAGEMAKER "")
+SET(CPACK_BINARY_PRODUCTBUILD "")
+SET(CPACK_BINARY_RPM "OFF")
+SET(CPACK_BINARY_STGZ "ON")
+SET(CPACK_BINARY_TBZ2 "OFF")
+SET(CPACK_BINARY_TGZ "ON")
+SET(CPACK_BINARY_TXZ "OFF")
+SET(CPACK_BINARY_TZ "ON")
+SET(CPACK_BINARY_WIX "")
+SET(CPACK_BINARY_ZIP "")
+SET(CPACK_BUILD_SOURCE_DIRS "/home/anton/programs/libfort/tests/cmocka-1.1.0;/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+SET(CPACK_CMAKE_GENERATOR "Unix Makefiles")
+SET(CPACK_COMPONENTS_ALL "")
+SET(CPACK_COMPONENT_HEADERS_DEPENDS "libraries")
+SET(CPACK_COMPONENT_HEADERS_DESCRIPTION "C/C++ header files for use with cmocka")
+SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers")
+SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
+SET(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Libraries used to build programs which use cmocka")
+SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
+SET(CPACK_COMPONENT_LIBRARIES_GROUP "Development")
+SET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
+SET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
+SET(CPACK_GENERATOR "TGZ")
+SET(CPACK_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/obj*;tags;cscope.*;.ycm_extra_conf.pyc")
+SET(CPACK_INSTALLED_DIRECTORIES "/home/anton/programs/libfort/tests/cmocka-1.1.0;/")
+SET(CPACK_INSTALL_CMAKE_PROJECTS "")
+SET(CPACK_INSTALL_PREFIX "/usr/local")
+SET(CPACK_MODULE_PATH "/home/anton/programs/libfort/tests/cmocka-1.1.0/cmake/Modules")
+SET(CPACK_NSIS_DISPLAY_NAME "cmocka")
+SET(CPACK_NSIS_INSTALLER_ICON_CODE "")
+SET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
+SET(CPACK_NSIS_PACKAGE_NAME "cmocka")
+SET(CPACK_OUTPUT_CONFIG_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackConfig.cmake")
+SET(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/README")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Unit testing framework for C with mock objects")
+SET(CPACK_PACKAGE_FILE_NAME "cmocka-1.1.0")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "cmocka")
+SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "cmocka")
+SET(CPACK_PACKAGE_NAME "cmocka")
+SET(CPACK_PACKAGE_RELOCATABLE "true")
+SET(CPACK_PACKAGE_VENDOR "Andreas Schneider")
+SET(CPACK_PACKAGE_VERSION "1.1.0")
+SET(CPACK_PACKAGE_VERSION_MAJOR "1")
+SET(CPACK_PACKAGE_VERSION_MINOR "1")
+SET(CPACK_PACKAGE_VERSION_PATCH "0")
+SET(CPACK_RESOURCE_FILE_LICENSE "/home/anton/programs/libfort/tests/cmocka-1.1.0/COPYING")
+SET(CPACK_RESOURCE_FILE_README "/usr/share/cmake-3.7/Templates/CPack.GenericDescription.txt")
+SET(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake-3.7/Templates/CPack.GenericWelcome.txt")
+SET(CPACK_RPM_PACKAGE_SOURCES "ON")
+SET(CPACK_SET_DESTDIR "OFF")
+SET(CPACK_SOURCE_7Z "")
+SET(CPACK_SOURCE_CYGWIN "")
+SET(CPACK_SOURCE_GENERATOR "TGZ")
+SET(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/obj*;tags;cscope.*;.ycm_extra_conf.pyc")
+SET(CPACK_SOURCE_INSTALLED_DIRECTORIES "/home/anton/programs/libfort/tests/cmocka-1.1.0;/")
+SET(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake")
+SET(CPACK_SOURCE_PACKAGE_FILE_NAME "cmocka-1.1.0")
+SET(CPACK_SOURCE_RPM "")
+SET(CPACK_SOURCE_TBZ2 "")
+SET(CPACK_SOURCE_TGZ "")
+SET(CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source")
+SET(CPACK_SOURCE_TXZ "")
+SET(CPACK_SOURCE_TZ "")
+SET(CPACK_SOURCE_ZIP "")
+SET(CPACK_STRIP_FILES "")
+SET(CPACK_SYSTEM_NAME "Linux")
+SET(CPACK_TOPLEVEL_TAG "Linux-Source")
+SET(CPACK_WIX_SIZEOF_VOID_P "8")
+
+if(NOT CPACK_PROPERTIES_FILE)
+ set(CPACK_PROPERTIES_FILE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackProperties.cmake")
+endif()
+
+if(EXISTS ${CPACK_PROPERTIES_FILE})
+ include(${CPACK_PROPERTIES_FILE})
+endif()
diff --git a/tests/cmocka-1.1.0/build/Makefile b/tests/cmocka-1.1.0/build/Makefile
new file mode 100644
index 0000000..99238f7
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/Makefile
@@ -0,0 +1,346 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"headers\" \"pkgconfig\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target package
+package: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+ /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package_source
+package_source:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+ /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+ /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles/progress.marks
+ $(MAKE) -f CMakeFiles/Makefile2 all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ $(MAKE) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ $(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ $(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named cmocka_shared
+
+# Build rule for target.
+cmocka_shared: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 cmocka_shared
+.PHONY : cmocka_shared
+
+# fast build rule for target.
+cmocka_shared/fast:
+ $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/build
+.PHONY : cmocka_shared/fast
+
+#=============================================================================
+# Target rules for targets named allocate_module_test
+
+# Build rule for target.
+allocate_module_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 allocate_module_test
+.PHONY : allocate_module_test
+
+# fast build rule for target.
+allocate_module_test/fast:
+ $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/build
+.PHONY : allocate_module_test/fast
+
+#=============================================================================
+# Target rules for targets named simple_test
+
+# Build rule for target.
+simple_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 simple_test
+.PHONY : simple_test
+
+# fast build rule for target.
+simple_test/fast:
+ $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/build
+.PHONY : simple_test/fast
+
+#=============================================================================
+# Target rules for targets named key_value_test
+
+# Build rule for target.
+key_value_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 key_value_test
+.PHONY : key_value_test
+
+# fast build rule for target.
+key_value_test/fast:
+ $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/build
+.PHONY : key_value_test/fast
+
+#=============================================================================
+# Target rules for targets named calculator_test
+
+# Build rule for target.
+calculator_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 calculator_test
+.PHONY : calculator_test
+
+# fast build rule for target.
+calculator_test/fast:
+ $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/build
+.PHONY : calculator_test/fast
+
+#=============================================================================
+# Target rules for targets named assert_macro_test
+
+# Build rule for target.
+assert_macro_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 assert_macro_test
+.PHONY : assert_macro_test
+
+# fast build rule for target.
+assert_macro_test/fast:
+ $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/build
+.PHONY : assert_macro_test/fast
+
+#=============================================================================
+# Target rules for targets named assert_module_test
+
+# Build rule for target.
+assert_module_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 assert_module_test
+.PHONY : assert_module_test
+
+# fast build rule for target.
+assert_module_test/fast:
+ $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/build
+.PHONY : assert_module_test/fast
+
+#=============================================================================
+# Target rules for targets named customer_database_test
+
+# Build rule for target.
+customer_database_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 customer_database_test
+.PHONY : customer_database_test
+
+# fast build rule for target.
+customer_database_test/fast:
+ $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/build
+.PHONY : customer_database_test/fast
+
+#=============================================================================
+# Target rules for targets named product_database_test
+
+# Build rule for target.
+product_database_test: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 product_database_test
+.PHONY : product_database_test
+
+# fast build rule for target.
+product_database_test/fast:
+ $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/build
+.PHONY : product_database_test/fast
+
+#=============================================================================
+# Target rules for targets named waiter_test_wrap
+
+# Build rule for target.
+waiter_test_wrap: cmake_check_build_system
+ $(MAKE) -f CMakeFiles/Makefile2 waiter_test_wrap
+.PHONY : waiter_test_wrap
+
+# fast build rule for target.
+waiter_test_wrap/fast:
+ $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build
+.PHONY : waiter_test_wrap/fast
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... install/strip"
+ @echo "... install/local"
+ @echo "... install"
+ @echo "... list_install_components"
+ @echo "... package"
+ @echo "... rebuild_cache"
+ @echo "... package_source"
+ @echo "... edit_cache"
+ @echo "... cmocka_shared"
+ @echo "... allocate_module_test"
+ @echo "... simple_test"
+ @echo "... key_value_test"
+ @echo "... calculator_test"
+ @echo "... assert_macro_test"
+ @echo "... assert_module_test"
+ @echo "... customer_database_test"
+ @echo "... product_database_test"
+ @echo "... waiter_test_wrap"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/cmake_install.cmake b/tests/cmocka-1.1.0/build/cmake_install.cmake
new file mode 100644
index 0000000..a681ccb
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/cmake_install.cmake
@@ -0,0 +1,80 @@
+# Install script for directory: /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "pkgconfig" OR NOT CMAKE_INSTALL_COMPONENT)
+ list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+ "/usr/local/lib/pkgconfig/cmocka.pc")
+ if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+ if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+file(INSTALL DESTINATION "/usr/local/lib/pkgconfig" TYPE FILE FILES "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/cmocka.pc")
+endif()
+
+if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "devel" OR NOT CMAKE_INSTALL_COMPONENT)
+ list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+ "/usr/local/lib/cmake/cmocka/cmocka-config.cmake;/usr/local/lib/cmake/cmocka/cmocka-config-version.cmake")
+ if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+ if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+file(INSTALL DESTINATION "/usr/local/lib/cmake/cmocka" TYPE FILE FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/cmocka-config.cmake"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/cmocka-config-version.cmake"
+ )
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ # Include the install script for each subdirectory.
+ include("/home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/cmake_install.cmake")
+ include("/home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/cmake_install.cmake")
+ include("/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/cmake_install.cmake")
+ include("/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+ set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+ "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/${CMAKE_INSTALL_MANIFEST}"
+ "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/tests/cmocka-1.1.0/build/cmocka-config-version.cmake b/tests/cmocka-1.1.0/build/cmocka-config-version.cmake
new file mode 100644
index 0000000..6cd9ba9
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/cmocka-config-version.cmake
@@ -0,0 +1,11 @@
+set(PACKAGE_VERSION 1.1.0)
+
+# Check whether the requested PACKAGE_FIND_VERSION is compatible
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
diff --git a/tests/cmocka-1.1.0/build/cmocka-config.cmake b/tests/cmocka-1.1.0/build/cmocka-config.cmake
new file mode 100644
index 0000000..c4ca21c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/cmocka-config.cmake
@@ -0,0 +1,11 @@
+get_filename_component(CMOCKA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+if (EXISTS "${CMOCKA_CMAKE_DIR}/CMakeCache.txt")
+ # In build tree
+ include(${CMOCKA_CMAKE_DIR}/cmocka-build-tree-settings.cmake)
+else()
+ set(CMOCKA_INCLUDE_DIR /usr/local/include)
+endif()
+
+set(CMOCKA_LIBRARY /usr/local/lib/libcmocka.so)
+set(CMOCKA_LIBRARIES /usr/local/lib/libcmocka.so)
diff --git a/tests/cmocka-1.1.0/build/cmocka.pc b/tests/cmocka-1.1.0/build/cmocka.pc
new file mode 100644
index 0000000..56ee389
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/cmocka.pc
@@ -0,0 +1,6 @@
+Name: cmocka
+Description: The cmocka unit testing library
+Version: 1.1.0
+Libs: -L/usr/local/lib -lcmocka
+Cflags: -I/usr/local/include
+
diff --git a/tests/cmocka-1.1.0/build/compile_commands.json b/tests/cmocka-1.1.0/build/compile_commands.json
new file mode 100644
index 0000000..1e59aa6
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/compile_commands.json
@@ -0,0 +1,92 @@
+[
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src",
+ "command": "/usr/bin/cc -DCMOCKA_EXPORTS -DHAVE_CONFIG_H=1 -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -I/home/anton/programs/libfort/tests/cmocka-1.1.0/src -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -fPIC -o CMakeFiles/cmocka_shared.dir/cmocka.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -DUNIT_TESTING=1 -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/allocate_module_test.dir/allocate_module.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/simple_test.dir/simple_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/key_value_test.dir/key_value.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/key_value_test.dir/key_value_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -DUNIT_TESTING=1 -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/calculator_test.dir/calculator.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/calculator_test.dir/calculator_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/assert_macro_test.dir/assert_macro.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -DUNIT_TESTING=1 -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/assert_module_test.dir/assert_module.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/assert_module_test.dir/assert_module_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/customer_database_test.dir/customer_database.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/customer_database_test.dir/customer_database_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/product_database_test.dir/product_database.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/product_database_test.dir/product_database_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c"
+},
+{
+ "directory": "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap",
+ "command": "/usr/bin/cc -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/waiter_test_wrap.dir/chef.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c",
+ "file": "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c"
+}
+]
\ No newline at end of file
diff --git a/tests/cmocka-1.1.0/build/config.h b/tests/cmocka-1.1.0/build/config.h
new file mode 100644
index 0000000..11488f0
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/config.h
@@ -0,0 +1,169 @@
+/* Name of package */
+#define PACKAGE "cmocka"
+
+/* Version number of package */
+#define VERSION "1.1.0"
+
+/* #undef LOCALEDIR */
+#define DATADIR "/usr/local/share/cmocka"
+#define LIBDIR "/usr/local/lib"
+#define PLUGINDIR "/usr/local/lib/cmocka-0"
+#define SYSCONFDIR "/usr/local/etc"
+#define BINARYDIR "/home/anton/programs/libfort/tests/cmocka-1.1.0/build"
+#define SOURCEDIR "/home/anton/programs/libfort/tests/cmocka-1.1.0"
+
+/************************** HEADER FILES *************************/
+
+/* Define to 1 if you have the header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_IO_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SETJMP_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDARG_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDDEF_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_UNISTD_H 1
+
+/**************************** STRUCTS ****************************/
+
+#define HAVE_STRUCT_TIMESPEC 1
+
+/*************************** FUNCTIONS ***************************/
+
+/* Define to 1 if you have the `calloc' function. */
+#define HAVE_CALLOC 1
+
+/* Define to 1 if you have the `exit' function. */
+#define HAVE_EXIT 1
+
+/* Define to 1 if you have the `fprintf' function. */
+#define HAVE_FPRINTF 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the `_snprintf' function. */
+/* #undef HAVE__SNPRINTF */
+
+/* Define to 1 if you have the `_snprintf_s' function. */
+/* #undef HAVE__SNPRINTF_S */
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `_vsnprintf' function. */
+/* #undef HAVE__VSNPRINTF */
+
+/* Define to 1 if you have the `_vsnprintf_s' function. */
+/* #undef HAVE__VSNPRINTF_S */
+
+/* Define to 1 if you have the `free' function. */
+#define HAVE_FREE 1
+
+/* Define to 1 if you have the `longjmp' function. */
+#define HAVE_LONGJMP 1
+
+/* Define to 1 if you have the `siglongjmp' function. */
+#define HAVE_SIGLONGJMP 1
+
+/* Define to 1 if you have the `malloc' function. */
+#define HAVE_MALLOC 1
+
+/* Define to 1 if you have the `memcpy' function. */
+#define HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `memset' function. */
+#define HAVE_MEMSET 1
+
+/* Define to 1 if you have the `printf' function. */
+#define HAVE_PRINTF 1
+
+/* Define to 1 if you have the `setjmp' function. */
+#define HAVE_SETJMP 1
+
+/* Define to 1 if you have the `signal' function. */
+#define HAVE_SIGNAL 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the `strcmp' function. */
+#define HAVE_STRCMP 1
+
+/* Define to 1 if you have the `strcpy' function. */
+/* #undef HAVE_STRCPY */
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `strsignal' function. */
+#define HAVE_STRSIGNAL 1
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#define HAVE_CLOCK_GETTIME 1
+
+/**************************** OPTIONS ****************************/
+
+/* Check if we have TLS support with GCC */
+#define HAVE_GCC_THREAD_LOCAL_STORAGE 1
+
+/* Check if we have TLS support with MSVC */
+/* #undef HAVE_MSVC_THREAD_LOCAL_STORAGE */
+
+/* Check if we have CLOCK_REALTIME for clock_gettime() */
+#define HAVE_CLOCK_GETTIME_REALTIME 1
+
+/*************************** ENDIAN *****************************/
+
+#define WORDS_SIZEOF_VOID_P 8
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+/* #undef WORDS_BIGENDIAN */
diff --git a/tests/cmocka-1.1.0/build/doc/CMakeFiles/CMakeDirectoryInformation.cmake b/tests/cmocka-1.1.0/build/doc/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..71cbe6c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/doc/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/anton/programs/libfort/tests/cmocka-1.1.0")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/tests/cmocka-1.1.0/build/doc/CMakeFiles/progress.marks b/tests/cmocka-1.1.0/build/doc/CMakeFiles/progress.marks
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/doc/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+0
diff --git a/tests/cmocka-1.1.0/build/doc/Makefile b/tests/cmocka-1.1.0/build/doc/Makefile
new file mode 100644
index 0000000..0646667
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/doc/Makefile
@@ -0,0 +1,206 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"headers\" \"pkgconfig\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target package
+package: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package_source
+package_source:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+ /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles /home/anton/programs/libfort/tests/cmocka-1.1.0/build/doc/CMakeFiles/progress.marks
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 doc/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 doc/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 doc/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 doc/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... install/strip"
+ @echo "... install/local"
+ @echo "... install"
+ @echo "... list_install_components"
+ @echo "... package"
+ @echo "... rebuild_cache"
+ @echo "... package_source"
+ @echo "... edit_cache"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/doc/cmake_install.cmake b/tests/cmocka-1.1.0/build/doc/cmake_install.cmake
new file mode 100644
index 0000000..b87c868
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/doc/cmake_install.cmake
@@ -0,0 +1,34 @@
+# Install script for directory: /home/anton/programs/libfort/tests/cmocka-1.1.0/doc
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/CMakeDirectoryInformation.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..71cbe6c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/anton/programs/libfort/tests/cmocka-1.1.0")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/C.includecache
new file mode 100644
index 0000000..e91ffd3
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/C.includecache
@@ -0,0 +1,32 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c
+config.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/config.h
+malloc.h
+-
+sys/types.h
+-
+stdlib.h
+-
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+
+config.h
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..2d69049
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o
new file mode 100644
index 0000000..9403d03
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o
new file mode 100644
index 0000000..1599aca
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/build.make
new file mode 100644
index 0000000..a0fbdd1
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/allocate_module_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/allocate_module_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/allocate_module_test.dir/flags.make
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o: example/CMakeFiles/allocate_module_test.dir/flags.make
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o: ../example/allocate_module.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/allocate_module_test.dir/allocate_module.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/allocate_module_test.dir/allocate_module.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c > CMakeFiles/allocate_module_test.dir/allocate_module.c.i
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/allocate_module_test.dir/allocate_module.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c -o CMakeFiles/allocate_module_test.dir/allocate_module.c.s
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.requires:
+
+.PHONY : example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.requires
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.provides: example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.requires
+ $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.provides.build
+.PHONY : example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.provides
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.provides.build: example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o
+
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o: example/CMakeFiles/allocate_module_test.dir/flags.make
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o: ../example/allocate_module_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/allocate_module_test.dir/allocate_module_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c > CMakeFiles/allocate_module_test.dir/allocate_module_test.c.i
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/allocate_module_test.dir/allocate_module_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c -o CMakeFiles/allocate_module_test.dir/allocate_module_test.c.s
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.requires
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.provides: example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.provides.build
+.PHONY : example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.provides
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.provides.build: example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o
+
+
+# Object files for target allocate_module_test
+allocate_module_test_OBJECTS = \
+"CMakeFiles/allocate_module_test.dir/allocate_module.c.o" \
+"CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o"
+
+# External object files for target allocate_module_test
+allocate_module_test_EXTERNAL_OBJECTS =
+
+example/allocate_module_test: example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o
+example/allocate_module_test: example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o
+example/allocate_module_test: example/CMakeFiles/allocate_module_test.dir/build.make
+example/allocate_module_test: src/libcmocka.so.0.4.0
+example/allocate_module_test: example/CMakeFiles/allocate_module_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable allocate_module_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/allocate_module_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/allocate_module_test.dir/build: example/allocate_module_test
+
+.PHONY : example/CMakeFiles/allocate_module_test.dir/build
+
+example/CMakeFiles/allocate_module_test.dir/requires: example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o.requires
+example/CMakeFiles/allocate_module_test.dir/requires: example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o.requires
+
+.PHONY : example/CMakeFiles/allocate_module_test.dir/requires
+
+example/CMakeFiles/allocate_module_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/allocate_module_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/allocate_module_test.dir/clean
+
+example/CMakeFiles/allocate_module_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/allocate_module_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..c378486
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/allocate_module_test.dir/allocate_module.c.o"
+ "CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o"
+ "allocate_module_test.pdb"
+ "allocate_module_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/allocate_module_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/depend.internal
new file mode 100644
index 0000000..5de7fd5
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/depend.internal
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module.c
+ config.h
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/allocate_module_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/depend.make
new file mode 100644
index 0000000..ed66a3d
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/depend.make
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o: ../example/allocate_module.c
+example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o: config.h
+
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o: ../include/cmocka.h
+example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o: ../example/allocate_module_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/flags.make
new file mode 100644
index 0000000..4eea1eb
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/flags.make
@@ -0,0 +1,12 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
+# Custom defines: example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o_DEFINES = UNIT_TESTING=1
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/link.txt
new file mode 100644
index 0000000..e150b5f
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/allocate_module_test.dir/allocate_module.c.o CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o -o allocate_module_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/progress.make
new file mode 100644
index 0000000..6a9dc74
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/allocate_module_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+CMAKE_PROGRESS_3 = 3
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/C.includecache
new file mode 100644
index 0000000..3a4fccd
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/C.includecache
@@ -0,0 +1,30 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c
+string.h
+-
+assert_macro.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+assert_macro.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.h
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..60b8251
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o
new file mode 100644
index 0000000..14b751f
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o
new file mode 100644
index 0000000..1cb53cd
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/build.make
new file mode 100644
index 0000000..9eb309c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/assert_macro_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/assert_macro_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/assert_macro_test.dir/flags.make
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o: example/CMakeFiles/assert_macro_test.dir/flags.make
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o: ../example/assert_macro.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/assert_macro_test.dir/assert_macro.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/assert_macro_test.dir/assert_macro.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c > CMakeFiles/assert_macro_test.dir/assert_macro.c.i
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/assert_macro_test.dir/assert_macro.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c -o CMakeFiles/assert_macro_test.dir/assert_macro.c.s
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.requires:
+
+.PHONY : example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.requires
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.provides: example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.requires
+ $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.provides.build
+.PHONY : example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.provides
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.provides.build: example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o
+
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o: example/CMakeFiles/assert_macro_test.dir/flags.make
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o: ../example/assert_macro_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/assert_macro_test.dir/assert_macro_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c > CMakeFiles/assert_macro_test.dir/assert_macro_test.c.i
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/assert_macro_test.dir/assert_macro_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c -o CMakeFiles/assert_macro_test.dir/assert_macro_test.c.s
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.requires
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.provides: example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.provides.build
+.PHONY : example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.provides
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.provides.build: example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o
+
+
+# Object files for target assert_macro_test
+assert_macro_test_OBJECTS = \
+"CMakeFiles/assert_macro_test.dir/assert_macro.c.o" \
+"CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o"
+
+# External object files for target assert_macro_test
+assert_macro_test_EXTERNAL_OBJECTS =
+
+example/assert_macro_test: example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o
+example/assert_macro_test: example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o
+example/assert_macro_test: example/CMakeFiles/assert_macro_test.dir/build.make
+example/assert_macro_test: src/libcmocka.so.0.4.0
+example/assert_macro_test: example/CMakeFiles/assert_macro_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable assert_macro_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/assert_macro_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/assert_macro_test.dir/build: example/assert_macro_test
+
+.PHONY : example/CMakeFiles/assert_macro_test.dir/build
+
+example/CMakeFiles/assert_macro_test.dir/requires: example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o.requires
+example/CMakeFiles/assert_macro_test.dir/requires: example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o.requires
+
+.PHONY : example/CMakeFiles/assert_macro_test.dir/requires
+
+example/CMakeFiles/assert_macro_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/assert_macro_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/assert_macro_test.dir/clean
+
+example/CMakeFiles/assert_macro_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/assert_macro_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..c4652ac
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/assert_macro_test.dir/assert_macro.c.o"
+ "CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o"
+ "assert_macro_test.pdb"
+ "assert_macro_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/assert_macro_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/depend.internal
new file mode 100644
index 0000000..16737b5
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/depend.internal
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.c
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.h
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_macro_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/depend.make
new file mode 100644
index 0000000..4f554b5
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/depend.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o: ../example/assert_macro.c
+example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o: ../example/assert_macro.h
+
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o: ../include/cmocka.h
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o: ../example/assert_macro.h
+example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o: ../example/assert_macro_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/flags.make
new file mode 100644
index 0000000..428ebed
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/link.txt
new file mode 100644
index 0000000..1d852c1
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/assert_macro_test.dir/assert_macro.c.o CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o -o assert_macro_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/progress.make
new file mode 100644
index 0000000..2088a4d
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_macro_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 4
+CMAKE_PROGRESS_2 = 5
+CMAKE_PROGRESS_3 = 6
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/C.includecache
new file mode 100644
index 0000000..d65489c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/C.includecache
@@ -0,0 +1,30 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c
+assert.h
+-
+assert_module.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+assert_module.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.h
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..92fe25e
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module.c.o
new file mode 100644
index 0000000..8c848aa
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o
new file mode 100644
index 0000000..4c26a73
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/build.make
new file mode 100644
index 0000000..2a19cb1
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/assert_module_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/assert_module_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/assert_module_test.dir/flags.make
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o: example/CMakeFiles/assert_module_test.dir/flags.make
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o: ../example/assert_module.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/assert_module_test.dir/assert_module.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/assert_module_test.dir/assert_module.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/assert_module_test.dir/assert_module.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c > CMakeFiles/assert_module_test.dir/assert_module.c.i
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/assert_module_test.dir/assert_module.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c -o CMakeFiles/assert_module_test.dir/assert_module.c.s
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o.requires:
+
+.PHONY : example/CMakeFiles/assert_module_test.dir/assert_module.c.o.requires
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o.provides: example/CMakeFiles/assert_module_test.dir/assert_module.c.o.requires
+ $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module.c.o.provides.build
+.PHONY : example/CMakeFiles/assert_module_test.dir/assert_module.c.o.provides
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o.provides.build: example/CMakeFiles/assert_module_test.dir/assert_module.c.o
+
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o: example/CMakeFiles/assert_module_test.dir/flags.make
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o: ../example/assert_module_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/assert_module_test.dir/assert_module_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/assert_module_test.dir/assert_module_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c > CMakeFiles/assert_module_test.dir/assert_module_test.c.i
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/assert_module_test.dir/assert_module_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c -o CMakeFiles/assert_module_test.dir/assert_module_test.c.s
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.requires
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.provides: example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.provides.build
+.PHONY : example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.provides
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.provides.build: example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o
+
+
+# Object files for target assert_module_test
+assert_module_test_OBJECTS = \
+"CMakeFiles/assert_module_test.dir/assert_module.c.o" \
+"CMakeFiles/assert_module_test.dir/assert_module_test.c.o"
+
+# External object files for target assert_module_test
+assert_module_test_EXTERNAL_OBJECTS =
+
+example/assert_module_test: example/CMakeFiles/assert_module_test.dir/assert_module.c.o
+example/assert_module_test: example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o
+example/assert_module_test: example/CMakeFiles/assert_module_test.dir/build.make
+example/assert_module_test: src/libcmocka.so.0.4.0
+example/assert_module_test: example/CMakeFiles/assert_module_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable assert_module_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/assert_module_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/assert_module_test.dir/build: example/assert_module_test
+
+.PHONY : example/CMakeFiles/assert_module_test.dir/build
+
+example/CMakeFiles/assert_module_test.dir/requires: example/CMakeFiles/assert_module_test.dir/assert_module.c.o.requires
+example/CMakeFiles/assert_module_test.dir/requires: example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o.requires
+
+.PHONY : example/CMakeFiles/assert_module_test.dir/requires
+
+example/CMakeFiles/assert_module_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/assert_module_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/assert_module_test.dir/clean
+
+example/CMakeFiles/assert_module_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/assert_module_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..4ee1745
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/assert_module_test.dir/assert_module.c.o"
+ "CMakeFiles/assert_module_test.dir/assert_module_test.c.o"
+ "assert_module_test.pdb"
+ "assert_module_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/assert_module_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/depend.internal
new file mode 100644
index 0000000..176bf16
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/depend.internal
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.c
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.h
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/assert_module_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/depend.make
new file mode 100644
index 0000000..20bc130
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/depend.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o: ../example/assert_module.c
+example/CMakeFiles/assert_module_test.dir/assert_module.c.o: ../example/assert_module.h
+
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o: ../include/cmocka.h
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o: ../example/assert_module.h
+example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o: ../example/assert_module_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/flags.make
new file mode 100644
index 0000000..d56a071
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/flags.make
@@ -0,0 +1,12 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
+# Custom defines: example/CMakeFiles/assert_module_test.dir/assert_module.c.o_DEFINES = UNIT_TESTING=1
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/link.txt
new file mode 100644
index 0000000..b199869
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/assert_module_test.dir/assert_module.c.o CMakeFiles/assert_module_test.dir/assert_module_test.c.o -o assert_module_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/progress.make
new file mode 100644
index 0000000..cd5d6f7
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/assert_module_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 7
+CMAKE_PROGRESS_2 = 8
+CMAKE_PROGRESS_3 = 9
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/C.includecache
new file mode 100644
index 0000000..5e9b2a3
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/C.includecache
@@ -0,0 +1,38 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c
+config.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/config.h
+assert.h
+-
+malloc.h
+-
+stdio.h
+-
+stdlib.h
+-
+string.h
+-
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/cmocka.h
+stdio.h
+-
+
+config.h
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..a3a8843
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/build.make
new file mode 100644
index 0000000..fec2e97
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/calculator_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/calculator_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/calculator_test.dir/flags.make
+
+example/CMakeFiles/calculator_test.dir/calculator.c.o: example/CMakeFiles/calculator_test.dir/flags.make
+example/CMakeFiles/calculator_test.dir/calculator.c.o: ../example/calculator.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/calculator_test.dir/calculator.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/calculator_test.dir/calculator.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c
+
+example/CMakeFiles/calculator_test.dir/calculator.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/calculator_test.dir/calculator.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c > CMakeFiles/calculator_test.dir/calculator.c.i
+
+example/CMakeFiles/calculator_test.dir/calculator.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/calculator_test.dir/calculator.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) -DUNIT_TESTING=1 $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c -o CMakeFiles/calculator_test.dir/calculator.c.s
+
+example/CMakeFiles/calculator_test.dir/calculator.c.o.requires:
+
+.PHONY : example/CMakeFiles/calculator_test.dir/calculator.c.o.requires
+
+example/CMakeFiles/calculator_test.dir/calculator.c.o.provides: example/CMakeFiles/calculator_test.dir/calculator.c.o.requires
+ $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator.c.o.provides.build
+.PHONY : example/CMakeFiles/calculator_test.dir/calculator.c.o.provides
+
+example/CMakeFiles/calculator_test.dir/calculator.c.o.provides.build: example/CMakeFiles/calculator_test.dir/calculator.c.o
+
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o: example/CMakeFiles/calculator_test.dir/flags.make
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o: ../example/calculator_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/calculator_test.dir/calculator_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/calculator_test.dir/calculator_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/calculator_test.dir/calculator_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c > CMakeFiles/calculator_test.dir/calculator_test.c.i
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/calculator_test.dir/calculator_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c -o CMakeFiles/calculator_test.dir/calculator_test.c.s
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/calculator_test.dir/calculator_test.c.o.requires
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o.provides: example/CMakeFiles/calculator_test.dir/calculator_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator_test.c.o.provides.build
+.PHONY : example/CMakeFiles/calculator_test.dir/calculator_test.c.o.provides
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o.provides.build: example/CMakeFiles/calculator_test.dir/calculator_test.c.o
+
+
+# Object files for target calculator_test
+calculator_test_OBJECTS = \
+"CMakeFiles/calculator_test.dir/calculator.c.o" \
+"CMakeFiles/calculator_test.dir/calculator_test.c.o"
+
+# External object files for target calculator_test
+calculator_test_EXTERNAL_OBJECTS =
+
+example/calculator_test: example/CMakeFiles/calculator_test.dir/calculator.c.o
+example/calculator_test: example/CMakeFiles/calculator_test.dir/calculator_test.c.o
+example/calculator_test: example/CMakeFiles/calculator_test.dir/build.make
+example/calculator_test: src/libcmocka.so.0.4.0
+example/calculator_test: example/CMakeFiles/calculator_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable calculator_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/calculator_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/calculator_test.dir/build: example/calculator_test
+
+.PHONY : example/CMakeFiles/calculator_test.dir/build
+
+example/CMakeFiles/calculator_test.dir/requires: example/CMakeFiles/calculator_test.dir/calculator.c.o.requires
+example/CMakeFiles/calculator_test.dir/requires: example/CMakeFiles/calculator_test.dir/calculator_test.c.o.requires
+
+.PHONY : example/CMakeFiles/calculator_test.dir/requires
+
+example/CMakeFiles/calculator_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/calculator_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/calculator_test.dir/clean
+
+example/CMakeFiles/calculator_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/calculator_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator.c.o
new file mode 100644
index 0000000..60a60dc
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator_test.c.o
new file mode 100644
index 0000000..c619dff
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/calculator_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..7f29bca
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/calculator_test.dir/calculator.c.o"
+ "CMakeFiles/calculator_test.dir/calculator_test.c.o"
+ "calculator_test.pdb"
+ "calculator_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/calculator_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/depend.internal
new file mode 100644
index 0000000..f2fcd43
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/depend.internal
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/calculator_test.dir/calculator.c.o
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator.c
+ config.h
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/calculator_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/depend.make
new file mode 100644
index 0000000..a1d2664
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/depend.make
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/calculator_test.dir/calculator.c.o: ../example/calculator.c
+example/CMakeFiles/calculator_test.dir/calculator.c.o: config.h
+
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o: ../include/cmocka.h
+example/CMakeFiles/calculator_test.dir/calculator_test.c.o: ../example/calculator_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/flags.make
new file mode 100644
index 0000000..54f95f2
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/flags.make
@@ -0,0 +1,12 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
+# Custom defines: example/CMakeFiles/calculator_test.dir/calculator.c.o_DEFINES = UNIT_TESTING=1
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/link.txt
new file mode 100644
index 0000000..bfbae59
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/calculator_test.dir/calculator.c.o CMakeFiles/calculator_test.dir/calculator_test.c.o -o calculator_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/progress.make
new file mode 100644
index 0000000..4aba123
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/calculator_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 10
+CMAKE_PROGRESS_2 = 11
+CMAKE_PROGRESS_3 = 12
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/C.includecache
new file mode 100644
index 0000000..0508134
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/C.includecache
@@ -0,0 +1,32 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../example/database.h
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c
+stddef.h
+-
+stdio.h
+-
+database.h
+-
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+database.h
+-
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..8818996
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/build.make
new file mode 100644
index 0000000..db71584
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/customer_database_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/customer_database_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/customer_database_test.dir/flags.make
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o: example/CMakeFiles/customer_database_test.dir/flags.make
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o: ../example/customer_database.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/customer_database_test.dir/customer_database.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/customer_database_test.dir/customer_database.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/customer_database_test.dir/customer_database.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c > CMakeFiles/customer_database_test.dir/customer_database.c.i
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/customer_database_test.dir/customer_database.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c -o CMakeFiles/customer_database_test.dir/customer_database.c.s
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o.requires:
+
+.PHONY : example/CMakeFiles/customer_database_test.dir/customer_database.c.o.requires
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o.provides: example/CMakeFiles/customer_database_test.dir/customer_database.c.o.requires
+ $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database.c.o.provides.build
+.PHONY : example/CMakeFiles/customer_database_test.dir/customer_database.c.o.provides
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o.provides.build: example/CMakeFiles/customer_database_test.dir/customer_database.c.o
+
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o: example/CMakeFiles/customer_database_test.dir/flags.make
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o: ../example/customer_database_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/customer_database_test.dir/customer_database_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/customer_database_test.dir/customer_database_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c > CMakeFiles/customer_database_test.dir/customer_database_test.c.i
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/customer_database_test.dir/customer_database_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c -o CMakeFiles/customer_database_test.dir/customer_database_test.c.s
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.requires
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.provides: example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.provides.build
+.PHONY : example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.provides
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.provides.build: example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o
+
+
+# Object files for target customer_database_test
+customer_database_test_OBJECTS = \
+"CMakeFiles/customer_database_test.dir/customer_database.c.o" \
+"CMakeFiles/customer_database_test.dir/customer_database_test.c.o"
+
+# External object files for target customer_database_test
+customer_database_test_EXTERNAL_OBJECTS =
+
+example/customer_database_test: example/CMakeFiles/customer_database_test.dir/customer_database.c.o
+example/customer_database_test: example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o
+example/customer_database_test: example/CMakeFiles/customer_database_test.dir/build.make
+example/customer_database_test: src/libcmocka.so.0.4.0
+example/customer_database_test: example/CMakeFiles/customer_database_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable customer_database_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/customer_database_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/customer_database_test.dir/build: example/customer_database_test
+
+.PHONY : example/CMakeFiles/customer_database_test.dir/build
+
+example/CMakeFiles/customer_database_test.dir/requires: example/CMakeFiles/customer_database_test.dir/customer_database.c.o.requires
+example/CMakeFiles/customer_database_test.dir/requires: example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o.requires
+
+.PHONY : example/CMakeFiles/customer_database_test.dir/requires
+
+example/CMakeFiles/customer_database_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/customer_database_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/customer_database_test.dir/clean
+
+example/CMakeFiles/customer_database_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/customer_database_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..cd6e044
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/customer_database_test.dir/customer_database.c.o"
+ "CMakeFiles/customer_database_test.dir/customer_database_test.c.o"
+ "customer_database_test.pdb"
+ "customer_database_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/customer_database_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database.c.o
new file mode 100644
index 0000000..c34a169
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o
new file mode 100644
index 0000000..2548451
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/depend.internal
new file mode 100644
index 0000000..a1a2f43
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/depend.internal
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o
+ ../example/database.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database.c
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o
+ ../example/database.h
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/customer_database_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/depend.make
new file mode 100644
index 0000000..779ae94
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/depend.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o: ../example/database.h
+example/CMakeFiles/customer_database_test.dir/customer_database.c.o: ../example/customer_database.c
+
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o: ../example/database.h
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o: ../include/cmocka.h
+example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o: ../example/customer_database_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/flags.make
new file mode 100644
index 0000000..428ebed
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/link.txt
new file mode 100644
index 0000000..d6fb34b
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/customer_database_test.dir/customer_database.c.o CMakeFiles/customer_database_test.dir/customer_database_test.c.o -o customer_database_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/progress.make
new file mode 100644
index 0000000..06dbb11
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/customer_database_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 15
+CMAKE_PROGRESS_2 = 16
+CMAKE_PROGRESS_3 = 17
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/C.includecache
new file mode 100644
index 0000000..8000afe
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/C.includecache
@@ -0,0 +1,36 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c
+stddef.h
+-
+stdlib.h
+-
+string.h
+-
+key_value.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+string.h
+-
+cmocka.h
+-
+key_value.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.h
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..86df3f3
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/build.make
new file mode 100644
index 0000000..231083c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/key_value_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/key_value_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/key_value_test.dir/flags.make
+
+example/CMakeFiles/key_value_test.dir/key_value.c.o: example/CMakeFiles/key_value_test.dir/flags.make
+example/CMakeFiles/key_value_test.dir/key_value.c.o: ../example/key_value.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/key_value_test.dir/key_value.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/key_value_test.dir/key_value.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c
+
+example/CMakeFiles/key_value_test.dir/key_value.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/key_value_test.dir/key_value.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c > CMakeFiles/key_value_test.dir/key_value.c.i
+
+example/CMakeFiles/key_value_test.dir/key_value.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/key_value_test.dir/key_value.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c -o CMakeFiles/key_value_test.dir/key_value.c.s
+
+example/CMakeFiles/key_value_test.dir/key_value.c.o.requires:
+
+.PHONY : example/CMakeFiles/key_value_test.dir/key_value.c.o.requires
+
+example/CMakeFiles/key_value_test.dir/key_value.c.o.provides: example/CMakeFiles/key_value_test.dir/key_value.c.o.requires
+ $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value.c.o.provides.build
+.PHONY : example/CMakeFiles/key_value_test.dir/key_value.c.o.provides
+
+example/CMakeFiles/key_value_test.dir/key_value.c.o.provides.build: example/CMakeFiles/key_value_test.dir/key_value.c.o
+
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o: example/CMakeFiles/key_value_test.dir/flags.make
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o: ../example/key_value_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/key_value_test.dir/key_value_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/key_value_test.dir/key_value_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/key_value_test.dir/key_value_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c > CMakeFiles/key_value_test.dir/key_value_test.c.i
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/key_value_test.dir/key_value_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c -o CMakeFiles/key_value_test.dir/key_value_test.c.s
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/key_value_test.dir/key_value_test.c.o.requires
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o.provides: example/CMakeFiles/key_value_test.dir/key_value_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value_test.c.o.provides.build
+.PHONY : example/CMakeFiles/key_value_test.dir/key_value_test.c.o.provides
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o.provides.build: example/CMakeFiles/key_value_test.dir/key_value_test.c.o
+
+
+# Object files for target key_value_test
+key_value_test_OBJECTS = \
+"CMakeFiles/key_value_test.dir/key_value.c.o" \
+"CMakeFiles/key_value_test.dir/key_value_test.c.o"
+
+# External object files for target key_value_test
+key_value_test_EXTERNAL_OBJECTS =
+
+example/key_value_test: example/CMakeFiles/key_value_test.dir/key_value.c.o
+example/key_value_test: example/CMakeFiles/key_value_test.dir/key_value_test.c.o
+example/key_value_test: example/CMakeFiles/key_value_test.dir/build.make
+example/key_value_test: src/libcmocka.so.0.4.0
+example/key_value_test: example/CMakeFiles/key_value_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable key_value_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/key_value_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/key_value_test.dir/build: example/key_value_test
+
+.PHONY : example/CMakeFiles/key_value_test.dir/build
+
+example/CMakeFiles/key_value_test.dir/requires: example/CMakeFiles/key_value_test.dir/key_value.c.o.requires
+example/CMakeFiles/key_value_test.dir/requires: example/CMakeFiles/key_value_test.dir/key_value_test.c.o.requires
+
+.PHONY : example/CMakeFiles/key_value_test.dir/requires
+
+example/CMakeFiles/key_value_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/key_value_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/key_value_test.dir/clean
+
+example/CMakeFiles/key_value_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/key_value_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..0ee66a6
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/key_value_test.dir/key_value.c.o"
+ "CMakeFiles/key_value_test.dir/key_value_test.c.o"
+ "key_value_test.pdb"
+ "key_value_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/key_value_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/depend.internal
new file mode 100644
index 0000000..ef3214a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/depend.internal
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/key_value_test.dir/key_value.c.o
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.c
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.h
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/key_value_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/depend.make
new file mode 100644
index 0000000..c2477de
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/depend.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/key_value_test.dir/key_value.c.o: ../example/key_value.c
+example/CMakeFiles/key_value_test.dir/key_value.c.o: ../example/key_value.h
+
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o: ../include/cmocka.h
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o: ../example/key_value.h
+example/CMakeFiles/key_value_test.dir/key_value_test.c.o: ../example/key_value_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/flags.make
new file mode 100644
index 0000000..428ebed
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value.c.o
new file mode 100644
index 0000000..141b2dd
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value_test.c.o
new file mode 100644
index 0000000..bb9bce1
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/key_value_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/link.txt
new file mode 100644
index 0000000..dd1383a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/key_value_test.dir/key_value.c.o CMakeFiles/key_value_test.dir/key_value_test.c.o -o key_value_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/progress.make
new file mode 100644
index 0000000..745453a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/key_value_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 18
+CMAKE_PROGRESS_2 = 19
+CMAKE_PROGRESS_3 = 20
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/C.includecache
new file mode 100644
index 0000000..dadcb83
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/C.includecache
@@ -0,0 +1,28 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../example/database.h
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c
+database.h
+-
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+database.h
+-
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..6e259e8
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/DependInfo.cmake
@@ -0,0 +1,26 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/build.make
new file mode 100644
index 0000000..c62d987
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/product_database_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/product_database_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/product_database_test.dir/flags.make
+
+example/CMakeFiles/product_database_test.dir/product_database.c.o: example/CMakeFiles/product_database_test.dir/flags.make
+example/CMakeFiles/product_database_test.dir/product_database.c.o: ../example/product_database.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/product_database_test.dir/product_database.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/product_database_test.dir/product_database.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c
+
+example/CMakeFiles/product_database_test.dir/product_database.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/product_database_test.dir/product_database.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c > CMakeFiles/product_database_test.dir/product_database.c.i
+
+example/CMakeFiles/product_database_test.dir/product_database.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/product_database_test.dir/product_database.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c -o CMakeFiles/product_database_test.dir/product_database.c.s
+
+example/CMakeFiles/product_database_test.dir/product_database.c.o.requires:
+
+.PHONY : example/CMakeFiles/product_database_test.dir/product_database.c.o.requires
+
+example/CMakeFiles/product_database_test.dir/product_database.c.o.provides: example/CMakeFiles/product_database_test.dir/product_database.c.o.requires
+ $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database.c.o.provides.build
+.PHONY : example/CMakeFiles/product_database_test.dir/product_database.c.o.provides
+
+example/CMakeFiles/product_database_test.dir/product_database.c.o.provides.build: example/CMakeFiles/product_database_test.dir/product_database.c.o
+
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o: example/CMakeFiles/product_database_test.dir/flags.make
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o: ../example/product_database_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/CMakeFiles/product_database_test.dir/product_database_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/product_database_test.dir/product_database_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/product_database_test.dir/product_database_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c > CMakeFiles/product_database_test.dir/product_database_test.c.i
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/product_database_test.dir/product_database_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c -o CMakeFiles/product_database_test.dir/product_database_test.c.s
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/product_database_test.dir/product_database_test.c.o.requires
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o.provides: example/CMakeFiles/product_database_test.dir/product_database_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database_test.c.o.provides.build
+.PHONY : example/CMakeFiles/product_database_test.dir/product_database_test.c.o.provides
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o.provides.build: example/CMakeFiles/product_database_test.dir/product_database_test.c.o
+
+
+# Object files for target product_database_test
+product_database_test_OBJECTS = \
+"CMakeFiles/product_database_test.dir/product_database.c.o" \
+"CMakeFiles/product_database_test.dir/product_database_test.c.o"
+
+# External object files for target product_database_test
+product_database_test_EXTERNAL_OBJECTS =
+
+example/product_database_test: example/CMakeFiles/product_database_test.dir/product_database.c.o
+example/product_database_test: example/CMakeFiles/product_database_test.dir/product_database_test.c.o
+example/product_database_test: example/CMakeFiles/product_database_test.dir/build.make
+example/product_database_test: src/libcmocka.so.0.4.0
+example/product_database_test: example/CMakeFiles/product_database_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable product_database_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/product_database_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/product_database_test.dir/build: example/product_database_test
+
+.PHONY : example/CMakeFiles/product_database_test.dir/build
+
+example/CMakeFiles/product_database_test.dir/requires: example/CMakeFiles/product_database_test.dir/product_database.c.o.requires
+example/CMakeFiles/product_database_test.dir/requires: example/CMakeFiles/product_database_test.dir/product_database_test.c.o.requires
+
+.PHONY : example/CMakeFiles/product_database_test.dir/requires
+
+example/CMakeFiles/product_database_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/product_database_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/product_database_test.dir/clean
+
+example/CMakeFiles/product_database_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/product_database_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..4d5d055
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/product_database_test.dir/product_database.c.o"
+ "CMakeFiles/product_database_test.dir/product_database_test.c.o"
+ "product_database_test.pdb"
+ "product_database_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/product_database_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/depend.internal
new file mode 100644
index 0000000..e61f9af
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/depend.internal
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/product_database_test.dir/product_database.c.o
+ ../example/database.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database.c
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o
+ ../example/database.h
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/product_database_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/depend.make
new file mode 100644
index 0000000..07712e7
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/depend.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/product_database_test.dir/product_database.c.o: ../example/database.h
+example/CMakeFiles/product_database_test.dir/product_database.c.o: ../example/product_database.c
+
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o: ../example/database.h
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o: ../include/cmocka.h
+example/CMakeFiles/product_database_test.dir/product_database_test.c.o: ../example/product_database_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/flags.make
new file mode 100644
index 0000000..428ebed
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/link.txt
new file mode 100644
index 0000000..9570c51
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/product_database_test.dir/product_database.c.o CMakeFiles/product_database_test.dir/product_database_test.c.o -o product_database_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database.c.o
new file mode 100644
index 0000000..f2cd1aa
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database_test.c.o
new file mode 100644
index 0000000..97e5dcb
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/product_database_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/progress.make
new file mode 100644
index 0000000..783e557
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/product_database_test.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 21
+CMAKE_PROGRESS_2 = 22
+CMAKE_PROGRESS_3 = 23
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/progress.marks b/tests/cmocka-1.1.0/build/example/CMakeFiles/progress.marks
new file mode 100644
index 0000000..9902f17
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+28
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/C.includecache b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/C.includecache
new file mode 100644
index 0000000..5ab6a16
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/C.includecache
@@ -0,0 +1,20 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/DependInfo.cmake
new file mode 100644
index 0000000..4006dae
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/DependInfo.cmake
@@ -0,0 +1,25 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/simple_test.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example"
+ "../example"
+ "."
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/build.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/build.make
new file mode 100644
index 0000000..603822c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/build.make
@@ -0,0 +1,114 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/CMakeFiles/simple_test.dir/depend.make
+
+# Include the progress variables for this target.
+include example/CMakeFiles/simple_test.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/CMakeFiles/simple_test.dir/flags.make
+
+example/CMakeFiles/simple_test.dir/simple_test.c.o: example/CMakeFiles/simple_test.dir/flags.make
+example/CMakeFiles/simple_test.dir/simple_test.c.o: ../example/simple_test.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/CMakeFiles/simple_test.dir/simple_test.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/simple_test.dir/simple_test.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c
+
+example/CMakeFiles/simple_test.dir/simple_test.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/simple_test.dir/simple_test.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c > CMakeFiles/simple_test.dir/simple_test.c.i
+
+example/CMakeFiles/simple_test.dir/simple_test.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/simple_test.dir/simple_test.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c -o CMakeFiles/simple_test.dir/simple_test.c.s
+
+example/CMakeFiles/simple_test.dir/simple_test.c.o.requires:
+
+.PHONY : example/CMakeFiles/simple_test.dir/simple_test.c.o.requires
+
+example/CMakeFiles/simple_test.dir/simple_test.c.o.provides: example/CMakeFiles/simple_test.dir/simple_test.c.o.requires
+ $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/simple_test.c.o.provides.build
+.PHONY : example/CMakeFiles/simple_test.dir/simple_test.c.o.provides
+
+example/CMakeFiles/simple_test.dir/simple_test.c.o.provides.build: example/CMakeFiles/simple_test.dir/simple_test.c.o
+
+
+# Object files for target simple_test
+simple_test_OBJECTS = \
+"CMakeFiles/simple_test.dir/simple_test.c.o"
+
+# External object files for target simple_test
+simple_test_EXTERNAL_OBJECTS =
+
+example/simple_test: example/CMakeFiles/simple_test.dir/simple_test.c.o
+example/simple_test: example/CMakeFiles/simple_test.dir/build.make
+example/simple_test: src/libcmocka.so.0.4.0
+example/simple_test: example/CMakeFiles/simple_test.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C executable simple_test"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/simple_test.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/CMakeFiles/simple_test.dir/build: example/simple_test
+
+.PHONY : example/CMakeFiles/simple_test.dir/build
+
+example/CMakeFiles/simple_test.dir/requires: example/CMakeFiles/simple_test.dir/simple_test.c.o.requires
+
+.PHONY : example/CMakeFiles/simple_test.dir/requires
+
+example/CMakeFiles/simple_test.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example && $(CMAKE_COMMAND) -P CMakeFiles/simple_test.dir/cmake_clean.cmake
+.PHONY : example/CMakeFiles/simple_test.dir/clean
+
+example/CMakeFiles/simple_test.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/CMakeFiles/simple_test.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/cmake_clean.cmake
new file mode 100644
index 0000000..ffdb139
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/simple_test.dir/simple_test.c.o"
+ "simple_test.pdb"
+ "simple_test"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/simple_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/depend.internal b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/depend.internal
new file mode 100644
index 0000000..aab47e7
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/depend.internal
@@ -0,0 +1,6 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/simple_test.dir/simple_test.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/simple_test.c
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/depend.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/depend.make
new file mode 100644
index 0000000..c2282bc
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/depend.make
@@ -0,0 +1,6 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/CMakeFiles/simple_test.dir/simple_test.c.o: ../include/cmocka.h
+example/CMakeFiles/simple_test.dir/simple_test.c.o: ../example/simple_test.c
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/flags.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/flags.make
new file mode 100644
index 0000000..428ebed
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/link.txt b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/link.txt
new file mode 100644
index 0000000..14369d5
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE CMakeFiles/simple_test.dir/simple_test.c.o -o simple_test -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/progress.make b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/progress.make
new file mode 100644
index 0000000..59fdd58
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 24
+CMAKE_PROGRESS_2 = 25
+
diff --git a/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/simple_test.c.o b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/simple_test.c.o
new file mode 100644
index 0000000..41acb13
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/CMakeFiles/simple_test.dir/simple_test.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/Makefile b/tests/cmocka-1.1.0/build/example/Makefile
new file mode 100644
index 0000000..d444333
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/Makefile
@@ -0,0 +1,784 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+
+.PHONY : install/local/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+ /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+
+.PHONY : install/strip/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"headers\" \"pkgconfig\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target package_source
+package_source:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target package
+package: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/CMakeFiles/progress.marks
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+example/CMakeFiles/allocate_module_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/allocate_module_test.dir/rule
+.PHONY : example/CMakeFiles/allocate_module_test.dir/rule
+
+# Convenience name for target.
+allocate_module_test: example/CMakeFiles/allocate_module_test.dir/rule
+
+.PHONY : allocate_module_test
+
+# fast build rule for target.
+allocate_module_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/build
+.PHONY : allocate_module_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/simple_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/simple_test.dir/rule
+.PHONY : example/CMakeFiles/simple_test.dir/rule
+
+# Convenience name for target.
+simple_test: example/CMakeFiles/simple_test.dir/rule
+
+.PHONY : simple_test
+
+# fast build rule for target.
+simple_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/build
+.PHONY : simple_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/key_value_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/key_value_test.dir/rule
+.PHONY : example/CMakeFiles/key_value_test.dir/rule
+
+# Convenience name for target.
+key_value_test: example/CMakeFiles/key_value_test.dir/rule
+
+.PHONY : key_value_test
+
+# fast build rule for target.
+key_value_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/build
+.PHONY : key_value_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/calculator_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/calculator_test.dir/rule
+.PHONY : example/CMakeFiles/calculator_test.dir/rule
+
+# Convenience name for target.
+calculator_test: example/CMakeFiles/calculator_test.dir/rule
+
+.PHONY : calculator_test
+
+# fast build rule for target.
+calculator_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/build
+.PHONY : calculator_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/assert_macro_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/assert_macro_test.dir/rule
+.PHONY : example/CMakeFiles/assert_macro_test.dir/rule
+
+# Convenience name for target.
+assert_macro_test: example/CMakeFiles/assert_macro_test.dir/rule
+
+.PHONY : assert_macro_test
+
+# fast build rule for target.
+assert_macro_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/build
+.PHONY : assert_macro_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/assert_module_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/assert_module_test.dir/rule
+.PHONY : example/CMakeFiles/assert_module_test.dir/rule
+
+# Convenience name for target.
+assert_module_test: example/CMakeFiles/assert_module_test.dir/rule
+
+.PHONY : assert_module_test
+
+# fast build rule for target.
+assert_module_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/build
+.PHONY : assert_module_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/customer_database_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/customer_database_test.dir/rule
+.PHONY : example/CMakeFiles/customer_database_test.dir/rule
+
+# Convenience name for target.
+customer_database_test: example/CMakeFiles/customer_database_test.dir/rule
+
+.PHONY : customer_database_test
+
+# fast build rule for target.
+customer_database_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/build
+.PHONY : customer_database_test/fast
+
+# Convenience name for target.
+example/CMakeFiles/product_database_test.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/CMakeFiles/product_database_test.dir/rule
+.PHONY : example/CMakeFiles/product_database_test.dir/rule
+
+# Convenience name for target.
+product_database_test: example/CMakeFiles/product_database_test.dir/rule
+
+.PHONY : product_database_test
+
+# fast build rule for target.
+product_database_test/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/build
+.PHONY : product_database_test/fast
+
+allocate_module.o: allocate_module.c.o
+
+.PHONY : allocate_module.o
+
+# target to build an object file
+allocate_module.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module.c.o
+.PHONY : allocate_module.c.o
+
+allocate_module.i: allocate_module.c.i
+
+.PHONY : allocate_module.i
+
+# target to preprocess a source file
+allocate_module.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module.c.i
+.PHONY : allocate_module.c.i
+
+allocate_module.s: allocate_module.c.s
+
+.PHONY : allocate_module.s
+
+# target to generate assembly for a file
+allocate_module.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module.c.s
+.PHONY : allocate_module.c.s
+
+allocate_module_test.o: allocate_module_test.c.o
+
+.PHONY : allocate_module_test.o
+
+# target to build an object file
+allocate_module_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.o
+.PHONY : allocate_module_test.c.o
+
+allocate_module_test.i: allocate_module_test.c.i
+
+.PHONY : allocate_module_test.i
+
+# target to preprocess a source file
+allocate_module_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.i
+.PHONY : allocate_module_test.c.i
+
+allocate_module_test.s: allocate_module_test.c.s
+
+.PHONY : allocate_module_test.s
+
+# target to generate assembly for a file
+allocate_module_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/allocate_module_test.dir/build.make example/CMakeFiles/allocate_module_test.dir/allocate_module_test.c.s
+.PHONY : allocate_module_test.c.s
+
+assert_macro.o: assert_macro.c.o
+
+.PHONY : assert_macro.o
+
+# target to build an object file
+assert_macro.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro.c.o
+.PHONY : assert_macro.c.o
+
+assert_macro.i: assert_macro.c.i
+
+.PHONY : assert_macro.i
+
+# target to preprocess a source file
+assert_macro.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro.c.i
+.PHONY : assert_macro.c.i
+
+assert_macro.s: assert_macro.c.s
+
+.PHONY : assert_macro.s
+
+# target to generate assembly for a file
+assert_macro.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro.c.s
+.PHONY : assert_macro.c.s
+
+assert_macro_test.o: assert_macro_test.c.o
+
+.PHONY : assert_macro_test.o
+
+# target to build an object file
+assert_macro_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.o
+.PHONY : assert_macro_test.c.o
+
+assert_macro_test.i: assert_macro_test.c.i
+
+.PHONY : assert_macro_test.i
+
+# target to preprocess a source file
+assert_macro_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.i
+.PHONY : assert_macro_test.c.i
+
+assert_macro_test.s: assert_macro_test.c.s
+
+.PHONY : assert_macro_test.s
+
+# target to generate assembly for a file
+assert_macro_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_macro_test.dir/build.make example/CMakeFiles/assert_macro_test.dir/assert_macro_test.c.s
+.PHONY : assert_macro_test.c.s
+
+assert_module.o: assert_module.c.o
+
+.PHONY : assert_module.o
+
+# target to build an object file
+assert_module.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module.c.o
+.PHONY : assert_module.c.o
+
+assert_module.i: assert_module.c.i
+
+.PHONY : assert_module.i
+
+# target to preprocess a source file
+assert_module.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module.c.i
+.PHONY : assert_module.c.i
+
+assert_module.s: assert_module.c.s
+
+.PHONY : assert_module.s
+
+# target to generate assembly for a file
+assert_module.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module.c.s
+.PHONY : assert_module.c.s
+
+assert_module_test.o: assert_module_test.c.o
+
+.PHONY : assert_module_test.o
+
+# target to build an object file
+assert_module_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module_test.c.o
+.PHONY : assert_module_test.c.o
+
+assert_module_test.i: assert_module_test.c.i
+
+.PHONY : assert_module_test.i
+
+# target to preprocess a source file
+assert_module_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module_test.c.i
+.PHONY : assert_module_test.c.i
+
+assert_module_test.s: assert_module_test.c.s
+
+.PHONY : assert_module_test.s
+
+# target to generate assembly for a file
+assert_module_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/assert_module_test.dir/build.make example/CMakeFiles/assert_module_test.dir/assert_module_test.c.s
+.PHONY : assert_module_test.c.s
+
+calculator.o: calculator.c.o
+
+.PHONY : calculator.o
+
+# target to build an object file
+calculator.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator.c.o
+.PHONY : calculator.c.o
+
+calculator.i: calculator.c.i
+
+.PHONY : calculator.i
+
+# target to preprocess a source file
+calculator.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator.c.i
+.PHONY : calculator.c.i
+
+calculator.s: calculator.c.s
+
+.PHONY : calculator.s
+
+# target to generate assembly for a file
+calculator.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator.c.s
+.PHONY : calculator.c.s
+
+calculator_test.o: calculator_test.c.o
+
+.PHONY : calculator_test.o
+
+# target to build an object file
+calculator_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator_test.c.o
+.PHONY : calculator_test.c.o
+
+calculator_test.i: calculator_test.c.i
+
+.PHONY : calculator_test.i
+
+# target to preprocess a source file
+calculator_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator_test.c.i
+.PHONY : calculator_test.c.i
+
+calculator_test.s: calculator_test.c.s
+
+.PHONY : calculator_test.s
+
+# target to generate assembly for a file
+calculator_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/calculator_test.dir/build.make example/CMakeFiles/calculator_test.dir/calculator_test.c.s
+.PHONY : calculator_test.c.s
+
+customer_database.o: customer_database.c.o
+
+.PHONY : customer_database.o
+
+# target to build an object file
+customer_database.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database.c.o
+.PHONY : customer_database.c.o
+
+customer_database.i: customer_database.c.i
+
+.PHONY : customer_database.i
+
+# target to preprocess a source file
+customer_database.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database.c.i
+.PHONY : customer_database.c.i
+
+customer_database.s: customer_database.c.s
+
+.PHONY : customer_database.s
+
+# target to generate assembly for a file
+customer_database.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database.c.s
+.PHONY : customer_database.c.s
+
+customer_database_test.o: customer_database_test.c.o
+
+.PHONY : customer_database_test.o
+
+# target to build an object file
+customer_database_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database_test.c.o
+.PHONY : customer_database_test.c.o
+
+customer_database_test.i: customer_database_test.c.i
+
+.PHONY : customer_database_test.i
+
+# target to preprocess a source file
+customer_database_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database_test.c.i
+.PHONY : customer_database_test.c.i
+
+customer_database_test.s: customer_database_test.c.s
+
+.PHONY : customer_database_test.s
+
+# target to generate assembly for a file
+customer_database_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/customer_database_test.dir/build.make example/CMakeFiles/customer_database_test.dir/customer_database_test.c.s
+.PHONY : customer_database_test.c.s
+
+key_value.o: key_value.c.o
+
+.PHONY : key_value.o
+
+# target to build an object file
+key_value.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value.c.o
+.PHONY : key_value.c.o
+
+key_value.i: key_value.c.i
+
+.PHONY : key_value.i
+
+# target to preprocess a source file
+key_value.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value.c.i
+.PHONY : key_value.c.i
+
+key_value.s: key_value.c.s
+
+.PHONY : key_value.s
+
+# target to generate assembly for a file
+key_value.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value.c.s
+.PHONY : key_value.c.s
+
+key_value_test.o: key_value_test.c.o
+
+.PHONY : key_value_test.o
+
+# target to build an object file
+key_value_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value_test.c.o
+.PHONY : key_value_test.c.o
+
+key_value_test.i: key_value_test.c.i
+
+.PHONY : key_value_test.i
+
+# target to preprocess a source file
+key_value_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value_test.c.i
+.PHONY : key_value_test.c.i
+
+key_value_test.s: key_value_test.c.s
+
+.PHONY : key_value_test.s
+
+# target to generate assembly for a file
+key_value_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/key_value_test.dir/build.make example/CMakeFiles/key_value_test.dir/key_value_test.c.s
+.PHONY : key_value_test.c.s
+
+product_database.o: product_database.c.o
+
+.PHONY : product_database.o
+
+# target to build an object file
+product_database.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database.c.o
+.PHONY : product_database.c.o
+
+product_database.i: product_database.c.i
+
+.PHONY : product_database.i
+
+# target to preprocess a source file
+product_database.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database.c.i
+.PHONY : product_database.c.i
+
+product_database.s: product_database.c.s
+
+.PHONY : product_database.s
+
+# target to generate assembly for a file
+product_database.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database.c.s
+.PHONY : product_database.c.s
+
+product_database_test.o: product_database_test.c.o
+
+.PHONY : product_database_test.o
+
+# target to build an object file
+product_database_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database_test.c.o
+.PHONY : product_database_test.c.o
+
+product_database_test.i: product_database_test.c.i
+
+.PHONY : product_database_test.i
+
+# target to preprocess a source file
+product_database_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database_test.c.i
+.PHONY : product_database_test.c.i
+
+product_database_test.s: product_database_test.c.s
+
+.PHONY : product_database_test.s
+
+# target to generate assembly for a file
+product_database_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/product_database_test.dir/build.make example/CMakeFiles/product_database_test.dir/product_database_test.c.s
+.PHONY : product_database_test.c.s
+
+simple_test.o: simple_test.c.o
+
+.PHONY : simple_test.o
+
+# target to build an object file
+simple_test.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/simple_test.c.o
+.PHONY : simple_test.c.o
+
+simple_test.i: simple_test.c.i
+
+.PHONY : simple_test.i
+
+# target to preprocess a source file
+simple_test.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/simple_test.c.i
+.PHONY : simple_test.c.i
+
+simple_test.s: simple_test.c.s
+
+.PHONY : simple_test.s
+
+# target to generate assembly for a file
+simple_test.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/CMakeFiles/simple_test.dir/build.make example/CMakeFiles/simple_test.dir/simple_test.c.s
+.PHONY : simple_test.c.s
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... install/local"
+ @echo "... rebuild_cache"
+ @echo "... edit_cache"
+ @echo "... allocate_module_test"
+ @echo "... simple_test"
+ @echo "... install/strip"
+ @echo "... list_install_components"
+ @echo "... key_value_test"
+ @echo "... calculator_test"
+ @echo "... assert_macro_test"
+ @echo "... package_source"
+ @echo "... assert_module_test"
+ @echo "... install"
+ @echo "... customer_database_test"
+ @echo "... product_database_test"
+ @echo "... package"
+ @echo "... allocate_module.o"
+ @echo "... allocate_module.i"
+ @echo "... allocate_module.s"
+ @echo "... allocate_module_test.o"
+ @echo "... allocate_module_test.i"
+ @echo "... allocate_module_test.s"
+ @echo "... assert_macro.o"
+ @echo "... assert_macro.i"
+ @echo "... assert_macro.s"
+ @echo "... assert_macro_test.o"
+ @echo "... assert_macro_test.i"
+ @echo "... assert_macro_test.s"
+ @echo "... assert_module.o"
+ @echo "... assert_module.i"
+ @echo "... assert_module.s"
+ @echo "... assert_module_test.o"
+ @echo "... assert_module_test.i"
+ @echo "... assert_module_test.s"
+ @echo "... calculator.o"
+ @echo "... calculator.i"
+ @echo "... calculator.s"
+ @echo "... calculator_test.o"
+ @echo "... calculator_test.i"
+ @echo "... calculator_test.s"
+ @echo "... customer_database.o"
+ @echo "... customer_database.i"
+ @echo "... customer_database.s"
+ @echo "... customer_database_test.o"
+ @echo "... customer_database_test.i"
+ @echo "... customer_database_test.s"
+ @echo "... key_value.o"
+ @echo "... key_value.i"
+ @echo "... key_value.s"
+ @echo "... key_value_test.o"
+ @echo "... key_value_test.i"
+ @echo "... key_value_test.s"
+ @echo "... product_database.o"
+ @echo "... product_database.i"
+ @echo "... product_database.s"
+ @echo "... product_database_test.o"
+ @echo "... product_database_test.i"
+ @echo "... product_database_test.s"
+ @echo "... simple_test.o"
+ @echo "... simple_test.i"
+ @echo "... simple_test.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/example/allocate_module_test b/tests/cmocka-1.1.0/build/example/allocate_module_test
new file mode 100755
index 0000000..3039e92
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/allocate_module_test differ
diff --git a/tests/cmocka-1.1.0/build/example/assert_macro_test b/tests/cmocka-1.1.0/build/example/assert_macro_test
new file mode 100755
index 0000000..78869d4
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/assert_macro_test differ
diff --git a/tests/cmocka-1.1.0/build/example/assert_module_test b/tests/cmocka-1.1.0/build/example/assert_module_test
new file mode 100755
index 0000000..3b5f863
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/assert_module_test differ
diff --git a/tests/cmocka-1.1.0/build/example/calculator_test b/tests/cmocka-1.1.0/build/example/calculator_test
new file mode 100755
index 0000000..a57468a
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/calculator_test differ
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/CMakeDirectoryInformation.cmake b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..71cbe6c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/anton/programs/libfort/tests/cmocka-1.1.0")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/progress.marks b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/progress.marks
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+5
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/C.includecache b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/C.includecache
new file mode 100644
index 0000000..655182d
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/C.includecache
@@ -0,0 +1,58 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+stdio.h
+-
+errno.h
+-
+stdbool.h
+-
+string.h
+-
+chef.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c
+errno.h
+-
+stdbool.h
+-
+stdio.h
+-
+stdlib.h
+-
+string.h
+-
+stdarg.h
+-
+stddef.h
+-
+setjmp.h
+-
+cmocka.h
+-
+waiter_test_wrap.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.h
+chef.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.h
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.h
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/DependInfo.cmake
new file mode 100644
index 0000000..66c1f66
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/DependInfo.cmake
@@ -0,0 +1,27 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "example/chef_wrap"
+ "../example/chef_wrap"
+ "."
+ "../example"
+ "../include"
+ )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake"
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make
new file mode 100644
index 0000000..089d828
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make
@@ -0,0 +1,141 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.make
+
+# Include the progress variables for this target.
+include example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/flags.make
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/flags.make
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o: ../example/chef_wrap/waiter_test_wrap.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c > CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.i
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c -o CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.s
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.requires:
+
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.requires
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.provides: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.requires
+ $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.provides.build
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.provides
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.provides.build: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o
+
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/flags.make
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o: ../example/chef_wrap/chef.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/waiter_test_wrap.dir/chef.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/waiter_test_wrap.dir/chef.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c > CMakeFiles/waiter_test_wrap.dir/chef.c.i
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/waiter_test_wrap.dir/chef.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c -o CMakeFiles/waiter_test_wrap.dir/chef.c.s
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.requires:
+
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.requires
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.provides: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.requires
+ $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.provides.build
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.provides
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.provides.build: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o
+
+
+# Object files for target waiter_test_wrap
+waiter_test_wrap_OBJECTS = \
+"CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o" \
+"CMakeFiles/waiter_test_wrap.dir/chef.c.o"
+
+# External object files for target waiter_test_wrap
+waiter_test_wrap_EXTERNAL_OBJECTS =
+
+example/chef_wrap/waiter_test_wrap: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o
+example/chef_wrap/waiter_test_wrap: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o
+example/chef_wrap/waiter_test_wrap: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make
+example/chef_wrap/waiter_test_wrap: src/libcmocka.so.0.4.0
+example/chef_wrap/waiter_test_wrap: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable waiter_test_wrap"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/waiter_test_wrap.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build: example/chef_wrap/waiter_test_wrap
+
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/requires: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o.requires
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/requires: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o.requires
+
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/requires
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap && $(CMAKE_COMMAND) -P CMakeFiles/waiter_test_wrap.dir/cmake_clean.cmake
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/clean
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o
new file mode 100644
index 0000000..b50ae83
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/cmake_clean.cmake
new file mode 100644
index 0000000..6449e13
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o"
+ "CMakeFiles/waiter_test_wrap.dir/chef.c.o"
+ "waiter_test_wrap.pdb"
+ "waiter_test_wrap"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/waiter_test_wrap.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.internal b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.internal
new file mode 100644
index 0000000..db2ecc8
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.internal
@@ -0,0 +1,12 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.c
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.h
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o
+ ../include/cmocka.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/chef.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.h
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.make b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.make
new file mode 100644
index 0000000..0118329
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/depend.make
@@ -0,0 +1,12 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o: ../include/cmocka.h
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o: ../example/chef_wrap/chef.c
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o: ../example/chef_wrap/chef.h
+
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o: ../include/cmocka.h
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o: ../example/chef_wrap/chef.h
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o: ../example/chef_wrap/waiter_test_wrap.c
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o: ../example/chef_wrap/waiter_test_wrap.h
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/flags.make b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/flags.make
new file mode 100644
index 0000000..f48f2c3
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
+
+C_DEFINES =
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build -I/home/anton/programs/libfort/tests/cmocka-1.1.0/example -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/link.txt b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/link.txt
new file mode 100644
index 0000000..d08823a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Wl,--wrap=chef_cook CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o CMakeFiles/waiter_test_wrap.dir/chef.c.o -o waiter_test_wrap -Wl,-rpath,/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -rdynamic ../../src/libcmocka.so.0.4.0
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/progress.make b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/progress.make
new file mode 100644
index 0000000..fcffe56
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 26
+CMAKE_PROGRESS_2 = 27
+CMAKE_PROGRESS_3 = 28
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o
new file mode 100644
index 0000000..73dd8f8
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o differ
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/Makefile b/tests/cmocka-1.1.0/build/example/chef_wrap/Makefile
new file mode 100644
index 0000000..e9977a1
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/Makefile
@@ -0,0 +1,282 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"headers\" \"pkgconfig\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package
+package: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+ /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles /home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/CMakeFiles/progress.marks
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/chef_wrap/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/chef_wrap/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/chef_wrap/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/chef_wrap/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule
+.PHONY : example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule
+
+# Convenience name for target.
+waiter_test_wrap: example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/rule
+
+.PHONY : waiter_test_wrap
+
+# fast build rule for target.
+waiter_test_wrap/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build
+.PHONY : waiter_test_wrap/fast
+
+chef.o: chef.c.o
+
+.PHONY : chef.o
+
+# target to build an object file
+chef.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.o
+.PHONY : chef.c.o
+
+chef.i: chef.c.i
+
+.PHONY : chef.i
+
+# target to preprocess a source file
+chef.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.i
+.PHONY : chef.c.i
+
+chef.s: chef.c.s
+
+.PHONY : chef.s
+
+# target to generate assembly for a file
+chef.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/chef.c.s
+.PHONY : chef.c.s
+
+waiter_test_wrap.o: waiter_test_wrap.c.o
+
+.PHONY : waiter_test_wrap.o
+
+# target to build an object file
+waiter_test_wrap.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.o
+.PHONY : waiter_test_wrap.c.o
+
+waiter_test_wrap.i: waiter_test_wrap.c.i
+
+.PHONY : waiter_test_wrap.i
+
+# target to preprocess a source file
+waiter_test_wrap.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.i
+.PHONY : waiter_test_wrap.c.i
+
+waiter_test_wrap.s: waiter_test_wrap.c.s
+
+.PHONY : waiter_test_wrap.s
+
+# target to generate assembly for a file
+waiter_test_wrap.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/build.make example/chef_wrap/CMakeFiles/waiter_test_wrap.dir/waiter_test_wrap.c.s
+.PHONY : waiter_test_wrap.c.s
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... install/strip"
+ @echo "... install/local"
+ @echo "... install"
+ @echo "... list_install_components"
+ @echo "... rebuild_cache"
+ @echo "... waiter_test_wrap"
+ @echo "... package"
+ @echo "... package_source"
+ @echo "... edit_cache"
+ @echo "... chef.o"
+ @echo "... chef.i"
+ @echo "... chef.s"
+ @echo "... waiter_test_wrap.o"
+ @echo "... waiter_test_wrap.i"
+ @echo "... waiter_test_wrap.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/cmake_install.cmake b/tests/cmocka-1.1.0/build/example/chef_wrap/cmake_install.cmake
new file mode 100644
index 0000000..7bf5e90
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/chef_wrap/cmake_install.cmake
@@ -0,0 +1,34 @@
+# Install script for directory: /home/anton/programs/libfort/tests/cmocka-1.1.0/example/chef_wrap
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
diff --git a/tests/cmocka-1.1.0/build/example/chef_wrap/waiter_test_wrap b/tests/cmocka-1.1.0/build/example/chef_wrap/waiter_test_wrap
new file mode 100755
index 0000000..667f88d
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/chef_wrap/waiter_test_wrap differ
diff --git a/tests/cmocka-1.1.0/build/example/cmake_install.cmake b/tests/cmocka-1.1.0/build/example/cmake_install.cmake
new file mode 100644
index 0000000..e7eb443
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/example/cmake_install.cmake
@@ -0,0 +1,40 @@
+# Install script for directory: /home/anton/programs/libfort/tests/cmocka-1.1.0/example
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ # Include the install script for each subdirectory.
+ include("/home/anton/programs/libfort/tests/cmocka-1.1.0/build/example/chef_wrap/cmake_install.cmake")
+
+endif()
+
diff --git a/tests/cmocka-1.1.0/build/example/customer_database_test b/tests/cmocka-1.1.0/build/example/customer_database_test
new file mode 100755
index 0000000..ba82a2b
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/customer_database_test differ
diff --git a/tests/cmocka-1.1.0/build/example/key_value_test b/tests/cmocka-1.1.0/build/example/key_value_test
new file mode 100755
index 0000000..56d709a
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/key_value_test differ
diff --git a/tests/cmocka-1.1.0/build/example/product_database_test b/tests/cmocka-1.1.0/build/example/product_database_test
new file mode 100755
index 0000000..4a2d4bc
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/product_database_test differ
diff --git a/tests/cmocka-1.1.0/build/example/simple_test b/tests/cmocka-1.1.0/build/example/simple_test
new file mode 100755
index 0000000..82dd7f4
Binary files /dev/null and b/tests/cmocka-1.1.0/build/example/simple_test differ
diff --git a/tests/cmocka-1.1.0/build/include/CMakeFiles/CMakeDirectoryInformation.cmake b/tests/cmocka-1.1.0/build/include/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..71cbe6c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/include/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/anton/programs/libfort/tests/cmocka-1.1.0")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/tests/cmocka-1.1.0/build/include/CMakeFiles/progress.marks b/tests/cmocka-1.1.0/build/include/CMakeFiles/progress.marks
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/include/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+0
diff --git a/tests/cmocka-1.1.0/build/include/Makefile b/tests/cmocka-1.1.0/build/include/Makefile
new file mode 100644
index 0000000..f3efa26
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/include/Makefile
@@ -0,0 +1,206 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"headers\" \"pkgconfig\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target package
+package: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package_source
+package_source:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+ /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles /home/anton/programs/libfort/tests/cmocka-1.1.0/build/include/CMakeFiles/progress.marks
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 include/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 include/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 include/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 include/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... install/strip"
+ @echo "... install/local"
+ @echo "... install"
+ @echo "... list_install_components"
+ @echo "... package"
+ @echo "... rebuild_cache"
+ @echo "... package_source"
+ @echo "... edit_cache"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/include/cmake_install.cmake b/tests/cmocka-1.1.0/build/include/cmake_install.cmake
new file mode 100644
index 0000000..2717efd
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/include/cmake_install.cmake
@@ -0,0 +1,49 @@
+# Install script for directory: /home/anton/programs/libfort/tests/cmocka-1.1.0/include
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "headers" OR NOT CMAKE_INSTALL_COMPONENT)
+ list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+ "/usr/local/include/cmocka.h;/usr/local/include/cmocka_pbc.h")
+ if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+ if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+file(INSTALL DESTINATION "/usr/local/include" TYPE FILE FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/include/cmocka.h"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/include/cmocka_pbc.h"
+ )
+endif()
+
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/CMakeDirectoryInformation.cmake b/tests/cmocka-1.1.0/build/src/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..71cbe6c
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/anton/programs/libfort/tests/cmocka-1.1.0")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/anton/programs/libfort/tests/cmocka-1.1.0/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/C.includecache b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/C.includecache
new file mode 100644
index 0000000..55abbaf
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/C.includecache
@@ -0,0 +1,56 @@
+#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform:
+
+../include/cmocka.h
+
+../include/cmocka_private.h
+config.h
+../include/config.h
+stdint.h
+-
+windows.h
+-
+stdio.h
+-
+
+/home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c
+config.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/src/config.h
+malloc.h
+-
+inttypes.h
+-
+signal.h
+-
+strings.h
+-
+stdint.h
+-
+setjmp.h
+-
+stdarg.h
+-
+stddef.h
+-
+stdio.h
+-
+stdlib.h
+-
+string.h
+-
+time.h
+-
+cmocka_platform.h
+/home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka_platform.h
+cmocka.h
+-
+cmocka_private.h
+-
+
+config.h
+
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake
new file mode 100644
index 0000000..eec1b0d
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake
@@ -0,0 +1,36 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+ "C"
+ )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmocka.c.o"
+ )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_C
+ "HAVE_CONFIG_H=1"
+ )
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+ "src"
+ "../src"
+ "../include"
+ "."
+ )
+
+# Pairs of files generated by the same build rule.
+set(CMAKE_MULTIPLE_OUTPUT_PAIRS
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so.0.4.0"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so.0" "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so.0.4.0"
+ )
+
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+ )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/build.make b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/build.make
new file mode 100644
index 0000000..f510f60
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/build.make
@@ -0,0 +1,120 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+# Include any dependencies generated for this target.
+include src/CMakeFiles/cmocka_shared.dir/depend.make
+
+# Include the progress variables for this target.
+include src/CMakeFiles/cmocka_shared.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include src/CMakeFiles/cmocka_shared.dir/flags.make
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o: src/CMakeFiles/cmocka_shared.dir/flags.make
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o: ../src/cmocka.c
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object src/CMakeFiles/cmocka_shared.dir/cmocka.c.o"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/cmocka_shared.dir/cmocka.c.o -c /home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.i: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/cmocka_shared.dir/cmocka.c.i"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c > CMakeFiles/cmocka_shared.dir/cmocka.c.i
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.s: cmake_force
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/cmocka_shared.dir/cmocka.c.s"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c -o CMakeFiles/cmocka_shared.dir/cmocka.c.s
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.requires:
+
+.PHONY : src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.requires
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.provides: src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.requires
+ $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.provides.build
+.PHONY : src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.provides
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.provides.build: src/CMakeFiles/cmocka_shared.dir/cmocka.c.o
+
+
+# Object files for target cmocka_shared
+cmocka_shared_OBJECTS = \
+"CMakeFiles/cmocka_shared.dir/cmocka.c.o"
+
+# External object files for target cmocka_shared
+cmocka_shared_EXTERNAL_OBJECTS =
+
+src/libcmocka.so.0.4.0: src/CMakeFiles/cmocka_shared.dir/cmocka.c.o
+src/libcmocka.so.0.4.0: src/CMakeFiles/cmocka_shared.dir/build.make
+src/libcmocka.so.0.4.0: src/CMakeFiles/cmocka_shared.dir/link.txt
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C shared library libcmocka.so"
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/cmocka_shared.dir/link.txt --verbose=$(VERBOSE)
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src && $(CMAKE_COMMAND) -E cmake_symlink_library libcmocka.so.0.4.0 libcmocka.so.0 libcmocka.so
+
+src/libcmocka.so.0: src/libcmocka.so.0.4.0
+ @$(CMAKE_COMMAND) -E touch_nocreate src/libcmocka.so.0
+
+src/libcmocka.so: src/libcmocka.so.0.4.0
+ @$(CMAKE_COMMAND) -E touch_nocreate src/libcmocka.so
+
+# Rule to build all files generated by this target.
+src/CMakeFiles/cmocka_shared.dir/build: src/libcmocka.so
+
+.PHONY : src/CMakeFiles/cmocka_shared.dir/build
+
+src/CMakeFiles/cmocka_shared.dir/requires: src/CMakeFiles/cmocka_shared.dir/cmocka.c.o.requires
+
+.PHONY : src/CMakeFiles/cmocka_shared.dir/requires
+
+src/CMakeFiles/cmocka_shared.dir/clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src && $(CMAKE_COMMAND) -P CMakeFiles/cmocka_shared.dir/cmake_clean.cmake
+.PHONY : src/CMakeFiles/cmocka_shared.dir/clean
+
+src/CMakeFiles/cmocka_shared.dir/depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/anton/programs/libfort/tests/cmocka-1.1.0 /home/anton/programs/libfort/tests/cmocka-1.1.0/src /home/anton/programs/libfort/tests/cmocka-1.1.0/build /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : src/CMakeFiles/cmocka_shared.dir/depend
+
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmake_clean.cmake b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmake_clean.cmake
new file mode 100644
index 0000000..c95c817
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmake_clean.cmake
@@ -0,0 +1,12 @@
+file(REMOVE_RECURSE
+ "CMakeFiles/cmocka_shared.dir/cmocka.c.o"
+ "libcmocka.pdb"
+ "libcmocka.so"
+ "libcmocka.so.0.4.0"
+ "libcmocka.so.0"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+ include(CMakeFiles/cmocka_shared.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmocka.c.o b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmocka.c.o
new file mode 100644
index 0000000..e8214e9
Binary files /dev/null and b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/cmocka.c.o differ
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/depend.internal b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/depend.internal
new file mode 100644
index 0000000..6fc42cc
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/depend.internal
@@ -0,0 +1,8 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o
+ ../include/cmocka.h
+ ../include/cmocka_private.h
+ /home/anton/programs/libfort/tests/cmocka-1.1.0/src/cmocka.c
+ config.h
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/depend.make b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/depend.make
new file mode 100644
index 0000000..2e75d3b
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/depend.make
@@ -0,0 +1,8 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o: ../include/cmocka.h
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o: ../include/cmocka_private.h
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o: ../src/cmocka.c
+src/CMakeFiles/cmocka_shared.dir/cmocka.c.o: config.h
+
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/flags.make b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/flags.make
new file mode 100644
index 0000000..2d9669b
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile C with /usr/bin/cc
+C_FLAGS = -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -fPIC
+
+C_DEFINES = -DCMOCKA_EXPORTS -DHAVE_CONFIG_H=1
+
+C_INCLUDES = -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src -I/home/anton/programs/libfort/tests/cmocka-1.1.0/src -I/home/anton/programs/libfort/tests/cmocka-1.1.0/include -I/home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/link.txt b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/link.txt
new file mode 100644
index 0000000..38b9f29
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -fPIC -std=gnu99 -pedantic -pedantic-errors -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -Wundef -fPIC -fstack-protector -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -shared -Wl,-soname,libcmocka.so.0 -o libcmocka.so.0.4.0 CMakeFiles/cmocka_shared.dir/cmocka.c.o
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/progress.make b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/progress.make
new file mode 100644
index 0000000..d92f75a
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/cmocka_shared.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 13
+CMAKE_PROGRESS_2 = 14
+
diff --git a/tests/cmocka-1.1.0/build/src/CMakeFiles/progress.marks b/tests/cmocka-1.1.0/build/src/CMakeFiles/progress.marks
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+2
diff --git a/tests/cmocka-1.1.0/build/src/Makefile b/tests/cmocka-1.1.0/build/src/Makefile
new file mode 100644
index 0000000..ac5f4fd
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/Makefile
@@ -0,0 +1,252 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/anton/programs/libfort/tests/cmocka-1.1.0/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"devel\" \"headers\" \"pkgconfig\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target package
+package: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+
+.PHONY : package_source/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+ /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles /home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/CMakeFiles/progress.marks
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 src/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /home/anton/programs/libfort/tests/cmocka-1.1.0/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 src/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+src/CMakeFiles/cmocka_shared.dir/rule:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/cmocka_shared.dir/rule
+.PHONY : src/CMakeFiles/cmocka_shared.dir/rule
+
+# Convenience name for target.
+cmocka_shared: src/CMakeFiles/cmocka_shared.dir/rule
+
+.PHONY : cmocka_shared
+
+# fast build rule for target.
+cmocka_shared/fast:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/build
+.PHONY : cmocka_shared/fast
+
+cmocka.o: cmocka.c.o
+
+.PHONY : cmocka.o
+
+# target to build an object file
+cmocka.c.o:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/cmocka.c.o
+.PHONY : cmocka.c.o
+
+cmocka.i: cmocka.c.i
+
+.PHONY : cmocka.i
+
+# target to preprocess a source file
+cmocka.c.i:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/cmocka.c.i
+.PHONY : cmocka.c.i
+
+cmocka.s: cmocka.c.s
+
+.PHONY : cmocka.s
+
+# target to generate assembly for a file
+cmocka.c.s:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(MAKE) -f src/CMakeFiles/cmocka_shared.dir/build.make src/CMakeFiles/cmocka_shared.dir/cmocka.c.s
+.PHONY : cmocka.c.s
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... install/strip"
+ @echo "... install/local"
+ @echo "... install"
+ @echo "... list_install_components"
+ @echo "... rebuild_cache"
+ @echo "... package"
+ @echo "... package_source"
+ @echo "... cmocka_shared"
+ @echo "... edit_cache"
+ @echo "... cmocka.o"
+ @echo "... cmocka.i"
+ @echo "... cmocka.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+ cd /home/anton/programs/libfort/tests/cmocka-1.1.0/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/tests/cmocka-1.1.0/build/src/cmake_install.cmake b/tests/cmocka-1.1.0/build/src/cmake_install.cmake
new file mode 100644
index 0000000..83214b1
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/cmake_install.cmake
@@ -0,0 +1,74 @@
+# Install script for directory: /home/anton/programs/libfort/tests/cmocka-1.1.0/src
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
+ foreach(file
+ "$ENV{DESTDIR}/usr/local/lib/libcmocka.so.0.4.0"
+ "$ENV{DESTDIR}/usr/local/lib/libcmocka.so.0"
+ "$ENV{DESTDIR}/usr/local/lib/libcmocka.so"
+ )
+ if(EXISTS "${file}" AND
+ NOT IS_SYMLINK "${file}")
+ file(RPATH_CHECK
+ FILE "${file}"
+ RPATH "")
+ endif()
+ endforeach()
+ list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+ "/usr/local/lib/libcmocka.so.0.4.0;/usr/local/lib/libcmocka.so.0;/usr/local/lib/libcmocka.so")
+ if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+ if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+ message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+file(INSTALL DESTINATION "/usr/local/lib" TYPE SHARED_LIBRARY FILES
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so.0.4.0"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so.0"
+ "/home/anton/programs/libfort/tests/cmocka-1.1.0/build/src/libcmocka.so"
+ )
+ foreach(file
+ "$ENV{DESTDIR}/usr/local/lib/libcmocka.so.0.4.0"
+ "$ENV{DESTDIR}/usr/local/lib/libcmocka.so.0"
+ "$ENV{DESTDIR}/usr/local/lib/libcmocka.so"
+ )
+ if(EXISTS "${file}" AND
+ NOT IS_SYMLINK "${file}")
+ if(CMAKE_INSTALL_DO_STRIP)
+ execute_process(COMMAND "/usr/bin/strip" "${file}")
+ endif()
+ endif()
+ endforeach()
+endif()
+
diff --git a/tests/cmocka-1.1.0/build/src/libcmocka.so b/tests/cmocka-1.1.0/build/src/libcmocka.so
new file mode 120000
index 0000000..550d968
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/libcmocka.so
@@ -0,0 +1 @@
+libcmocka.so.0
\ No newline at end of file
diff --git a/tests/cmocka-1.1.0/build/src/libcmocka.so.0 b/tests/cmocka-1.1.0/build/src/libcmocka.so.0
new file mode 120000
index 0000000..10629cc
--- /dev/null
+++ b/tests/cmocka-1.1.0/build/src/libcmocka.so.0
@@ -0,0 +1 @@
+libcmocka.so.0.4.0
\ No newline at end of file
diff --git a/tests/cmocka-1.1.0/build/src/libcmocka.so.0.4.0 b/tests/cmocka-1.1.0/build/src/libcmocka.so.0.4.0
new file mode 100755
index 0000000..f843eea
Binary files /dev/null and b/tests/cmocka-1.1.0/build/src/libcmocka.so.0.4.0 differ
diff --git a/tests/cmocka-1.1.0/cmake/Modules/AddCMockaTest.cmake b/tests/cmocka-1.1.0/cmake/Modules/AddCMockaTest.cmake
new file mode 100644
index 0000000..19de66e
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/AddCMockaTest.cmake
@@ -0,0 +1,23 @@
+# - ADD_CMOCKA_TEST(test_name test_source linklib1 ... linklibN)
+
+# Copyright (c) 2007 Daniel Gollub
+# Copyright (c) 2007-2010 Andreas Schneider
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+enable_testing()
+include(CTest)
+
+if(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW)
+ set(CMAKE_C_FLAGS_PROFILING "-g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wwrite-strings -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Compiler Flags")
+ set(CMAKE_SHARED_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags")
+ set(CMAKE_MODULE_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags")
+ set(CMAKE_EXEC_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags")
+endif(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW)
+
+function (ADD_CMOCKA_TEST _testName _testSource)
+ add_executable(${_testName} ${_testSource})
+ target_link_libraries(${_testName} ${ARGN})
+ add_test(${_testName} ${CMAKE_CURRENT_BINARY_DIR}/${_testName})
+endfunction (ADD_CMOCKA_TEST)
diff --git a/tests/cmocka-1.1.0/cmake/Modules/COPYING-CMAKE-SCRIPTS b/tests/cmocka-1.1.0/cmake/Modules/COPYING-CMAKE-SCRIPTS
new file mode 100644
index 0000000..4b41776
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/COPYING-CMAKE-SCRIPTS
@@ -0,0 +1,22 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/tests/cmocka-1.1.0/cmake/Modules/CheckCCompilerFlagSSP.cmake b/tests/cmocka-1.1.0/cmake/Modules/CheckCCompilerFlagSSP.cmake
new file mode 100644
index 0000000..2fe4395
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/CheckCCompilerFlagSSP.cmake
@@ -0,0 +1,26 @@
+# - Check whether the C compiler supports a given flag in the
+# context of a stack checking compiler option.
+
+# CHECK_C_COMPILER_FLAG_SSP(FLAG VARIABLE)
+#
+# FLAG - the compiler flag
+# VARIABLE - variable to store the result
+#
+# This actually calls check_c_source_compiles.
+# See help for CheckCSourceCompiles for a listing of variables
+# that can modify the build.
+
+# Copyright (c) 2006, Alexander Neundorf,
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+include(CheckCSourceCompiles)
+
+function(CHECK_C_COMPILER_FLAG_SSP _FLAG _RESULT)
+ set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
+ set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
+ check_c_source_compiles("int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}" ${_RESULT})
+ set(CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
+endfunction(CHECK_C_COMPILER_FLAG_SSP)
diff --git a/tests/cmocka-1.1.0/cmake/Modules/DefineCMakeDefaults.cmake b/tests/cmocka-1.1.0/cmake/Modules/DefineCMakeDefaults.cmake
new file mode 100644
index 0000000..a08eca1
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/DefineCMakeDefaults.cmake
@@ -0,0 +1,36 @@
+# Always include srcdir and builddir in include path
+# This saves typing ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY} in
+# about every subdir
+# since cmake 2.4.0
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+# Put the include dirs which are in the source or build tree
+# before all other include dirs, so the headers in the sources
+# are prefered over the already installed ones
+# since cmake 2.4.1
+set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
+
+# Use colored output
+# since cmake 2.4.0
+set(CMAKE_COLOR_MAKEFILE ON)
+
+# Define the generic version of the libraries here
+set(GENERIC_LIB_VERSION "0.1.0")
+set(GENERIC_LIB_SOVERSION "0")
+
+# Set the default build type to release with debug info
+if (NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE RelWithDebInfo
+ CACHE STRING
+ "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
+ )
+endif (NOT CMAKE_BUILD_TYPE)
+
+# Create the compile command database for clang by default
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+if (APPLE)
+ set(CMAKE_MACOSX_RPATH ON)
+ set(CMAKE_SKIP_BUILD_RPATH FALSE)
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+endif(APPLE)
diff --git a/tests/cmocka-1.1.0/cmake/Modules/DefineCompilerFlags.cmake b/tests/cmocka-1.1.0/cmake/Modules/DefineCompilerFlags.cmake
new file mode 100644
index 0000000..14d473f
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/DefineCompilerFlags.cmake
@@ -0,0 +1,79 @@
+# define system dependent compiler flags
+
+include(CheckCCompilerFlag)
+include(CheckCCompilerFlagSSP)
+
+if (UNIX AND NOT WIN32)
+ #
+ # Define GNUCC compiler flags
+ #
+ if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
+
+ # add -Wconversion ?
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -pedantic -pedantic-errors")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute -Wundef")
+
+ # with -fPIC
+ check_c_compiler_flag("-fPIC" WITH_FPIC)
+ if (WITH_FPIC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+ endif (WITH_FPIC)
+
+ check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
+ if (WITH_STACK_PROTECTOR)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
+ endif (WITH_STACK_PROTECTOR)
+
+ if (CMAKE_BUILD_TYPE)
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
+ if (CMAKE_BUILD_TYPE_LOWER MATCHES (release|relwithdebinfo|minsizerel))
+ check_c_compiler_flag("-Wp,-D_FORTIFY_SOURCE=2" WITH_FORTIFY_SOURCE)
+ if (WITH_FORTIFY_SOURCE)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
+ endif (WITH_FORTIFY_SOURCE)
+ endif()
+ endif()
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE")
+ endif (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
+
+ #
+ # Check for large filesystem support
+ #
+ if (CMAKE_SIZEOF_VOID_P MATCHES "8")
+ # with large file support
+ execute_process(
+ COMMAND
+ getconf LFS64_CFLAGS
+ OUTPUT_VARIABLE
+ _lfs_CFLAGS
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ else (CMAKE_SIZEOF_VOID_P MATCHES "8")
+ # with large file support
+ execute_process(
+ COMMAND
+ getconf LFS_CFLAGS
+ OUTPUT_VARIABLE
+ _lfs_CFLAGS
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ endif (CMAKE_SIZEOF_VOID_P MATCHES "8")
+ if (_lfs_CFLAGS)
+ string(REGEX REPLACE "[\r\n]" " " "${_lfs_CFLAGS}" "${${_lfs_CFLAGS}}")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_lfs_CFLAGS}")
+ endif (_lfs_CFLAGS)
+
+endif (UNIX AND NOT WIN32)
+
+if (MSVC)
+ # Use secure functions by defaualt and suppress warnings about
+ #"deprecated" functions
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1")
+endif (MSVC)
diff --git a/tests/cmocka-1.1.0/cmake/Modules/DefineInstallationPaths.cmake b/tests/cmocka-1.1.0/cmake/Modules/DefineInstallationPaths.cmake
new file mode 100644
index 0000000..88e08ca
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/DefineInstallationPaths.cmake
@@ -0,0 +1,109 @@
+if (UNIX OR OS2)
+ IF (NOT APPLICATION_NAME)
+ MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME")
+ SET(APPLICATION_NAME ${PROJECT_NAME})
+ ENDIF (NOT APPLICATION_NAME)
+
+ # Suffix for Linux
+ SET(LIB_SUFFIX
+ CACHE STRING "Define suffix of directory name (32/64)"
+ )
+
+ SET(EXEC_INSTALL_PREFIX
+ "${CMAKE_INSTALL_PREFIX}"
+ CACHE PATH "Base directory for executables and libraries"
+ )
+ SET(SHARE_INSTALL_PREFIX
+ "${CMAKE_INSTALL_PREFIX}/share"
+ CACHE PATH "Base directory for files which go to share/"
+ )
+ SET(DATA_INSTALL_PREFIX
+ "${SHARE_INSTALL_PREFIX}/${APPLICATION_NAME}"
+ CACHE PATH "The parent directory where applications can install their data")
+
+ # The following are directories where stuff will be installed to
+ SET(BIN_INSTALL_DIR
+ "${EXEC_INSTALL_PREFIX}/bin"
+ CACHE PATH "The ${APPLICATION_NAME} binary install dir (default prefix/bin)"
+ )
+ SET(SBIN_INSTALL_DIR
+ "${EXEC_INSTALL_PREFIX}/sbin"
+ CACHE PATH "The ${APPLICATION_NAME} sbin install dir (default prefix/sbin)"
+ )
+ SET(LIB_INSTALL_DIR
+ "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}"
+ CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/lib)"
+ )
+ SET(LIBEXEC_INSTALL_DIR
+ "${EXEC_INSTALL_PREFIX}/libexec"
+ CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/libexec)"
+ )
+ SET(PLUGIN_INSTALL_DIR
+ "${LIB_INSTALL_DIR}/${APPLICATION_NAME}"
+ CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${APPLICATION_NAME})"
+ )
+ SET(INCLUDE_INSTALL_DIR
+ "${CMAKE_INSTALL_PREFIX}/include"
+ CACHE PATH "The subdirectory to the header prefix (default prefix/include)"
+ )
+
+ set(CMAKE_INSTALL_DIR
+ "${LIB_INSTALL_DIR}/cmake"
+ CACHE PATH "The subdirectory to install cmake config files")
+
+ SET(DATA_INSTALL_DIR
+ "${DATA_INSTALL_PREFIX}"
+ CACHE PATH "The parent directory where applications can install their data (default prefix/share/${APPLICATION_NAME})"
+ )
+ SET(HTML_INSTALL_DIR
+ "${DATA_INSTALL_PREFIX}/doc/HTML"
+ CACHE PATH "The HTML install dir for documentation (default data/doc/html)"
+ )
+ SET(ICON_INSTALL_DIR
+ "${DATA_INSTALL_PREFIX}/icons"
+ CACHE PATH "The icon install dir (default data/icons/)"
+ )
+ SET(SOUND_INSTALL_DIR
+ "${DATA_INSTALL_PREFIX}/sounds"
+ CACHE PATH "The install dir for sound files (default data/sounds)"
+ )
+
+ SET(LOCALE_INSTALL_DIR
+ "${SHARE_INSTALL_PREFIX}/locale"
+ CACHE PATH "The install dir for translations (default prefix/share/locale)"
+ )
+
+ SET(XDG_APPS_DIR
+ "${SHARE_INSTALL_PREFIX}/applications/"
+ CACHE PATH "The XDG apps dir"
+ )
+ SET(XDG_DIRECTORY_DIR
+ "${SHARE_INSTALL_PREFIX}/desktop-directories"
+ CACHE PATH "The XDG directory"
+ )
+
+ SET(SYSCONF_INSTALL_DIR
+ "${EXEC_INSTALL_PREFIX}/etc"
+ CACHE PATH "The ${APPLICATION_NAME} sysconfig install dir (default prefix/etc)"
+ )
+ SET(MAN_INSTALL_DIR
+ "${SHARE_INSTALL_PREFIX}/man"
+ CACHE PATH "The ${APPLICATION_NAME} man install dir (default prefix/man)"
+ )
+ SET(INFO_INSTALL_DIR
+ "${SHARE_INSTALL_PREFIX}/info"
+ CACHE PATH "The ${APPLICATION_NAME} info install dir (default prefix/info)"
+ )
+else()
+ # Same same
+ set(BIN_INSTALL_DIR "bin" CACHE PATH "-")
+ set(SBIN_INSTALL_DIR "sbin" CACHE PATH "-")
+ set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "-")
+ set(INCLUDE_INSTALL_DIR "include" CACHE PATH "-")
+ set(CMAKE_INSTALL_DIR "CMake" CACHE PATH "-")
+ set(PLUGIN_INSTALL_DIR "plugins" CACHE PATH "-")
+ set(HTML_INSTALL_DIR "doc/HTML" CACHE PATH "-")
+ set(ICON_INSTALL_DIR "icons" CACHE PATH "-")
+ set(SOUND_INSTALL_DIR "soudns" CACHE PATH "-")
+ set(LOCALE_INSTALL_DIR "lang" CACHE PATH "-")
+endif ()
diff --git a/tests/cmocka-1.1.0/cmake/Modules/DefinePlatformDefaults.cmake b/tests/cmocka-1.1.0/cmake/Modules/DefinePlatformDefaults.cmake
new file mode 100644
index 0000000..46c3185
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/DefinePlatformDefaults.cmake
@@ -0,0 +1,21 @@
+# Set system vars
+
+if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+ set(LINUX TRUE)
+endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+
+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ set(FREEBSD TRUE)
+endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+
+if (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
+ set(OPENBSD TRUE)
+endif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
+
+if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+ set(NETBSD TRUE)
+endif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+
+if (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
+ set(SOLARIS TRUE)
+endif (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
diff --git a/tests/cmocka-1.1.0/cmake/Modules/FindNSIS.cmake b/tests/cmocka-1.1.0/cmake/Modules/FindNSIS.cmake
new file mode 100644
index 0000000..08d839b
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/FindNSIS.cmake
@@ -0,0 +1,51 @@
+# - Try to find NSIS
+# Once done this will define
+#
+# NSIS_FOUND - system has NSIS
+# NSIS_MAKE - NSIS creator executable
+#
+#=============================================================================
+# Copyright (c) 2010-2013 Andreas Schneider
+#
+# 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.
+#=============================================================================
+#
+
+if (WIN32)
+ set(_NSIS_ROOT_HINTS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\NSIS;Default]")
+
+ set(_NSIS_ROOT_PATHS
+ $ENV{PROGRAMFILES}/NSIS)
+
+ find_path(NSIS_ROOT_PATH
+ NAMES
+ Include/Library.nsh
+ HINTS
+ ${_NSIS_ROOT_HINTS}
+ PATHS
+ ${_NSIS_ROOT_PATHS}
+ )
+ mark_as_advanced(NSIS_ROOT_PATH)
+endif (WIN32)
+
+find_program(NSIS_MAKE
+ NAMES
+ makensis
+ PATHS
+ ${NSIS_ROOT_PATH}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(NSIS DEFAULT_MSG NSIS_MAKE)
+
+if (NSIS_MAKE)
+ set(NSIS_FOUND TRUE)
+endif (NSIS_MAKE)
+
+mark_as_advanced(NSIS_MAKE)
diff --git a/tests/cmocka-1.1.0/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake b/tests/cmocka-1.1.0/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake
new file mode 100644
index 0000000..a2e9480
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake
@@ -0,0 +1,17 @@
+# - MACRO_ENSURE_OUT_OF_SOURCE_BUILD()
+# MACRO_ENSURE_OUT_OF_SOURCE_BUILD()
+
+# Copyright (c) 2006, Alexander Neundorf,
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+macro (MACRO_ENSURE_OUT_OF_SOURCE_BUILD _errorMessage)
+
+ string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" _insource)
+ if (_insource)
+ message(SEND_ERROR "${_errorMessage}")
+ message(FATAL_ERROR "Remove the file CMakeCache.txt in ${CMAKE_SOURCE_DIR} first.")
+ endif (_insource)
+
+endmacro (MACRO_ENSURE_OUT_OF_SOURCE_BUILD)
diff --git a/tests/cmocka-1.1.0/cmake/Modules/UseDoxygen.cmake b/tests/cmocka-1.1.0/cmake/Modules/UseDoxygen.cmake
new file mode 100644
index 0000000..72c384d
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmake/Modules/UseDoxygen.cmake
@@ -0,0 +1,140 @@
+# - Run Doxygen
+#
+# Adds a doxygen target that runs doxygen to generate the html
+# and optionally the LaTeX API documentation.
+# The doxygen target is added to the doc target as a dependency.
+# i.e.: the API documentation is built with:
+# make doc
+#
+# USAGE: GLOBAL INSTALL
+#
+# Install it with:
+# cmake ./ && sudo make install
+# Add the following to the CMakeLists.txt of your project:
+# include(UseDoxygen OPTIONAL)
+# Optionally copy Doxyfile.in in the directory of CMakeLists.txt and edit it.
+#
+# USAGE: INCLUDE IN PROJECT
+#
+# set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+# include(UseDoxygen)
+# Add the Doxyfile.in and UseDoxygen.cmake files to the projects source directory.
+#
+#
+# CONFIGURATION
+#
+# To configure Doxygen you can edit Doxyfile.in and set some variables in cmake.
+# Variables you may define are:
+# DOXYFILE_SOURCE_DIR - Path where the Doxygen input files are.
+# Defaults to the current source directory.
+# DOXYFILE_EXTRA_SOURCES - Additional source diretories/files for Doxygen to scan.
+# The Paths should be in double quotes and separated by space. e.g.:
+# "${CMAKE_CURRENT_BINARY_DIR}/foo.c" "${CMAKE_CURRENT_BINARY_DIR}/bar/"
+#
+# DOXYFILE_OUTPUT_DIR - Path where the Doxygen output is stored.
+# Defaults to "${CMAKE_CURRENT_BINARY_DIR}/doc".
+#
+# DOXYFILE_LATEX - ON/OFF; Set to "ON" if you want the LaTeX documentation
+# to be built.
+# DOXYFILE_LATEX_DIR - Directory relative to DOXYFILE_OUTPUT_DIR where
+# the Doxygen LaTeX output is stored. Defaults to "latex".
+#
+# DOXYFILE_HTML_DIR - Directory relative to DOXYFILE_OUTPUT_DIR where
+# the Doxygen html output is stored. Defaults to "html".
+#
+
+#
+# Copyright (c) 2009, 2010, 2011 Tobias Rautenkranz
+#
+# Redistribution and use is allowed according to the terms of the New
+# BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+
+macro(usedoxygen_set_default name value type docstring)
+ if(NOT DEFINED "${name}")
+ set("${name}" "${value}" CACHE "${type}" "${docstring}")
+ endif()
+endmacro()
+
+find_package(Doxygen)
+
+if(DOXYGEN_FOUND)
+ find_file(DOXYFILE_IN "Doxyfile.in"
+ PATHS "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_ROOT}/Modules/"
+ NO_DEFAULT_PATH
+ DOC "Path to the doxygen configuration template file")
+ set(DOXYFILE "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(DOXYFILE_IN DEFAULT_MSG "DOXYFILE_IN")
+endif()
+
+if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
+ usedoxygen_set_default(DOXYFILE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc"
+ PATH "Doxygen output directory")
+ usedoxygen_set_default(DOXYFILE_HTML_DIR "html"
+ STRING "Doxygen HTML output directory")
+ usedoxygen_set_default(DOXYFILE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
+ PATH "Input files source directory")
+ usedoxygen_set_default(DOXYFILE_EXTRA_SOURCE_DIRS ""
+ STRING "Additional source files/directories separated by space")
+ set(DOXYFILE_SOURCE_DIRS "\"${DOXYFILE_SOURCE_DIR}\" ${DOXYFILE_EXTRA_SOURCES}")
+
+ usedoxygen_set_default(DOXYFILE_LATEX YES BOOL "Generate LaTeX API documentation" OFF)
+ usedoxygen_set_default(DOXYFILE_LATEX_DIR "latex" STRING "LaTex output directory")
+
+ mark_as_advanced(DOXYFILE_OUTPUT_DIR DOXYFILE_HTML_DIR DOXYFILE_LATEX_DIR
+ DOXYFILE_SOURCE_DIR DOXYFILE_EXTRA_SOURCE_DIRS DOXYFILE_IN)
+
+
+ set_property(DIRECTORY
+ APPEND PROPERTY
+ ADDITIONAL_MAKE_CLEAN_FILES
+ "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_HTML_DIR}")
+
+ add_custom_target(doxygen
+ COMMAND "${DOXYGEN_EXECUTABLE}"
+ "${DOXYFILE}"
+ COMMENT "Writing documentation to ${DOXYFILE_OUTPUT_DIR}..."
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+
+ set(DOXYFILE_DOT "NO")
+ if(DOXYGEN_DOT_EXECUTABLE)
+ set(DOXYFILE_DOT "YES")
+ endif()
+
+ ## LaTeX
+ set(DOXYFILE_PDFLATEX "NO")
+
+ set_property(DIRECTORY APPEND PROPERTY
+ ADDITIONAL_MAKE_CLEAN_FILES
+ "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}")
+
+ if(DOXYFILE_LATEX STREQUAL "ON")
+ set(DOXYFILE_GENERATE_LATEX "YES")
+ find_package(LATEX)
+ find_program(DOXYFILE_MAKE make)
+ mark_as_advanced(DOXYFILE_MAKE)
+ if(LATEX_COMPILER AND MAKEINDEX_COMPILER AND DOXYFILE_MAKE)
+ if(PDFLATEX_COMPILER)
+ set(DOXYFILE_PDFLATEX "YES")
+ endif()
+
+ add_custom_command(TARGET doxygen
+ POST_BUILD
+ COMMAND "${DOXYFILE_MAKE}"
+ COMMENT "Running LaTeX for Doxygen documentation in ${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}..."
+ WORKING_DIRECTORY "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}")
+ else()
+ set(DOXYGEN_LATEX "NO")
+ endif()
+ else()
+ set(DOXYFILE_GENERATE_LATEX "NO")
+ endif()
+
+
+ configure_file("${DOXYFILE_IN}" "${DOXYFILE}" @ONLY)
+
+ add_custom_target(doc)
+ add_dependencies(doc doxygen)
+endif()
diff --git a/tests/cmocka-1.1.0/cmocka-build-tree-settings.cmake.in b/tests/cmocka-1.1.0/cmocka-build-tree-settings.cmake.in
new file mode 100644
index 0000000..eb1f29e
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmocka-build-tree-settings.cmake.in
@@ -0,0 +1 @@
+set(CMOCKA_INLUDE_DIR @PROJECT_SOURCE_DIR@/include)
diff --git a/tests/cmocka-1.1.0/cmocka-config-version.cmake.in b/tests/cmocka-1.1.0/cmocka-config-version.cmake.in
new file mode 100644
index 0000000..98f292c
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmocka-config-version.cmake.in
@@ -0,0 +1,11 @@
+set(PACKAGE_VERSION @APPLICATION_VERSION@)
+
+# Check whether the requested PACKAGE_FIND_VERSION is compatible
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
diff --git a/tests/cmocka-1.1.0/cmocka-config.cmake.in b/tests/cmocka-1.1.0/cmocka-config.cmake.in
new file mode 100644
index 0000000..317f0a2
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmocka-config.cmake.in
@@ -0,0 +1,11 @@
+get_filename_component(CMOCKA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+if (EXISTS "${CMOCKA_CMAKE_DIR}/CMakeCache.txt")
+ # In build tree
+ include(${CMOCKA_CMAKE_DIR}/cmocka-build-tree-settings.cmake)
+else()
+ set(CMOCKA_INCLUDE_DIR @INCLUDE_INSTALL_DIR@)
+endif()
+
+set(CMOCKA_LIBRARY @LIB_INSTALL_DIR@/@CMOCKA_LIBRARY_NAME@)
+set(CMOCKA_LIBRARIES @LIB_INSTALL_DIR@/@CMOCKA_LIBRARY_NAME@)
diff --git a/tests/cmocka-1.1.0/cmocka.pc.cmake b/tests/cmocka-1.1.0/cmocka.pc.cmake
new file mode 100644
index 0000000..c6f7433
--- /dev/null
+++ b/tests/cmocka-1.1.0/cmocka.pc.cmake
@@ -0,0 +1,6 @@
+Name: ${APPLICATION_NAME}
+Description: The cmocka unit testing library
+Version: ${APPLICATION_VERSION}
+Libs: -L${LIB_INSTALL_DIR} -lcmocka
+Cflags: -I${INCLUDE_INSTALL_DIR}
+
diff --git a/tests/cmocka-1.1.0/config.h.cmake b/tests/cmocka-1.1.0/config.h.cmake
new file mode 100644
index 0000000..920bb10
--- /dev/null
+++ b/tests/cmocka-1.1.0/config.h.cmake
@@ -0,0 +1,169 @@
+/* Name of package */
+#cmakedefine PACKAGE "${APPLICATION_NAME}"
+
+/* Version number of package */
+#cmakedefine VERSION "${APPLICATION_VERSION}"
+
+#cmakedefine LOCALEDIR "${LOCALE_INSTALL_DIR}"
+#cmakedefine DATADIR "${DATADIR}"
+#cmakedefine LIBDIR "${LIBDIR}"
+#cmakedefine PLUGINDIR "${PLUGINDIR}"
+#cmakedefine SYSCONFDIR "${SYSCONFDIR}"
+#cmakedefine BINARYDIR "${BINARYDIR}"
+#cmakedefine SOURCEDIR "${SOURCEDIR}"
+
+/************************** HEADER FILES *************************/
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_IO_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_SETJMP_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STDARG_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STDDEF_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STDINT_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STDIO_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_STRING_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_TIME_H 1
+
+/* Define to 1 if you have the header file. */
+#cmakedefine HAVE_UNISTD_H 1
+
+/**************************** STRUCTS ****************************/
+
+#cmakedefine HAVE_STRUCT_TIMESPEC 1
+
+/*************************** FUNCTIONS ***************************/
+
+/* Define to 1 if you have the `calloc' function. */
+#cmakedefine HAVE_CALLOC 1
+
+/* Define to 1 if you have the `exit' function. */
+#cmakedefine HAVE_EXIT 1
+
+/* Define to 1 if you have the `fprintf' function. */
+#cmakedefine HAVE_FPRINTF 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#cmakedefine HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the `_snprintf' function. */
+#cmakedefine HAVE__SNPRINTF 1
+
+/* Define to 1 if you have the `_snprintf_s' function. */
+#cmakedefine HAVE__SNPRINTF_S 1
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#cmakedefine HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `_vsnprintf' function. */
+#cmakedefine HAVE__VSNPRINTF 1
+
+/* Define to 1 if you have the `_vsnprintf_s' function. */
+#cmakedefine HAVE__VSNPRINTF_S 1
+
+/* Define to 1 if you have the `free' function. */
+#cmakedefine HAVE_FREE 1
+
+/* Define to 1 if you have the `longjmp' function. */
+#cmakedefine HAVE_LONGJMP 1
+
+/* Define to 1 if you have the `siglongjmp' function. */
+#cmakedefine HAVE_SIGLONGJMP 1
+
+/* Define to 1 if you have the `malloc' function. */
+#cmakedefine HAVE_MALLOC 1
+
+/* Define to 1 if you have the `memcpy' function. */
+#cmakedefine HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `memset' function. */
+#cmakedefine HAVE_MEMSET 1
+
+/* Define to 1 if you have the `printf' function. */
+#cmakedefine HAVE_PRINTF 1
+
+/* Define to 1 if you have the `setjmp' function. */
+#cmakedefine HAVE_SETJMP 1
+
+/* Define to 1 if you have the `signal' function. */
+#cmakedefine HAVE_SIGNAL 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#cmakedefine HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the `strcmp' function. */
+#cmakedefine HAVE_STRCMP 1
+
+/* Define to 1 if you have the `strcpy' function. */
+#cmakedefine HAVE_STRCPY 1
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#cmakedefine HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `strsignal' function. */
+#cmakedefine HAVE_STRSIGNAL 1
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#cmakedefine HAVE_CLOCK_GETTIME 1
+
+/**************************** OPTIONS ****************************/
+
+/* Check if we have TLS support with GCC */
+#cmakedefine HAVE_GCC_THREAD_LOCAL_STORAGE 1
+
+/* Check if we have TLS support with MSVC */
+#cmakedefine HAVE_MSVC_THREAD_LOCAL_STORAGE 1
+
+/* Check if we have CLOCK_REALTIME for clock_gettime() */
+#cmakedefine HAVE_CLOCK_GETTIME_REALTIME 1
+
+/*************************** ENDIAN *****************************/
+
+#cmakedefine WORDS_SIZEOF_VOID_P ${WORDS_SIZEOF_VOID_P}
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#cmakedefine WORDS_BIGENDIAN 1
diff --git a/tests/cmocka-1.1.0/coverity/README b/tests/cmocka-1.1.0/coverity/README
new file mode 100644
index 0000000..7756137
--- /dev/null
+++ b/tests/cmocka-1.1.0/coverity/README
@@ -0,0 +1,9 @@
+coverity_assert_model.c:
+
+This file is a Coverity Modeling file for projects using CMocka for unit
+testing. The assert functiions could create false positives, to avoid that you
+can load this modeling file in the Coverity web interface.
+
+coverity_internal_model.c:
+
+This file is for the CMocka source code itself.
diff --git a/tests/cmocka-1.1.0/coverity/coverity_assert_model.c b/tests/cmocka-1.1.0/coverity/coverity_assert_model.c
new file mode 100644
index 0000000..9bbb9f7
--- /dev/null
+++ b/tests/cmocka-1.1.0/coverity/coverity_assert_model.c
@@ -0,0 +1,87 @@
+#define LargestIntegralType unsigned long long
+
+void _assert_true(const LargestIntegralType result,
+ const char* const expression,
+ const char * const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_int_equal(
+ const LargestIntegralType a, const LargestIntegralType b,
+ const char * const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_int_not_equal(
+ const LargestIntegralType a, const LargestIntegralType b,
+ const char * const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_return_code(const LargestIntegralType result,
+ size_t rlen,
+ const LargestIntegralType error,
+ const char * const expression,
+ const char * const file,
+ const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_string_equal(const char * const a, const char * const b,
+ const char * const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_string_not_equal(const char * const a, const char * const b,
+ const char *file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_memory_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_memory_not_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_in_range(
+ const LargestIntegralType value, const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const char* const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_not_in_range(
+ const LargestIntegralType value, const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const char* const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_in_set(
+ const LargestIntegralType value, const LargestIntegralType values[],
+ const size_t number_of_values, const char* const file, const int line)
+{
+ __coverity_panic__();
+}
+
+void _assert_not_in_set(
+ const LargestIntegralType value, const LargestIntegralType values[],
+ const size_t number_of_values, const char* const file, const int line)
+{
+ __coverity_panic__();
+}
+
diff --git a/tests/cmocka-1.1.0/coverity/coverity_internal_model.c b/tests/cmocka-1.1.0/coverity/coverity_internal_model.c
new file mode 100644
index 0000000..fd1416d
--- /dev/null
+++ b/tests/cmocka-1.1.0/coverity/coverity_internal_model.c
@@ -0,0 +1,5 @@
+/* Functions to help coverity do static analysis on cmocka */
+void exit_test(const int quit_application)
+{
+ __coverity_panic__();
+}
diff --git a/tests/cmocka-1.1.0/doc/CMakeLists.txt b/tests/cmocka-1.1.0/doc/CMakeLists.txt
new file mode 100644
index 0000000..3124281
--- /dev/null
+++ b/tests/cmocka-1.1.0/doc/CMakeLists.txt
@@ -0,0 +1,5 @@
+#
+# Build the documentation
+#
+include(UseDoxygen OPTIONAL)
+
diff --git a/tests/cmocka-1.1.0/doc/Doxyfile.in b/tests/cmocka-1.1.0/doc/Doxyfile.in
new file mode 100644
index 0000000..b0f9f63
--- /dev/null
+++ b/tests/cmocka-1.1.0/doc/Doxyfile.in
@@ -0,0 +1,2358 @@
+# Doxyfile 1.8.8
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME = @APPLICATION_NAME@
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER = @APPLICATION_VERSION@
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE = 2
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = YES
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES = NO
+
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS = @CMAKE_INTERNAL_DOC@
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS = YES
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if ... \endif and \cond
+# ... \endcond blocks.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
+
+INPUT = @CMAKE_SOURCE_DIR@/include \
+ @CMAKE_SOURCE_DIR@/src \
+ @CMAKE_SOURCE_DIR@/doc
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
+
+FILE_PATTERNS = *.cpp \
+ *.cc \
+ *.c \
+ *.h \
+ *.hh \
+ *.hpp \
+ *.dox
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS = */.git/* \
+ */.svn/* \
+ */cmake/*
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH = @CMAKE_SOURCE_DIR@/example
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS = *.c \
+ *.h \
+ INSTALL \
+ DEPENDENCIES \
+ CHANGELOG \
+ LICENSE \
+ LGPL
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE = YES
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+#
+#
+# where is the value of the INPUT_FILTER tag, and is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX = 2
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra stylesheet files is of importance (e.g. the last
+# stylesheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use + S
+# (what the is depends on the OS and browser, but it is typically
+# , /
Runtime assert macros like the standard C library's assert() should
+be redefined in modules being tested to use cmocka's mock_assert()
+function. Normally mock_assert() signals a
+test failure. If a function is called using
+the expect_assert_failure() macro, any calls to mock_assert()
+within the function will result in the execution of the test. If no
+calls to mock_assert() occur during the function called via
+expect_assert_failure() a test failure is signalled.
+
+
Using mock_assert()
+assert_module.c
+
+#include <assert.h>
+
+// If unit testing is enabled override assert with mock_assert().
+#ifdef UNIT_TESTING
+extern void mock_assert(const int result, const char* const expression,
+ const char * const file, const int line);
+#undef assert
+#define assert(expression) \
+ mock_assert((int)(expression), #expression, __FILE__, __LINE__);
+#endif // UNIT_TESTING
+
+void increment_value(int * const value) {
+ assert(value);
+ (*value) ++;
+}
+
+void decrement_value(int * const value) {
+ if (value) {
+ *value --;
+ }
+}
+
+assert_module_test.c
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+extern void increment_value(int * const value);
+
+/* This test case will fail but the assert is caught by run_tests() and the
+ * next test is executed. */
+void increment_value_fail(void **state) {
+ increment_value(NULL);
+}
+
+// This test case succeeds since increment_value() asserts on the NULL pointer.
+void increment_value_assert(void **state) {
+ expect_assert_failure(increment_value(NULL));
+}
+
+/* This test case fails since decrement_value() doesn't assert on a NULL
+ * pointer. */
+void decrement_value_fail(void **state) {
+ expect_assert_failure(decrement_value(NULL));
+}
+
+int main(int argc, char *argv[]) {
+ const UnitTest tests[] = {
+ unit_test(increment_value_fail),
+ unit_test(increment_value_assert),
+ unit_test(decrement_value_fail),
+ };
+ return run_tests(tests);
+}
+
+
+
cmocka provides an assortment of assert macros that tests applications
+should use use in preference to the C standard library's assert macro. On an
+assertion failure a cmocka assert macro will write the failure to the
+standard error stream and signal a test failure. Due to limitations of the
+C language the general C standard library assert() and cmocka's
+assert_true() and assert_false() macros can only display the expression that
+caused the assert failure. cmocka's type specific assert macros,
+assert_{type}_equal() and assert_{type}_not_equal(), display the data that
+caused the assertion failure which increases data visibility aiding
+debugging of failing test cases.
+
+
Using assert_{type}_equal() macros
+assert_macro.c
+
+#include <string.h>
+
+static const char* status_code_strings[] = {
+ "Address not found",
+ "Connection dropped",
+ "Connection timed out",
+};
+
+const char* get_status_code_string(const unsigned int status_code) {
+ return status_code_strings[status_code];
+};
+
+unsigned int string_to_status_code(const char* const status_code_string) {
+ unsigned int i;
+ for (i = 0; i < sizeof(status_code_strings) /
+ sizeof(status_code_strings[0]); i++) {
+ if (strcmp(status_code_strings[i], status_code_string) == 0) {
+ return i;
+ }
+ }
+ return ~0U;
+}
+
+assert_macro_test.c
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+extern const char* get_status_code_string(const unsigned int status_code);
+extern unsigned int string_to_status_code(
+ const char* const status_code_string);
+
+/* This test will fail since the string returned by get_status_code_string(0)
+ * doesn't match "Connection timed out". */
+void get_status_code_string_test(void **state) {
+ assert_string_equal(get_status_code_string(0), "Address not found");
+ assert_string_equal(get_status_code_string(1), "Connection timed out");
+}
+
+// This test will fail since the status code of "Connection timed out" isn't 1
+void string_to_status_code_test(void **state) {
+ assert_int_equal(string_to_status_code("Address not found"), 0);
+ assert_int_equal(string_to_status_code("Connection timed out"), 1);
+}
+
+int main(int argc, char *argv[]) {
+ const UnitTest tests[] = {
+ unit_test(get_status_code_string_test),
+ unit_test(string_to_status_code_test),
+ };
+ return run_tests(tests);
+}
+
+
+
To test for memory leaks, buffer overflows and underflows a module being
+tested by cmocka should replace calls to malloc(), calloc() and
+free() to test_malloc(), test_calloc() and
+test_free() respectively. Each time a block is deallocated using
+test_free() it is checked for corruption, if a corrupt block is found
+a test failure is signalled. All blocks
+allocated using the test_*() allocation functions are tracked by the
+cmocka library. When a test completes if any allocated blocks (memory leaks)
+remain they are reported and a test failure is signalled.
+
For simplicity cmocka currently executes all tests in one process.
+Therefore all test cases in a test application share a single address space
+which means memory corruption from a single test case could potentially cause
+the test application to exit prematurely.
A unit test should ideally isolate the function or module being tested
+from any external dependencies. This can be performed using mock functions
+that are either statically or dynamically linked with the module being tested.
+Mock functions must be statically linked when the code being tested directly
+references external functions. Dynamic linking is simply the process of
+setting a function pointer in a table used by the tested module to reference
+a mock function defined in the unit test.
In order to simplify the implementation of mock functions cmocka provides
+functionality which stores return values for mock functions in each test
+case using will_return(). These values are then returned by each mock
+function using calls to mock().
+
+Values passed to will_return() are added to a queue for each function
+specified. Each successive call to mock() from a function removes a
+return value from the queue. This makes it possible for a mock function to use
+multiple calls to mock() to return output parameters in addition to a
+return value. In addition this allows the specification of return values for
+multiple calls to a mock function.
+
+
Using will_return()
+database.h
+
+typedef struct DatabaseConnection DatabaseConnection;
+
+/* Function that takes an SQL query string and sets results to an array of
+ * pointers with the result of the query. The value returned specifies the
+ * number of items in the returned array of results. The returned array of
+ * results are statically allocated and should not be deallocated using free()
+ */
+typedef unsigned int (*QueryDatabase)(
+ DatabaseConnection* const connection, const char * const query_string,
+ void *** const results);
+
+// Connection to a database.
+struct DatabaseConnection {
+ const char *url;
+ unsigned int port;
+ QueryDatabase query_database;
+};
+
+// Connect to a database.
+DatabaseConnection* connect_to_database(const char * const url,
+ const unsigned int port);
+
+customer_database.c
+
+#include <stddef.h>
+#include <stdio.h>
+#include <database.h>
+#ifdef _WIN32
+#define snprintf _snprintf
+#endif // _WIN32
+
+// Connect to the database containing customer information.
+DatabaseConnection* connect_to_customer_database() {
+ return connect_to_database("customers.abcd.org", 321);
+}
+
+/* Find the ID of a customer by his/her name returning a value > 0 if
+ * successful, 0 otherwise. */
+unsigned int get_customer_id_by_name(
+ DatabaseConnection * const connection,
+ const char * const customer_name) {
+ char query_string[256];
+ int number_of_results;
+ void **results;
+ snprintf(query_string, sizeof(query_string),
+ "SELECT ID FROM CUSTOMERS WHERE NAME = %s", customer_name);
+ number_of_results = connection->query_database(connection, query_string,
+ &results);
+ if (number_of_results != 1) {
+ return -1;
+ }
+ return (unsigned int)results[0];
+}
+
+customer_database_test.c
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+#include <database.h>
+
+
+extern DatabaseConnection* connect_to_customer_database();
+extern unsigned int get_customer_id_by_name(
+ DatabaseConnection * const connection, const char * const customer_name);
+
+// Mock query database function.
+unsigned int mock_query_database(
+ DatabaseConnection* const connection, const char * const query_string,
+ void *** const results) {
+ *results = (void**)mock();
+ return (unsigned int)mock();
+}
+
+// Mock of the connect to database function.
+DatabaseConnection* connect_to_database(const char * const database_url,
+ const unsigned int port) {
+ return (DatabaseConnection*)mock();
+}
+
+void test_connect_to_customer_database(void **state) {
+ will_return(connect_to_database, 0x0DA7ABA53);
+ assert_true(connect_to_customer_database() ==
+ (DatabaseConnection*)0x0DA7ABA53);
+}
+
+/* This test fails as the mock function connect_to_database() will have no
+ * value to return. */
+void fail_connect_to_customer_database(void **state) {
+ will_return(connect_to_database, 0x0DA7ABA53);
+ assert_true(connect_to_customer_database() ==
+ (DatabaseConnection*)0x0DA7ABA53);
+}
+
+void test_get_customer_id_by_name(void **state) {
+ DatabaseConnection connection = {
+ "somedatabase.somewhere.com", 12345678, mock_query_database
+ };
+ // Return a single customer ID when mock_query_database() is called.
+ int customer_ids = 543;
+ will_return(mock_query_database, &customer_ids);
+ will_return(mock_query_database, 1);
+ assert_int_equal(get_customer_id_by_name(&connection, "john doe"), 543);
+}
+
+int main(int argc, char* argv[]) {
+ const UnitTest tests[] = {
+ unit_test(test_connect_to_customer_database),
+ unit_test(fail_connect_to_customer_database),
+ unit_test(test_get_customer_id_by_name),
+ };
+ return run_tests(tests);
+}
+
+
+
In addition to storing the return values of mock functions, cmocka
+provides functionality to store expected values for mock function parameters
+using the expect_*() functions provided. A mock function parameter can then
+be validated using the check_expected() macro.
+
+
Successive calls to expect_*() macros for a parameter queues values to
+check the specified parameter. check_expected() checks a function parameter
+against the next value queued using expect_*(), if the parameter check fails a
+test failure is signalled. In addition if check_expected() is called and
+no more parameter values are queued a test failure occurs.
+
+
Using expect_*()
+product_database.c
+
+#include <database.h>
+
+// Connect to the database containing customer information.
+DatabaseConnection* connect_to_product_database() {
+ return connect_to_database("products.abcd.org", 322);
+}
+
+product_database_test.c
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+#include <database.h>
+
+extern DatabaseConnection* connect_to_product_database();
+
+/* Mock connect to database function.
+ * NOTE: This mock function is very general could be shared between tests
+ * that use the imaginary database.h module. */
+DatabaseConnection* connect_to_database(const char * const url,
+ const unsigned int port) {
+ check_expected(url);
+ check_expected(port);
+ return (DatabaseConnection*)mock();
+}
+
+void test_connect_to_product_database(void **state) {
+ expect_string(connect_to_database, url, "products.abcd.org");
+ expect_value(connect_to_database, port, 322);
+ will_return(connect_to_database, 0xDA7ABA53);
+ assert_int_equal(connect_to_product_database(), 0xDA7ABA53);
+}
+
+/* This test will fail since the expected URL is different to the URL that is
+ * passed to connect_to_database() by connect_to_product_database(). */
+void test_connect_to_product_database_bad_url(void **state) {
+ expect_string(connect_to_database, url, "products.abcd.com");
+ expect_value(connect_to_database, port, 322);
+ will_return(connect_to_database, 0xDA7ABA53);
+ assert_int_equal((int)connect_to_product_database(), 0xDA7ABA53);
+}
+
+/* This test will fail since the mock connect_to_database() will attempt to
+ * retrieve a value for the parameter port which isn't specified by this
+ * test function. */
+void test_connect_to_product_database_missing_parameter(void **state) {
+ expect_string(connect_to_database, url, "products.abcd.org");
+ will_return(connect_to_database, 0xDA7ABA53);
+ assert_int_equal((int)connect_to_product_database(), 0xDA7ABA53);
+}
+
+int main(int argc, char* argv[]) {
+ const UnitTest tests[] = {
+ unit_test(test_connect_to_product_database),
+ unit_test(test_connect_to_product_database_bad_url),
+ unit_test(test_connect_to_product_database_missing_parameter),
+ };
+ return run_tests(tests);
+}
+
+
+
cmocka allows the specification of multiple setup and tear down functions
+for each test case. Setup functions, specified by the unit_test_setup()
+or unit_test_setup_teardown() macros allow common initialization to be
+shared between multiple test cases. In addition, tear down functions,
+specified by the unit_test_teardown() or
+unit_test_setup_teardown() macros provide a code path that is always
+executed for a test case even when it fails.
+
+
Using unit_test_setup_teardown()
+key_value.c
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct KeyValue {
+ unsigned int key;
+ const char* value;
+} KeyValue;
+
+static KeyValue *key_values = NULL;
+static unsigned int number_of_key_values = 0;
+
+void set_key_values(KeyValue * const new_key_values,
+ const unsigned int new_number_of_key_values) {
+ key_values = new_key_values;
+ number_of_key_values = new_number_of_key_values;
+}
+
+// Compare two key members of KeyValue structures.
+int key_value_compare_keys(const void *a, const void *b) {
+ return (int)((KeyValue*)a)->key - (int)((KeyValue*)b)->key;
+}
+
+// Search an array of key value pairs for the item with the specified value.
+KeyValue* find_item_by_value(const char * const value) {
+ unsigned int i;
+ for (i = 0; i < number_of_key_values; i++) {
+ if (strcmp(key_values[i].value, value) == 0) {
+ return &key_values[i];
+ }
+ }
+ return NULL;
+}
+
+// Sort an array of key value pairs by key.
+void sort_items_by_key() {
+ qsort(key_values, number_of_key_values, sizeof(*key_values),
+ key_value_compare_keys);
+}
+
+key_value_test.c
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <string.h>
+#include <cmocka.h>
+
+/* This is duplicated here from the module setup_teardown.c to reduce the
+ * number of files used in this test. */
+typedef struct KeyValue {
+ unsigned int key;
+ const char* value;
+} KeyValue;
+
+void set_key_values(KeyValue * const new_key_values,
+ const unsigned int new_number_of_key_values);
+extern KeyValue* find_item_by_value(const char * const value);
+extern void sort_items_by_key();
+
+static KeyValue key_values[] = {
+ { 10, "this" },
+ { 52, "test" },
+ { 20, "a" },
+ { 13, "is" },
+};
+
+void create_key_values(void **state) {
+ KeyValue * const items = (KeyValue*)test_malloc(sizeof(key_values));
+ memcpy(items, key_values, sizeof(key_values));
+ *state = (void*)items;
+ set_key_values(items, sizeof(key_values) / sizeof(key_values[0]));
+}
+
+void destroy_key_values(void **state) {
+ test_free(*state);
+ set_key_values(NULL, 0);
+}
+
+void test_find_item_by_value(void **state) {
+ unsigned int i;
+ for (i = 0; i < sizeof(key_values) / sizeof(key_values[0]); i++) {
+ KeyValue * const found = find_item_by_value(key_values[i].value);
+ assert_true(found);
+ assert_int_equal(found->key, key_values[i].key);
+ assert_string_equal(found->value, key_values[i].value);
+ }
+}
+
+void test_sort_items_by_key(void **state) {
+ unsigned int i;
+ KeyValue * const kv = *state;
+ sort_items_by_key();
+ for (i = 1; i < sizeof(key_values) / sizeof(key_values[0]); i++) {
+ assert_true(kv[i - 1].key < kv[i].key);
+ }
+}
+
+int main(int argc, char* argv[]) {
+ const UnitTest tests[] = {
+ unit_test_setup_teardown(test_find_item_by_value, create_key_values,
+ destroy_key_values),
+ unit_test_setup_teardown(test_sort_items_by_key, create_key_values,
+ destroy_key_values),
+ };
+ return run_tests(tests);
+}
+
+
+
A small command line calculator
+calculator.c application
+and test application that full exercises the calculator application
+calculator_test.c
+are provided as an example of cmocka's features discussed in this document.
+
+
+
+
+ Last modified: Wed Jul 22 12:11:43 PDT 2009
+
diff --git a/tests/cmocka-1.1.0/doc/mainpage.dox b/tests/cmocka-1.1.0/doc/mainpage.dox
new file mode 100644
index 0000000..329b840
--- /dev/null
+++ b/tests/cmocka-1.1.0/doc/mainpage.dox
@@ -0,0 +1,133 @@
+/**
+
+@mainpage
+
+This is the online reference for developing with the cmocka library. It
+documents the cmocka C API.
+
+cmocka is an elegant unit testing framework for C with support for mock
+objects. It only requires the standard C library, works on a lot of platforms
+(including embedded) and with different compilers.
+
+http://cmocka.org/
+
+@section main-features Features
+
+Tests written with cmocka are compiled into stand-alone executables and linked with the
+CMock library, the standard C library and module being tested. Any symbols
+external to the module being tested should be mocked - replaced with functions
+that return values determined by the test - within the test application. Even
+though significant differences may exist between the target execution
+environment of a code module and the environment used to test the code the unit
+testing is still valid since its goal is to test the logic of a code modules at
+a functional level and not necessarily all of its interactions with the target
+execution environment.
+
+The CMocka library provides:
+
+ - Support for mock objects.
+ - Test fixtures.
+ - Only requires a C library
+ - Exception handling for signals (SIGSEGV, SIGILL, ...)
+ - No use of fork()
+ - Very well tested
+ - Testing of memory leaks, buffer overflows and underflows.
+ - A set of assert macros.
+ - Several supported output formats (stdout, TAP, xUnit XML, Subunit)
+ - License: Apache License 2.0
+
+@section main-test A cmocka test
+
+Test cases are functions with the signature void function(void **state). Test
+applications initialize a table with test case function pointers using
+unit_test() macros. This table is then passed to the run_tests() macro to
+execute the tests. run_tests() sets up the appropriate exception / signal
+handlers and other data structures prior to running each test function. When a
+unit test is complete run_tests() performs various checks to determine whether
+the test succeeded.
+
+@code
+#include
+#include
+#include
+#include
+
+/* A test case that does nothing and succeeds. */
+static void null_test_success(void **state) {
+ (void) state; /* unused */
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(null_test_success),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
+@endcode
+
+@section main-mock Mock objects
+
+You may already have heard the term "Mock Object". It describes a special case
+of an object that mimics a real instance of an interface in order to provide
+enough of that interface for testing. While there are several unit testing
+frameworks that already provide some easy to use interface for creating
+different kinds of "fake" objects for testing, there may be some confusion in
+terms of how these test objects are programmed and what the behavioral
+differences are between them.
+
+Mock objects include some logic and the test driver is able to modify the
+behaviour and state. The object can call some functions or act on different
+input (abort a test if it is wrong). The test driver injects what it expects
+the mock object to return. CMocka provides and API to easily mock code.
+
+Learn more ...
+
+@section main-embedded Embedded platforms
+
+It is possible that some embedded platforms do not provide definitions for
+required types or that the guards to protect them are not defined. To address
+this issue you can create a header file name 'cmocka_platform.h' with the
+required types and definitions. After that point cmake to the include directory
+using:
+
+
+
+@section main-threads Threading
+
+cmocka is not fully thread safe and it is not the goal of it to be it. We have
+several global variables to track test states. They are marked as thread local
+but it is possible that you still run into issues. However if you use cmocka
+for writing tests in an application which uses threads, you can set the
+following envionment variable:
+
+
+ CMOCKA_TEST_ABORT='1' ./my_threading_test
+
+
+With this environment variable set to '1', cmocka will call abort() if
+a test fails.
+
+@section main-output Output formats
+
+By default, cmocka prints human-readable test output to stderr. It is
+possible to configure several other output formats. The configuration is
+done using the CMOCKA_MESSAGE_OUTPUT environment variable. The
+supported values are:
+ - STDOUT for the default standard output printer
+ - SUBUNIT for subunit output
+ - TAP for Test Anything Protocol (TAP) output
+ - XML for xUnit XML format
+The case doesn't matter.
+
+The XML output goes to stderr by default. If the environment variable
+CMOCKA_XML_FILE exists and the file specified by this variable
+doesn't exist yet, then cmocka will put the output to this file. Note
+that if you are have several groups you should set CMOCKA_XML_FILE
+to CMOCKA_XML_FILE=cm_%g.xml. In this %g will be replaced by
+the group_name of the test and a file will be created for each group,
+othwerwise all groups will be printed into the same file.
+
+*/
diff --git a/tests/cmocka-1.1.0/example/CMakeLists.txt b/tests/cmocka-1.1.0/example/CMakeLists.txt
new file mode 100644
index 0000000..4951733
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/CMakeLists.txt
@@ -0,0 +1,140 @@
+project(cmocka-examples C)
+
+include_directories(
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMOCKA_PUBLIC_INCLUDE_DIRS}
+)
+
+set_source_files_properties(
+ calculator.c
+ allocate_module.c
+ assert_module.c
+ PROPERTIES
+ COMPILE_DEFINITIONS UNIT_TESTING=1)
+
+
+if (WIN32 OR CYGWIN OR MINGW)
+ set(CMOCKA_DLL_LIB ${CMAKE_BINARY_DIR}/src)
+ file(TO_NATIVE_PATH "${CMOCKA_DLL_PATH}" CMOCKA_DLL_PATH)
+ set(DLL_PATH_ENV "${CMOCKA_DLL_PATH};$ENV{PATH}")
+
+ #
+ # IMPORTANT NOTE: The set_tests_properties(), below, internally
+ # stores its name/value pairs with a semicolon delimiter.
+ # because of this we must protect the semicolons in the path
+ #
+ string(REPLACE ";" "\\;" DLL_PATH_ENV "${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+
+### The most simple test
+add_executable(simple_test simple_test.c)
+target_link_libraries(simple_test ${CMOCKA_SHARED_LIBRARY})
+
+add_test(simple_test ${CMAKE_CURRENT_BINARY_DIR}/simple_test)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(simple_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+### Calulator test
+#TODO investigate dll jmp issue on MinGW
+if (NOT MINGW OR WITH_STATIC_LIB)
+ add_executable(calculator_test calculator.c calculator_test.c)
+ add_test(calculator_test ${CMAKE_CURRENT_BINARY_DIR}/calculator_test)
+ if (WIN32 OR CYGWIN)
+ set_tests_properties(calculator_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+ endif (WIN32 OR CYGWIN)
+
+ if (MINGW)
+ target_link_libraries(calculator_test ${CMOCKA_STATIC_LIBRARY})
+ else (MINGW)
+ target_link_libraries(calculator_test ${CMOCKA_SHARED_LIBRARY})
+ endif (MINGW)
+
+ if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(calculator_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+ endif (WIN32 OR CYGWIN OR MINGW)
+endif (NOT MINGW OR WITH_STATIC_LIB)
+
+### Allocate module test
+add_executable(allocate_module_test allocate_module.c allocate_module_test.c)
+target_link_libraries(allocate_module_test ${CMOCKA_SHARED_LIBRARY})
+
+# This is a test that should detect leaks and overflows and will fail for that
+add_test(allocate_module_test ${CMAKE_CURRENT_BINARY_DIR}/allocate_module_test)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(allocate_module_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+set_tests_properties(
+ allocate_module_test
+ PROPERTIES
+ WILL_FAIL 1
+)
+
+### Assert macro test
+add_executable(assert_macro_test assert_macro.c assert_macro_test.c)
+target_link_libraries(assert_macro_test ${CMOCKA_SHARED_LIBRARY})
+
+add_test(assert_macro_test ${CMAKE_CURRENT_BINARY_DIR}/assert_macro_test)
+set_tests_properties(
+ assert_macro_test
+ PROPERTIES
+ WILL_FAIL 1
+)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(assert_macro_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+### Assert module test
+add_executable(assert_module_test assert_module.c assert_module_test.c)
+target_link_libraries(assert_module_test ${CMOCKA_SHARED_LIBRARY})
+
+add_test(assert_module_test ${CMAKE_CURRENT_BINARY_DIR}/assert_module_test)
+set_tests_properties(
+ assert_module_test
+ PROPERTIES
+ WILL_FAIL 1
+)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(assert_module_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+### Customer database test
+add_executable(customer_database_test customer_database.c customer_database_test.c)
+target_link_libraries(customer_database_test ${CMOCKA_SHARED_LIBRARY})
+
+add_test(customer_database_test ${CMAKE_CURRENT_BINARY_DIR}/customer_database_test)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(customer_database_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+### Key Value Test
+add_executable(key_value_test key_value.c key_value_test.c)
+target_link_libraries(key_value_test ${CMOCKA_SHARED_LIBRARY})
+
+add_test(key_value_test ${CMAKE_CURRENT_BINARY_DIR}/key_value_test)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(key_value_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+### Product database test
+add_executable(product_database_test product_database.c product_database_test.c)
+target_link_libraries(product_database_test ${CMOCKA_SHARED_LIBRARY})
+
+add_test(product_database_test ${CMAKE_CURRENT_BINARY_DIR}/product_database_test)
+set_tests_properties(
+ product_database_test
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ FAILED \\] 2 test"
+)
+if (WIN32 OR CYGWIN OR MINGW)
+ set_tests_properties(product_database_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR CYGWIN OR MINGW)
+
+# TODO Execute "$CMAKE_LINKER --help" and check for --wrap
+if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)" AND NOT APPLE)
+ add_subdirectory(chef_wrap)
+endif()
diff --git a/tests/cmocka-1.1.0/example/allocate_module.c b/tests/cmocka-1.1.0/example/allocate_module.c
new file mode 100644
index 0000000..3c4fb49
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/allocate_module.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#ifdef HAVE_MALLOC_H
+#include
+#endif
+#include
+#include
+
+#ifdef UNIT_TESTING
+extern void* _test_malloc(const size_t size, const char* file, const int line);
+extern void* _test_calloc(const size_t number_of_elements, const size_t size,
+ const char* file, const int line);
+extern void _test_free(void* const ptr, const char* file, const int line);
+
+#define malloc(size) _test_malloc(size, __FILE__, __LINE__)
+#define calloc(num, size) _test_calloc(num, size, __FILE__, __LINE__)
+#define free(ptr) _test_free(ptr, __FILE__, __LINE__)
+#endif // UNIT_TESTING
+
+void leak_memory(void);
+void buffer_overflow(void);
+void buffer_underflow(void);
+
+void leak_memory(void) {
+ int * const temporary = (int*)malloc(sizeof(int));
+ *temporary = 0;
+}
+
+void buffer_overflow(void) {
+ char * const memory = (char*)malloc(sizeof(int));
+ memory[sizeof(int)] = '!';
+ free(memory);
+}
+
+void buffer_underflow(void) {
+ char * const memory = (char*)malloc(sizeof(int));
+ memory[-1] = '!';
+ free(memory);
+}
diff --git a/tests/cmocka-1.1.0/example/allocate_module_test.c b/tests/cmocka-1.1.0/example/allocate_module_test.c
new file mode 100644
index 0000000..cd5d371
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/allocate_module_test.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+
+extern void leak_memory();
+extern void buffer_overflow();
+extern void buffer_underflow();
+
+/* Test case that fails as leak_memory() leaks a dynamically allocated block. */
+static void leak_memory_test(void **state) {
+ (void) state; /* unused */
+
+ leak_memory();
+}
+
+/* Test case that fails as buffer_overflow() corrupts an allocated block. */
+static void buffer_overflow_test(void **state) {
+ (void) state; /* unused */
+
+ buffer_overflow();
+}
+
+/* Test case that fails as buffer_underflow() corrupts an allocated block. */
+static void buffer_underflow_test(void **state) {
+ (void) state; /* unused */
+
+ buffer_underflow();
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(leak_memory_test),
+ cmocka_unit_test(buffer_overflow_test),
+ cmocka_unit_test(buffer_underflow_test),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/assert_macro.c b/tests/cmocka-1.1.0/example/assert_macro.c
new file mode 100644
index 0000000..9590590
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/assert_macro.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include "assert_macro.h"
+
+static const char* status_code_strings[] = {
+ "Address not found",
+ "Connection dropped",
+ "Connection timed out",
+};
+
+const char* get_status_code_string(const unsigned int status_code) {
+ return status_code_strings[status_code];
+}
+
+unsigned int string_to_status_code(const char* const status_code_string) {
+ unsigned int i;
+ for (i = 0; i < sizeof(status_code_strings) /
+ sizeof(status_code_strings[0]); i++) {
+ if (strcmp(status_code_strings[i], status_code_string) == 0) {
+ return i;
+ }
+ }
+ return ~0U;
+}
diff --git a/tests/cmocka-1.1.0/example/assert_macro.h b/tests/cmocka-1.1.0/example/assert_macro.h
new file mode 100644
index 0000000..789380c
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/assert_macro.h
@@ -0,0 +1,2 @@
+const char* get_status_code_string(const unsigned int status_code);
+unsigned int string_to_status_code(const char* const status_code_string);
diff --git a/tests/cmocka-1.1.0/example/assert_macro_test.c b/tests/cmocka-1.1.0/example/assert_macro_test.c
new file mode 100644
index 0000000..2cd355c
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/assert_macro_test.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+
+#include "assert_macro.h"
+
+/* This test will fail since the string returned by get_status_code_string(0)
+ * doesn't match "Connection timed out". */
+static void get_status_code_string_test(void **state) {
+ (void) state; /* unused */
+
+ assert_string_equal(get_status_code_string(0), "Address not found");
+ assert_string_equal(get_status_code_string(1), "Connection timed out");
+}
+
+/* This test will fail since the status code of "Connection timed out" isn't 1 */
+static void string_to_status_code_test(void **state) {
+ (void) state; /* unused */
+
+ assert_int_equal(string_to_status_code("Address not found"), 0);
+ assert_int_equal(string_to_status_code("Connection timed out"), 1);
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(get_status_code_string_test),
+ cmocka_unit_test(string_to_status_code_test),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/assert_module.c b/tests/cmocka-1.1.0/example/assert_module.c
new file mode 100644
index 0000000..381069b
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/assert_module.c
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+
+#include "assert_module.h"
+
+/* If unit testing is enabled override assert with mock_assert(). */
+#ifdef UNIT_TESTING
+extern void mock_assert(const int result, const char* const expression,
+ const char * const file, const int line);
+#undef assert
+#define assert(expression) \
+ mock_assert(((expression) ? 1 : 0), #expression, __FILE__, __LINE__);
+#endif /* UNIT_TESTING */
+
+void increment_value(int * const value) {
+ assert(value);
+ (*value) ++;
+}
+
+void decrement_value(int * const value) {
+ if (value) {
+ (*value) --;
+ }
+}
diff --git a/tests/cmocka-1.1.0/example/assert_module.h b/tests/cmocka-1.1.0/example/assert_module.h
new file mode 100644
index 0000000..b68b4d9
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/assert_module.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+void increment_value(int * const value);
+void decrement_value(int * const value);
diff --git a/tests/cmocka-1.1.0/example/assert_module_test.c b/tests/cmocka-1.1.0/example/assert_module_test.c
new file mode 100644
index 0000000..f387754
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/assert_module_test.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+
+#include "assert_module.h"
+
+extern void increment_value(int * const value);
+
+/* This test case will fail but the assert is caught by run_tests() and the
+ * next test is executed. */
+static void increment_value_fail(void **state) {
+ (void) state;
+
+ increment_value(NULL);
+}
+
+/* This test case succeeds since increment_value() asserts on the NULL
+ * pointer. */
+static void increment_value_assert(void **state) {
+ (void) state;
+
+ expect_assert_failure(increment_value(NULL));
+}
+
+/* This test case fails since decrement_value() doesn't assert on a NULL
+ * pointer. */
+static void decrement_value_fail(void **state) {
+ (void) state;
+
+ expect_assert_failure(decrement_value(NULL));
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(increment_value_fail),
+ cmocka_unit_test(increment_value_assert),
+ cmocka_unit_test(decrement_value_fail),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/calculator.c b/tests/cmocka-1.1.0/example/calculator.c
new file mode 100644
index 0000000..307b551
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/calculator.c
@@ -0,0 +1,286 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* A calculator example used to demonstrate the cmocka testing library. */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include
+#ifdef HAVE_MALLOC_H
+#include
+#endif
+#include
+#include
+#include
+
+/* If this is being built for a unit test. */
+#ifdef UNIT_TESTING
+
+/* Redirect printf to a function in the test application so it's possible to
+ * test the standard output. */
+#ifdef printf
+#undef printf
+#endif /* printf */
+extern int example_test_printf(const char *format, ...);
+#define printf example_test_printf
+
+extern void print_message(const char *format, ...);
+
+/* Redirect fprintf to a function in the test application so it's possible to
+ * test error messages. */
+#ifdef fprintf
+#undef fprintf
+#endif /* fprintf */
+#define fprintf example_test_fprintf
+
+extern int example_test_fprintf(FILE * const file, const char *format, ...);
+
+/* Redirect assert to mock_assert() so assertions can be caught by cmocka. */
+#ifdef assert
+#undef assert
+#endif /* assert */
+#define assert(expression) \
+ mock_assert((int)(expression), #expression, __FILE__, __LINE__)
+void mock_assert(const int result, const char* expression, const char *file,
+ const int line);
+
+/* Redirect calloc and free to test_calloc() and test_free() so cmocka can
+ * check for memory leaks. */
+#ifdef calloc
+#undef calloc
+#endif /* calloc */
+#define calloc(num, size) _test_calloc(num, size, __FILE__, __LINE__)
+#ifdef free
+#undef free
+#endif /* free */
+#define free(ptr) _test_free(ptr, __FILE__, __LINE__)
+void* _test_calloc(const size_t number_of_elements, const size_t size,
+ const char* file, const int line);
+void _test_free(void* const ptr, const char* file, const int line);
+
+int example_main(int argc, char *argv[]);
+/* main is defined in the unit test so redefine name of the the main function
+ * here. */
+#define main example_main
+
+/* All functions in this object need to be exposed to the test application,
+ * so redefine static to nothing. */
+#define static
+
+#endif /* UNIT_TESTING */
+
+
+/* A binary arithmetic integer operation (add, subtract etc.) */
+typedef int (*BinaryOperator)(int a, int b);
+
+/* Structure which maps operator strings to functions. */
+typedef struct OperatorFunction {
+ const char* operator;
+ BinaryOperator function;
+} OperatorFunction;
+
+
+BinaryOperator find_operator_function_by_string(
+ const size_t number_of_operator_functions,
+ const OperatorFunction * const operator_functions,
+ const char* const operator_string);
+
+int perform_operation(
+ int number_of_arguments, char *arguments[],
+ const size_t number_of_operator_functions,
+ const OperatorFunction * const operator_functions,
+ int * const number_of_intermediate_values,
+ int ** const intermediate_values, int * const error_occurred);
+
+static int add(int a, int b);
+static int subtract(int a, int b);
+static int multiply(int a, int b);
+static int divide(int a, int b);
+
+/* Associate operator strings to functions. */
+static OperatorFunction operator_function_map[] = {
+ {"+", add},
+ {"-", subtract},
+ {"*", multiply},
+ {"/", divide},
+};
+
+static int add(int a, int b) {
+ return a + b;
+}
+
+static int subtract(int a, int b) {
+ return a - b;
+}
+
+static int multiply(int a, int b) {
+ return a * b;
+}
+
+static int divide(int a, int b) {
+ assert(b); /* Check for divide by zero. */
+ return a / b;
+}
+
+/* Searches the specified array of operator_functions for the function
+ * associated with the specified operator_string. This function returns the
+ * function associated with operator_string if successful, NULL otherwise.
+ */
+BinaryOperator find_operator_function_by_string(
+ const size_t number_of_operator_functions,
+ const OperatorFunction * const operator_functions,
+ const char* const operator_string) {
+ size_t i;
+ assert(!number_of_operator_functions || operator_functions);
+ assert(operator_string != NULL);
+
+ for (i = 0; i < number_of_operator_functions; i++) {
+ const OperatorFunction *const operator_function =
+ &operator_functions[i];
+ if (strcmp(operator_function->operator, operator_string) == 0) {
+ return operator_function->function;
+ }
+ }
+ return NULL;
+}
+
+/* Perform a series of binary arithmetic integer operations with no operator
+ * precedence.
+ *
+ * The input expression is specified by arguments which is an array of
+ * containing number_of_arguments strings. Operators invoked by the expression
+ * are specified by the array operator_functions containing
+ * number_of_operator_functions, OperatorFunction structures. The value of
+ * each binary operation is stored in a pointer returned to intermediate_values
+ * which is allocated by malloc().
+ *
+ * If successful, this function returns the integer result of the operations.
+ * If an error occurs while performing the operation error_occurred is set to
+ * 1, the operation is aborted and 0 is returned.
+ */
+int perform_operation(
+ int number_of_arguments, char *arguments[],
+ const size_t number_of_operator_functions,
+ const OperatorFunction * const operator_functions,
+ int * const number_of_intermediate_values,
+ int ** const intermediate_values, int * const error_occurred) {
+ char *end_of_integer;
+ int value;
+ int i;
+ assert(!number_of_arguments || arguments);
+ assert(!number_of_operator_functions || operator_functions);
+ assert(error_occurred != NULL);
+ assert(number_of_intermediate_values != NULL);
+ assert(intermediate_values != NULL);
+
+ *error_occurred = 0;
+ *number_of_intermediate_values = 0;
+ *intermediate_values = NULL;
+ if (!number_of_arguments)
+ return 0;
+
+ /* Parse the first value. */
+ value = (int)strtol(arguments[0], &end_of_integer, 10);
+ if (end_of_integer == arguments[0]) {
+ /* If an error occurred while parsing the integer. */
+ fprintf(stderr, "Unable to parse integer from argument %s\n",
+ arguments[0]);
+ *error_occurred = 1;
+ return 0;
+ }
+
+ /* Allocate an array for the output values. */
+ *intermediate_values = calloc(((number_of_arguments - 1) / 2),
+ sizeof(**intermediate_values));
+
+ i = 1;
+ while (i < number_of_arguments) {
+ int other_value;
+ const char* const operator_string = arguments[i];
+ const BinaryOperator function = find_operator_function_by_string(
+ number_of_operator_functions, operator_functions, operator_string);
+ int * const intermediate_value =
+ &((*intermediate_values)[*number_of_intermediate_values]);
+ (*number_of_intermediate_values) ++;
+
+ if (!function) {
+ fprintf(stderr, "Unknown operator %s, argument %d\n",
+ operator_string, i);
+ *error_occurred = 1;
+ break;
+ }
+ i ++;
+
+ if (i == number_of_arguments) {
+ fprintf(stderr, "Binary operator %s missing argument\n",
+ operator_string);
+ *error_occurred = 1;
+ break;
+ }
+
+ other_value = (int)strtol(arguments[i], &end_of_integer, 10);
+ if (end_of_integer == arguments[i]) {
+ /* If an error occurred while parsing the integer. */
+ fprintf(stderr, "Unable to parse integer %s of argument %d\n",
+ arguments[i], i);
+ *error_occurred = 1;
+ break;
+ }
+ i ++;
+
+ /* Perform the operation and store the intermediate value. */
+ *intermediate_value = function(value, other_value);
+ value = *intermediate_value;
+ }
+ if (*error_occurred) {
+ free(*intermediate_values);
+ *intermediate_values = NULL;
+ *number_of_intermediate_values = 0;
+ return 0;
+ }
+ return value;
+}
+
+int main(int argc, char *argv[]) {
+ int return_value;
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ /* Peform the operation. */
+ const int result = perform_operation(
+ argc - 1, &argv[1],
+ sizeof(operator_function_map) / sizeof(operator_function_map[0]),
+ operator_function_map, &number_of_intermediate_values,
+ &intermediate_values, &return_value);
+
+ /* If no errors occurred display the result. */
+ if (!return_value && argc > 1) {
+ int i;
+ int intermediate_value_index = 0;
+ printf("%s\n", argv[1]);
+ for (i = 2; i < argc; i += 2) {
+ assert(intermediate_value_index < number_of_intermediate_values);
+ printf(" %s %s = %d\n", argv[i], argv[i + 1],
+ intermediate_values[intermediate_value_index++]);
+ }
+ printf("= %d\n", result);
+ }
+ if (intermediate_values) {
+ free(intermediate_values);
+ }
+
+ return return_value;
+}
diff --git a/tests/cmocka-1.1.0/example/calculator_test.c b/tests/cmocka-1.1.0/example/calculator_test.c
new file mode 100644
index 0000000..ab8cad8
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/calculator_test.c
@@ -0,0 +1,482 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include "cmocka.h"
+#include
+
+#ifdef _WIN32
+/* Compatibility with the Windows standard C library. */
+#define vsnprintf _vsnprintf
+#endif /* _WIN32 */
+
+#define array_length(x) (sizeof(x) / sizeof((x)[0]))
+
+/* To simplify this code, these functions and data structures could have been
+ * separated out from the application example.c into a header shared with
+ * test application. However, this example illustrates how it's possible to
+ * test existing code with little modification. */
+
+typedef int (*BinaryOperator)(int a, int b);
+
+typedef struct OperatorFunction {
+ const char* operator;
+ BinaryOperator function;
+} OperatorFunction;
+
+extern int add(int a, int b);
+extern int subtract(int a, int b);
+extern int multiply(int a, int b);
+extern int divide(int a, int b);
+extern BinaryOperator find_operator_function_by_string(
+ const size_t number_of_operator_functions,
+ const OperatorFunction * const operator_functions,
+ const char* const operator_string);
+extern int perform_operation(
+ int number_of_arguments, char *arguments[],
+ const size_t number_of_operator_functions,
+ const OperatorFunction * const operator_functions,
+ int * const number_of_intermediate_values,
+ int ** const intermediate_values, int * const error_occurred);
+extern int example_main(int argc, char *argv[]);
+
+int example_test_fprintf(FILE* const file, const char *format, ...) CMOCKA_PRINTF_ATTRIBUTE(2, 3);
+int example_test_printf(const char *format, ...) CMOCKA_PRINTF_ATTRIBUTE(1, 2);
+
+static char temporary_buffer[256];
+
+/* A mock fprintf function that checks the value of strings printed to the
+ * standard error stream. */
+int example_test_fprintf(FILE* const file, const char *format, ...) {
+ int return_value;
+ va_list args;
+ assert_true(file == stderr);
+ va_start(args, format);
+ return_value = vsnprintf(temporary_buffer, sizeof(temporary_buffer),
+ format, args);
+ check_expected_ptr(temporary_buffer);
+ va_end(args);
+ return return_value;
+}
+
+/* A mock printf function that checks the value of strings printed to the
+ * standard output stream. */
+int example_test_printf(const char *format, ...) {
+ int return_value;
+ va_list args;
+ va_start(args, format);
+ return_value = vsnprintf(temporary_buffer, sizeof(temporary_buffer),
+ format, args);
+ check_expected_ptr(temporary_buffer);
+ va_end(args);
+ return return_value;
+}
+
+/* A mock binary operator function. */
+static int binary_operator(int a, int b) {
+ check_expected(a);
+ check_expected(b);
+ return (int)mock();
+}
+
+
+/* Ensure add() adds two integers correctly. */
+static void test_add(void **state) {
+ (void) state; /* unused */
+
+ assert_int_equal(add(3, 3), 6);
+ assert_int_equal(add(3, -3), 0);
+}
+
+/* Ensure subtract() subtracts two integers correctly. */
+static void test_subtract(void **state) {
+ (void) state; /* unused */
+
+ assert_int_equal(subtract(3, 3), 0);
+ assert_int_equal(subtract(3, -3), 6);
+}
+
+/* Ensure multiple() mulitplies two integers correctly. */
+static void test_multiply(void **state) {
+ (void) state; /* unused */
+
+ assert_int_equal(multiply(3, 3), 9);
+ assert_int_equal(multiply(3, 0), 0);
+}
+
+/* Ensure divide() divides one integer by another correctly. */
+static void test_divide(void **state) {
+ (void) state; /* unused */
+
+ assert_int_equal(divide(10, 2), 5);
+ assert_int_equal(divide(2, 10), 0);
+}
+
+/* Ensure divide() asserts when trying to divide by zero. */
+static void test_divide_by_zero(void **state) {
+ (void) state; /* unused */
+
+ expect_assert_failure(divide(100, 0));
+}
+
+/* Ensure find_operator_function_by_string() asserts when a NULL pointer is
+ * specified as the table to search. */
+static void test_find_operator_function_by_string_null_functions(void **state) {
+ (void) state; /* unused */
+
+ expect_assert_failure(find_operator_function_by_string(1, NULL, "test"));
+}
+
+/* Ensure find_operator_function_by_string() asserts when a NULL pointer is
+ * specified as the string to search for. */
+static void test_find_operator_function_by_string_null_string(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+
+ (void) state; /* unused */
+
+ expect_assert_failure(find_operator_function_by_string(
+ array_length(operator_functions), operator_functions, NULL));
+}
+
+/* Ensure find_operator_function_by_string() returns NULL when a NULL pointer
+ * is specified as the table to search when the table size is 0. */
+static void test_find_operator_function_by_string_valid_null_functions(void **state) {
+ (void) state; /* unused */
+
+ assert_null(find_operator_function_by_string(0, NULL, "test"));
+}
+
+/* Ensure find_operator_function_by_string() returns NULL when searching for
+ * an operator string that isn't in the specified table. */
+static void test_find_operator_function_by_string_not_found(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ {"-", binary_operator},
+ {"/", binary_operator},
+ };
+
+ (void) state; /* unused */
+
+ assert_null(find_operator_function_by_string(
+ array_length(operator_functions), operator_functions, "test"));
+}
+
+/* Ensure find_operator_function_by_string() returns the correct function when
+ * searching for an operator string that is in the specified table. */
+static void test_find_operator_function_by_string_found(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", (BinaryOperator)0x12345678},
+ {"-", (BinaryOperator)0xDEADBEEF},
+ {"/", (BinaryOperator)0xABADCAFE},
+ };
+
+ (void) state; /* unused */
+
+ assert_int_equal(
+ cast_ptr_to_largest_integral_type(
+ find_operator_function_by_string(array_length(operator_functions),
+ operator_functions,
+ "-")),
+ 0xDEADBEEF);
+}
+
+/* Ensure perform_operation() asserts when a NULL arguments array is specified. */
+static void test_perform_operation_null_args(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_assert_failure(perform_operation(
+ 1, NULL, array_length(operator_functions), operator_functions,
+ &number_of_intermediate_values, &intermediate_values,
+ &error_occurred));
+}
+
+/* Ensure perform_operation() asserts when a NULL operator_functions array is
+ * specified. */
+static void test_perform_operation_null_operator_functions(void **state) {
+ const char *args[] = {
+ "1", "+", "2", "*", "4"
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_assert_failure(perform_operation(
+ array_length(args), (char **) args, 1, NULL, &number_of_intermediate_values,
+ &intermediate_values, &error_occurred));
+}
+
+/* Ensure perform_operation() asserts when a NULL pointer is specified for
+ * number_of_intermediate_values. */
+static void test_perform_operation_null_number_of_intermediate_values(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ const char *args[] = {
+ "1", "+", "2", "*", "4"
+ };
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_assert_failure(perform_operation(
+ array_length(args), (char **) args, 1, operator_functions, NULL,
+ &intermediate_values, &error_occurred));
+}
+
+/* Ensure perform_operation() asserts when a NULL pointer is specified for
+ * intermediate_values. */
+static void test_perform_operation_null_intermediate_values(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ const char *args[] = {
+ "1", "+", "2", "*", "4"
+ };
+ int number_of_intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_assert_failure(perform_operation(
+ array_length(args), (char **) args, array_length(operator_functions),
+ operator_functions, &number_of_intermediate_values, NULL,
+ &error_occurred));
+}
+
+/* Ensure perform_operation() returns 0 when no arguments are specified. */
+static void test_perform_operation_no_arguments(void **state) {
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ assert_int_equal(perform_operation(
+ 0, NULL, 0, NULL, &number_of_intermediate_values, &intermediate_values,
+ &error_occurred), 0);
+ assert_int_equal(error_occurred, 0);
+}
+
+/* Ensure perform_operation() returns an error if the first argument isn't
+ * an integer string. */
+static void test_perform_operation_first_arg_not_integer(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ const char *args[] = {
+ "test", "+", "2", "*", "4"
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_string(example_test_fprintf, temporary_buffer,
+ "Unable to parse integer from argument test\n");
+
+ assert_int_equal(perform_operation(
+ array_length(args), (char **) args, array_length(operator_functions),
+ operator_functions, &number_of_intermediate_values,
+ &intermediate_values, &error_occurred), 0);
+ assert_int_equal(error_occurred, 1);
+}
+
+/* Ensure perform_operation() returns an error when parsing an unknown
+ * operator. */
+static void test_perform_operation_unknown_operator(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ const char *args[] = {
+ "1", "*", "2", "*", "4"
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_string(example_test_fprintf, temporary_buffer,
+ "Unknown operator *, argument 1\n");
+
+ assert_int_equal(perform_operation(
+ array_length(args), (char **) args, array_length(operator_functions),
+ operator_functions, &number_of_intermediate_values,
+ &intermediate_values, &error_occurred), 0);
+ assert_int_equal(error_occurred, 1);
+}
+
+/* Ensure perform_operation() returns an error when nothing follows an
+ * operator. */
+static void test_perform_operation_missing_argument(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ const char *args[] = {
+ "1", "+",
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_string(example_test_fprintf, temporary_buffer,
+ "Binary operator + missing argument\n");
+
+ assert_int_equal(perform_operation(
+ array_length(args), (char **) args, array_length(operator_functions),
+ operator_functions, &number_of_intermediate_values,
+ &intermediate_values, &error_occurred), 0);
+ assert_int_equal(error_occurred, 1);
+}
+
+/* Ensure perform_operation() returns an error when an integer doesn't follow
+ * an operator. */
+static void test_perform_operation_no_integer_after_operator(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ };
+ const char *args[] = {
+ "1", "+", "test",
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ expect_string(example_test_fprintf, temporary_buffer,
+ "Unable to parse integer test of argument 2\n");
+
+ assert_int_equal(perform_operation(
+ array_length(args), (char **) args, array_length(operator_functions),
+ operator_functions, &number_of_intermediate_values,
+ &intermediate_values, &error_occurred), 0);
+ assert_int_equal(error_occurred, 1);
+}
+
+
+/* Ensure perform_operation() succeeds given valid input parameters. */
+static void test_perform_operation(void **state) {
+ const OperatorFunction operator_functions[] = {
+ {"+", binary_operator},
+ {"*", binary_operator},
+ };
+ const char *args[] = {
+ "1", "+", "3", "*", "10",
+ };
+ int number_of_intermediate_values;
+ int *intermediate_values = NULL;
+ int error_occurred;
+
+ (void) state; /* unused */
+
+ /* Setup return values of mock operator functions. */
+ /* Addition. */
+ expect_value(binary_operator, a, 1);
+ expect_value(binary_operator, b, 3);
+ will_return(binary_operator, 4);
+
+ /* Multiplication. */
+ expect_value(binary_operator, a, 4);
+ expect_value(binary_operator, b, 10);
+ will_return(binary_operator, 40);
+
+ assert_int_equal(perform_operation(
+ array_length(args), (char **) args, array_length(operator_functions),
+ operator_functions, &number_of_intermediate_values,
+ &intermediate_values, &error_occurred), 40);
+ assert_int_equal(error_occurred, 0);
+
+ assert_non_null(intermediate_values);
+ assert_int_equal(intermediate_values[0], 4);
+ assert_int_equal(intermediate_values[1], 40);
+ test_free(intermediate_values);
+}
+
+
+/* Ensure main() in example.c succeeds given no arguments. */
+static void test_example_main_no_args(void **state) {
+ const char *args[] = {
+ "example",
+ };
+
+ (void) state; /* unused */
+
+ assert_int_equal(example_main(array_length(args), (char **) args), 0);
+}
+
+
+
+/* Ensure main() in example.c succeeds given valid input arguments. */
+static void test_example_main(void **state) {
+ const char *args[] = {
+ "example", "1", "+", "3", "*", "10",
+ };
+
+ (void) state; /* unused */
+
+ expect_string(example_test_printf, temporary_buffer, "1\n");
+ expect_string(example_test_printf, temporary_buffer, " + 3 = 4\n");
+ expect_string(example_test_printf, temporary_buffer, " * 10 = 40\n");
+ expect_string(example_test_printf, temporary_buffer, "= 40\n");
+
+ assert_int_equal(example_main(array_length(args), (char **) args), 0);
+}
+
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_add),
+ cmocka_unit_test(test_subtract),
+ cmocka_unit_test(test_multiply),
+ cmocka_unit_test(test_divide),
+ cmocka_unit_test(test_divide_by_zero),
+ cmocka_unit_test(test_find_operator_function_by_string_null_functions),
+ cmocka_unit_test(test_find_operator_function_by_string_null_string),
+ cmocka_unit_test(test_find_operator_function_by_string_valid_null_functions),
+ cmocka_unit_test(test_find_operator_function_by_string_not_found),
+ cmocka_unit_test(test_find_operator_function_by_string_found),
+ cmocka_unit_test(test_perform_operation_null_args),
+ cmocka_unit_test(test_perform_operation_null_operator_functions),
+ cmocka_unit_test(test_perform_operation_null_number_of_intermediate_values),
+ cmocka_unit_test(test_perform_operation_null_intermediate_values),
+ cmocka_unit_test(test_perform_operation_no_arguments),
+ cmocka_unit_test(test_perform_operation_first_arg_not_integer),
+ cmocka_unit_test(test_perform_operation_unknown_operator),
+ cmocka_unit_test(test_perform_operation_missing_argument),
+ cmocka_unit_test(test_perform_operation_no_integer_after_operator),
+ cmocka_unit_test(test_perform_operation),
+ cmocka_unit_test(test_example_main_no_args),
+ cmocka_unit_test(test_example_main),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/chef_wrap/CMakeLists.txt b/tests/cmocka-1.1.0/example/chef_wrap/CMakeLists.txt
new file mode 100644
index 0000000..68afec0
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/chef_wrap/CMakeLists.txt
@@ -0,0 +1,20 @@
+project(cmocka-wrap-examples C)
+
+include_directories(
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMOCKA_PUBLIC_INCLUDE_DIRS}
+)
+
+add_executable(waiter_test_wrap waiter_test_wrap.c chef.c)
+target_link_libraries(waiter_test_wrap ${CMOCKA_SHARED_LIBRARY})
+
+add_test(waiter_test_wrap ${CMAKE_CURRENT_BINARY_DIR}/waiter_test_wrap)
+
+set_target_properties(waiter_test_wrap
+ PROPERTIES
+ LINK_FLAGS "-Wl,--wrap=chef_cook"
+)
+if (WIN32 OR MINGW OR CYGWIN)
+ set_tests_properties(waiter_test_wrap PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
+endif (WIN32 OR MINGW OR CYGWIN)
diff --git a/tests/cmocka-1.1.0/example/chef_wrap/chef.c b/tests/cmocka-1.1.0/example/chef_wrap/chef.c
new file mode 100644
index 0000000..1429cde
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/chef_wrap/chef.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2013 (c) Andreas Schneider
+ * Jakub Hrozek
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "chef.h"
+
+
+/* This is the real chef, just not implemented yet, currently it always
+ * returns ENOSYS
+ */
+int chef_cook(const char *order, char **dish_out)
+{
+ if (order == NULL || dish_out == NULL) return EINVAL;
+
+ return -ENOSYS;
+}
+
+/* Print chef return codes as string */
+const char *chef_strerror(int error)
+{
+ switch (error) {
+ case 0:
+ return "Success";
+ case -1:
+ return "Unknown dish";
+ case -2:
+ return "Not enough ingredients for the dish";
+ }
+
+ return "Unknown error!";
+}
+
diff --git a/tests/cmocka-1.1.0/example/chef_wrap/chef.h b/tests/cmocka-1.1.0/example/chef_wrap/chef.h
new file mode 100644
index 0000000..c1a01c7
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/chef_wrap/chef.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 (c) Andreas Schneider
+ * Jakub Hrozek
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+int chef_cook(const char *order, char **dish_out);
+const char *chef_strerror(int error);
diff --git a/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c b/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c
new file mode 100644
index 0000000..4146818
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.c
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2013 (c) Andreas Schneider
+ * Jakub Hrozek
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+#include "waiter_test_wrap.h"
+#include "chef.h"
+
+/*
+ * This is a mocked Chef object. A real Chef would look if he knows
+ * the dish in some kind of internal database and check his storage for
+ * ingredients. This chef simply retrieves this information from the test
+ * that is calling him.
+ *
+ * This object is also wrapped - if any code links with this file and is
+ * compiled with linker option --wrap chef_cook, any calls of that code to
+ * chef_cook will end up calling __wrap_chef_cook.
+ *
+ * If for any reason the wrapped function wanted to call the real chef_cook()
+ * function, it could do so by calling the special symbol __real_chef_cook().
+ *
+ * Please note that when setting return codes for the chef_cook function, we
+ * use this wrapper as a parameter for the will_return() macro, not the
+ * real function.
+ *
+ * A chef object would return:
+ * 0 - cooking dish went fine
+ * -1 - unknown dish
+ * -2 - ran out of ingredients for the dish
+ * any other error code -- unexpected error while cooking
+ *
+ * The return codes should be consistent between the real and mocked objects.
+ */
+int __wrap_chef_cook(const char *order, char **dish_out)
+{
+ bool has_ingredients;
+ bool knows_dish;
+ char *dish;
+
+ check_expected_ptr(order);
+
+ knows_dish = mock_type(bool);
+ if (knows_dish == false) {
+ return -1;
+ }
+
+ has_ingredients = mock_type(bool);
+ if (has_ingredients == false) {
+ return -2;
+ }
+
+ dish = mock_ptr_type(char *);
+ *dish_out = strdup(dish);
+ if (*dish_out == NULL) return ENOMEM;
+
+ return mock_type(int);
+}
+
+/* Waiter return codes:
+ * 0 - success
+ * -1 - kitchen failed
+ * -2 - kitchen succeeded, but cooked a different food
+ */
+static int waiter_process(const char *order, char **dish)
+{
+ int rv;
+
+ rv = chef_cook(order, dish);
+ if (rv != 0) {
+ fprintf(stderr, "Chef couldn't cook %s: %s\n",
+ order, chef_strerror(rv));
+ return -1;
+ }
+
+ /* Check if we received the dish we wanted from the kitchen */
+ if (strcmp(order, *dish) != 0) {
+ free(*dish);
+ *dish = NULL;
+ return -2;
+ }
+
+ return 0;
+}
+
+static void test_order_hotdog(void **state)
+{
+ int rv;
+ char *dish;
+
+ (void) state; /* unused */
+
+ /* We expect the chef to receive an order for a hotdog */
+ expect_string(__wrap_chef_cook, order, "hotdog");
+ /* And we tell the test chef that ke knows how to cook a hotdog
+ * and has the ingredients
+ */
+ will_return(__wrap_chef_cook, true);
+ will_return(__wrap_chef_cook, true);
+ /* The result will be a hotdog and the cooking process will succeed */
+ will_return(__wrap_chef_cook, cast_ptr_to_largest_integral_type("hotdog"));
+ will_return(__wrap_chef_cook, 0);
+
+ /* Test the waiter */
+ rv = waiter_process("hotdog", &dish);
+
+ /* We expect the cook to succeed cooking the hotdog */
+ assert_int_equal(rv, 0);
+ /* And actually receive one */
+ assert_string_equal(dish, "hotdog");
+ if (dish != NULL) {
+ free(dish);
+ }
+}
+
+static void test_bad_dish(void **state)
+{
+ int rv;
+ char *dish;
+
+ (void) state; /* unused */
+
+ /* We expect the chef to receive an order for a hotdog */
+ expect_string(__wrap_chef_cook, order, "hotdog");
+ /* And we tell the test chef that ke knows how to cook a hotdog
+ * and has the ingredients
+ */
+ will_return(__wrap_chef_cook, true);
+ will_return(__wrap_chef_cook, true);
+ /* The result will be a burger and the cooking process will succeed.
+ * We expect the waiter to handle the bad dish and return an error
+ * code
+ */
+ will_return(__wrap_chef_cook, cast_ptr_to_largest_integral_type("burger"));
+ will_return(__wrap_chef_cook, 0);
+
+ /* Test the waiter */
+ rv = waiter_process("hotdog", &dish);
+
+ /* According to the documentation the waiter should return -2 now */
+ assert_int_equal(rv, -2);
+ /* And do not give the bad dish to the customer */
+ assert_null(dish);
+}
+
+int main(void)
+{
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_order_hotdog),
+ cmocka_unit_test(test_bad_dish),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.h b/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.h
new file mode 100644
index 0000000..9178ca2
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/chef_wrap/waiter_test_wrap.h
@@ -0,0 +1,2 @@
+
+int __wrap_chef_cook(const char *order, char **dish_out);
diff --git a/tests/cmocka-1.1.0/example/customer_database.c b/tests/cmocka-1.1.0/example/customer_database.c
new file mode 100644
index 0000000..2d49e19
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/customer_database.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#ifdef _WIN32
+#define snprintf _snprintf
+#endif /* _WIN32 */
+
+DatabaseConnection* connect_to_customer_database(void);
+unsigned int get_customer_id_by_name(
+ DatabaseConnection * const connection,
+ const char * const customer_name);
+
+/* Connect to the database containing customer information. */
+DatabaseConnection* connect_to_customer_database(void) {
+ return connect_to_database("customers.abcd.org", 321);
+}
+
+/* Find the ID of a customer by his/her name returning a value > 0 if
+ * successful, 0 otherwise. */
+unsigned int get_customer_id_by_name(
+ DatabaseConnection * const connection,
+ const char * const customer_name) {
+ char query_string[256];
+ int number_of_results;
+ void **results;
+ snprintf(query_string, sizeof(query_string),
+ "SELECT ID FROM CUSTOMERS WHERE NAME = %s", customer_name);
+ number_of_results = connection->query_database(connection, query_string,
+ &results);
+
+ if (number_of_results != 1) {
+ return -1;
+ }
+
+ return (unsigned int)*((int *)results);
+}
diff --git a/tests/cmocka-1.1.0/example/customer_database_test.c b/tests/cmocka-1.1.0/example/customer_database_test.c
new file mode 100644
index 0000000..2f78b05
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/customer_database_test.c
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+#include
+
+extern DatabaseConnection* connect_to_customer_database();
+extern unsigned int get_customer_id_by_name(
+ DatabaseConnection * const connection, const char * const customer_name);
+
+/* Mock query database function. */
+static unsigned int mock_query_database(DatabaseConnection* const connection,
+ const char * const query_string,
+ void *** const results) {
+ (void) connection; /* unused */
+ (void) query_string; /* unused */
+
+ *results = (void **)mock_ptr_type(int *);
+ return mock_ptr_type(int);
+}
+
+/* Mock of the connect to database function. */
+DatabaseConnection* connect_to_database(const char * const database_url,
+ const unsigned int port) {
+ (void) database_url; /* unused */
+ (void) port; /* unused */
+
+ return (DatabaseConnection*)((size_t)mock());
+}
+
+static void test_connect_to_customer_database(void **state) {
+ (void) state; /* unused */
+
+ will_return(connect_to_database, 0x0DA7ABA53);
+
+ assert_int_equal((size_t)connect_to_customer_database(), 0x0DA7ABA53);
+}
+
+/* This test fails as the mock function connect_to_database() will have no
+ * value to return. */
+#if 0
+static void fail_connect_to_customer_database(void **state) {
+ (void) state; /* unused */
+
+ assert_true(connect_to_customer_database() ==
+ (DatabaseConnection*)0x0DA7ABA53);
+}
+#endif
+
+static void test_get_customer_id_by_name(void **state) {
+ DatabaseConnection connection = {
+ "somedatabase.somewhere.com", 12345678, mock_query_database
+ };
+ /* Return a single customer ID when mock_query_database() is called. */
+ int customer_ids = 543;
+ int rc;
+
+ (void) state; /* unused */
+
+ will_return(mock_query_database,
+ cast_ptr_to_largest_integral_type(&customer_ids));
+ will_return(mock_query_database, 1);
+
+ rc = get_customer_id_by_name(&connection, "john doe");
+ assert_int_equal(rc, 543);
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_connect_to_customer_database),
+ cmocka_unit_test(test_get_customer_id_by_name),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/database.h b/tests/cmocka-1.1.0/example/database.h
new file mode 100644
index 0000000..880db3c
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/database.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+typedef struct DatabaseConnection DatabaseConnection;
+
+/* Function that takes an SQL query string and sets results to an array of
+ * pointers with the result of the query. The value returned specifies the
+ * number of items in the returned array of results. The returned array of
+ * results are statically allocated and should not be deallocated using free()
+ */
+typedef unsigned int (*QueryDatabase)(
+ DatabaseConnection* const connection, const char * const query_string,
+ void *** const results);
+
+/* Connection to a database. */
+struct DatabaseConnection {
+ const char *url;
+ unsigned int port;
+ QueryDatabase query_database;
+};
+
+/* Connect to a database. */
+DatabaseConnection* connect_to_database(const char * const url,
+ const unsigned int port);
+
diff --git a/tests/cmocka-1.1.0/example/key_value.c b/tests/cmocka-1.1.0/example/key_value.c
new file mode 100644
index 0000000..057274a
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/key_value.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+
+#include "key_value.h"
+
+static KeyValue *key_values = NULL;
+static unsigned int number_of_key_values = 0;
+
+void set_key_values(KeyValue * const new_key_values,
+ const unsigned int new_number_of_key_values) {
+ key_values = new_key_values;
+ number_of_key_values = new_number_of_key_values;
+}
+
+/* Compare two key members of KeyValue structures. */
+static int key_value_compare_keys(const void *a, const void *b) {
+ return (int)((KeyValue*)a)->key - (int)((KeyValue*)b)->key;
+}
+
+/* Search an array of key value pairs for the item with the specified value. */
+KeyValue* find_item_by_value(const char * const value) {
+ unsigned int i;
+ for (i = 0; i < number_of_key_values; i++) {
+ if (strcmp(key_values[i].value, value) == 0) {
+ return &key_values[i];
+ }
+ }
+ return NULL;
+}
+
+/* Sort an array of key value pairs by key. */
+void sort_items_by_key(void) {
+ qsort(key_values, number_of_key_values, sizeof(*key_values),
+ key_value_compare_keys);
+}
diff --git a/tests/cmocka-1.1.0/example/key_value.h b/tests/cmocka-1.1.0/example/key_value.h
new file mode 100644
index 0000000..736faf2
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/key_value.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+typedef struct KeyValue {
+ unsigned int key;
+ const char* value;
+} KeyValue;
+
+void set_key_values(KeyValue * const new_key_values,
+ const unsigned int new_number_of_key_values);
+
+KeyValue* find_item_by_value(const char * const value);
+
+void sort_items_by_key(void);
diff --git a/tests/cmocka-1.1.0/example/key_value_test.c b/tests/cmocka-1.1.0/example/key_value_test.c
new file mode 100644
index 0000000..102a2be
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/key_value_test.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+#include
+
+#include "key_value.h"
+
+static KeyValue key_values[] = {
+ { 10, "this" },
+ { 52, "test" },
+ { 20, "a" },
+ { 13, "is" },
+};
+
+static int create_key_values(void **state) {
+ KeyValue * const items = (KeyValue*)test_malloc(sizeof(key_values));
+ memcpy(items, key_values, sizeof(key_values));
+ *state = (void*)items;
+ set_key_values(items, sizeof(key_values) / sizeof(key_values[0]));
+
+ return 0;
+}
+
+static int destroy_key_values(void **state) {
+ test_free(*state);
+ set_key_values(NULL, 0);
+
+ return 0;
+}
+
+static void test_find_item_by_value(void **state) {
+ unsigned int i;
+
+ (void) state; /* unused */
+
+ for (i = 0; i < sizeof(key_values) / sizeof(key_values[0]); i++) {
+ KeyValue * const found = find_item_by_value(key_values[i].value);
+ assert_true(found != NULL);
+ assert_int_equal(found->key, key_values[i].key);
+ assert_string_equal(found->value, key_values[i].value);
+ }
+}
+
+static void test_sort_items_by_key(void **state) {
+ unsigned int i;
+ KeyValue * const kv = *state;
+ sort_items_by_key();
+ for (i = 1; i < sizeof(key_values) / sizeof(key_values[0]); i++) {
+ assert_true(kv[i - 1].key < kv[i].key);
+ }
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test_setup_teardown(test_find_item_by_value,
+ create_key_values, destroy_key_values),
+ cmocka_unit_test_setup_teardown(test_sort_items_by_key,
+ create_key_values, destroy_key_values),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/product_database.c b/tests/cmocka-1.1.0/example/product_database.c
new file mode 100644
index 0000000..980b7e5
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/product_database.c
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+
+DatabaseConnection* connect_to_product_database(void);
+
+/* Connect to the database containing customer information. */
+DatabaseConnection* connect_to_product_database(void) {
+ return connect_to_database("products.abcd.org", 322);
+}
+
diff --git a/tests/cmocka-1.1.0/example/product_database_test.c b/tests/cmocka-1.1.0/example/product_database_test.c
new file mode 100644
index 0000000..e09eeab
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/product_database_test.c
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+#include
+
+extern DatabaseConnection* connect_to_product_database(void);
+
+/* Mock connect to database function.
+ * NOTE: This mock function is very general could be shared between tests
+ * that use the imaginary database.h module. */
+DatabaseConnection* connect_to_database(const char * const url,
+ const unsigned int port) {
+ check_expected_ptr(url);
+ check_expected(port);
+ return (DatabaseConnection*)((size_t)mock());
+}
+
+static void test_connect_to_product_database(void **state) {
+ (void) state; /* unused */
+
+ expect_string(connect_to_database, url, "products.abcd.org");
+ expect_value(connect_to_database, port, 322);
+ will_return(connect_to_database, 0xDA7ABA53);
+ assert_int_equal((size_t)connect_to_product_database(), 0xDA7ABA53);
+}
+
+/* This test will fail since the expected URL is different to the URL that is
+ * passed to connect_to_database() by connect_to_product_database(). */
+static void test_connect_to_product_database_bad_url(void **state) {
+ (void) state; /* unused */
+
+ expect_string(connect_to_database, url, "products.abcd.com");
+ expect_value(connect_to_database, port, 322);
+ will_return(connect_to_database, 0xDA7ABA53);
+ assert_int_equal((size_t)connect_to_product_database(), 0xDA7ABA53);
+}
+
+/* This test will fail since the mock connect_to_database() will attempt to
+ * retrieve a value for the parameter port which isn't specified by this
+ * test function. */
+static void test_connect_to_product_database_missing_parameter(void **state) {
+ (void) state; /* unused */
+
+ expect_string(connect_to_database, url, "products.abcd.org");
+ will_return(connect_to_database, 0xDA7ABA53);
+ assert_int_equal((size_t)connect_to_product_database(), 0xDA7ABA53);
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_connect_to_product_database),
+ cmocka_unit_test(test_connect_to_product_database_bad_url),
+ cmocka_unit_test(test_connect_to_product_database_missing_parameter),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/example/simple_test.c b/tests/cmocka-1.1.0/example/simple_test.c
new file mode 100644
index 0000000..c6eee9c
--- /dev/null
+++ b/tests/cmocka-1.1.0/example/simple_test.c
@@ -0,0 +1,17 @@
+#include
+#include
+#include
+#include
+
+/* A test case that does nothing and succeeds. */
+static void null_test_success(void **state) {
+ (void) state; /* unused */
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(null_test_success),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/include/CMakeLists.txt b/tests/cmocka-1.1.0/include/CMakeLists.txt
new file mode 100644
index 0000000..4cca031
--- /dev/null
+++ b/tests/cmocka-1.1.0/include/CMakeLists.txt
@@ -0,0 +1,27 @@
+project(cmocka-headers C)
+
+set(cmocka_HDRS
+ cmocka.h
+ cmocka_pbc.h
+)
+
+install(
+ FILES
+ ${cmocka_HDRS}
+ DESTINATION
+ ${INCLUDE_INSTALL_DIR}
+ COMPONENT
+ headers
+)
+
+if (WITH_CMOCKERY_SUPPORT)
+ install(
+ FILES
+ cmockery/cmockery.h
+ cmockery/pbc.h
+ DESTINATION
+ ${INCLUDE_INSTALL_DIR}/cmockery
+ COMPONENT
+ headers
+ )
+endif()
diff --git a/tests/cmocka-1.1.0/include/cmocka.h b/tests/cmocka-1.1.0/include/cmocka.h
new file mode 100644
index 0000000..4be40ea
--- /dev/null
+++ b/tests/cmocka-1.1.0/include/cmocka.h
@@ -0,0 +1,2284 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef CMOCKA_H_
+#define CMOCKA_H_
+
+#ifdef _WIN32
+# ifdef _MSC_VER
+
+#define __func__ __FUNCTION__
+
+# ifndef inline
+#define inline __inline
+# endif /* inline */
+
+# if _MSC_VER < 1500
+# ifdef __cplusplus
+extern "C" {
+# endif /* __cplusplus */
+int __stdcall IsDebuggerPresent();
+# ifdef __cplusplus
+} /* extern "C" */
+# endif /* __cplusplus */
+# endif /* _MSC_VER < 1500 */
+# endif /* _MSC_VER */
+#endif /* _WIN32 */
+
+/**
+ * @defgroup cmocka The CMocka API
+ *
+ * These headers or their equivalents should be included prior to including
+ * this header file.
+ * @code
+ * #include
+ * #include
+ * #include
+ * @endcode
+ *
+ * This allows test applications to use custom definitions of C standard
+ * library functions and types.
+ *
+ * @{
+ */
+
+/* If __WORDSIZE is not set, try to figure it out and default to 32 bit. */
+#ifndef __WORDSIZE
+# if defined(__x86_64__) && !defined(__ILP32__)
+# define __WORDSIZE 64
+# else
+# define __WORDSIZE 32
+# endif
+#endif
+
+#ifdef DOXYGEN
+/**
+ * Largest integral type. This type should be large enough to hold any
+ * pointer or integer supported by the compiler.
+ */
+typedef uintmax_t LargestIntegralType;
+#else /* DOXGEN */
+#ifndef LargestIntegralType
+# if __WORDSIZE == 64
+# define LargestIntegralType unsigned long int
+# else
+# define LargestIntegralType unsigned long long int
+# endif
+#endif /* LargestIntegralType */
+#endif /* DOXYGEN */
+
+/* Printf format used to display LargestIntegralType as a hexidecimal. */
+#ifndef LargestIntegralTypePrintfFormat
+# ifdef _WIN32
+# define LargestIntegralTypePrintfFormat "0x%I64x"
+# else
+# if __WORDSIZE == 64
+# define LargestIntegralTypePrintfFormat "%#lx"
+# else
+# define LargestIntegralTypePrintfFormat "%#llx"
+# endif
+# endif /* _WIN32 */
+#endif /* LargestIntegralTypePrintfFormat */
+
+/* Printf format used to display LargestIntegralType as a decimal. */
+#ifndef LargestIntegralTypePrintfFormatDecimal
+# ifdef _WIN32
+# define LargestIntegralTypePrintfFormatDecimal "%I64u"
+# else
+# if __WORDSIZE == 64
+# define LargestIntegralTypePrintfFormatDecimal "%lu"
+# else
+# define LargestIntegralTypePrintfFormatDecimal "%llu"
+# endif
+# endif /* _WIN32 */
+#endif /* LargestIntegralTypePrintfFormat */
+
+/* Perform an unsigned cast to LargestIntegralType. */
+#define cast_to_largest_integral_type(value) \
+ ((LargestIntegralType)(value))
+
+/* Smallest integral type capable of holding a pointer. */
+#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
+# if defined(_WIN32)
+ /* WIN32 is an ILP32 platform */
+ typedef unsigned int uintptr_t;
+# elif defined(_WIN64)
+ typedef unsigned long int uintptr_t
+# else /* _WIN32 */
+
+/* ILP32 and LP64 platforms */
+# ifdef __WORDSIZE /* glibc */
+# if __WORDSIZE == 64
+ typedef unsigned long int uintptr_t;
+# else
+ typedef unsigned int uintptr_t;
+# endif /* __WORDSIZE == 64 */
+# else /* __WORDSIZE */
+# if defined(_LP64) || defined(_I32LPx)
+ typedef unsigned long int uintptr_t;
+# else
+ typedef unsigned int uintptr_t;
+# endif
+# endif /* __WORDSIZE */
+# endif /* _WIN32 */
+
+# define _UINTPTR_T
+# define _UINTPTR_T_DEFINED
+#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
+
+/* Perform an unsigned cast to uintptr_t. */
+#define cast_to_pointer_integral_type(value) \
+ ((uintptr_t)((size_t)(value)))
+
+/* Perform a cast of a pointer to LargestIntegralType */
+#define cast_ptr_to_largest_integral_type(value) \
+cast_to_largest_integral_type(cast_to_pointer_integral_type(value))
+
+/* GCC have printf type attribute check. */
+#ifdef __GNUC__
+#define CMOCKA_PRINTF_ATTRIBUTE(a,b) \
+ __attribute__ ((__format__ (__printf__, a, b)))
+#else
+#define CMOCKA_PRINTF_ATTRIBUTE(a,b)
+#endif /* __GNUC__ */
+
+#if defined(__GNUC__)
+#define CMOCKA_DEPRECATED __attribute__ ((deprecated))
+#elif defined(_MSC_VER)
+#define CMOCKA_DEPRECATED __declspec(deprecated)
+#else
+#define CMOCKA_DEPRECATED
+#endif
+
+#define WILL_RETURN_ALWAYS -1
+#define WILL_RETURN_ONCE -2
+
+/**
+ * @defgroup cmocka_mock Mock Objects
+ * @ingroup cmocka
+ *
+ * Mock objects mock objects are simulated objects that mimic the behavior of
+ * real objects. Instead of calling the real objects, the tested object calls a
+ * mock object that merely asserts that the correct methods were called, with
+ * the expected parameters, in the correct order.
+ *
+ *
+ *
will_return(function, value) - The will_return() macro
+ * pushes a value onto a stack of mock values. This macro is intended to be
+ * used by the unit test itself, while programming the behaviour of the mocked
+ * object.
+ *
+ *
mock() - the mock macro pops a value from a stack of
+ * test values. The user of the mock() macro is the mocked object that uses it
+ * to learn how it should behave.
+ *
+ *
+ * Because the will_return() and mock() are intended to be used in pairs, the
+ * cmocka library would fail the test if there are more values pushed onto the
+ * stack using will_return() than consumed with mock() and vice-versa.
+ *
+ * The following unit test stub illustrates how would a unit test instruct the
+ * mock object to return a particular value:
+ *
+ * @code
+ * will_return(chef_cook, "hotdog");
+ * will_return(chef_cook, 0);
+ * @endcode
+ *
+ * Now the mock object can check if the parameter it received is the parameter
+ * which is expected by the test driver. This can be done the following way:
+ *
+ * @code
+ * int chef_cook(const char *order, char **dish_out)
+ * {
+ * check_expected(order);
+ * }
+ * @endcode
+ *
+ * For a complete example please at a look
+ * here.
+ *
+ * @{
+ */
+
+#ifdef DOXYGEN
+/**
+ * @brief Retrieve a return value of the current function.
+ *
+ * @return The value which was stored to return by this function.
+ *
+ * @see will_return()
+ */
+LargestIntegralType mock(void);
+#else
+#define mock() _mock(__func__, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Retrieve a typed return value of the current function.
+ *
+ * The value would be casted to type internally to avoid having the
+ * caller to do the cast manually.
+ *
+ * @param[in] #type The expected type of the return value
+ *
+ * @return The value which was stored to return by this function.
+ *
+ * @code
+ * int param;
+ *
+ * param = mock_type(int);
+ * @endcode
+ *
+ * @see will_return()
+ * @see mock()
+ * @see mock_ptr_type()
+ */
+#type mock_type(#type);
+#else
+#define mock_type(type) ((type) mock())
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Retrieve a typed return value of the current function.
+ *
+ * The value would be casted to type internally to avoid having the
+ * caller to do the cast manually but also casted to uintptr_t to make
+ * sure the result has a valid size to be used as a pointer.
+ *
+ * @param[in] #type The expected type of the return value
+ *
+ * @return The value which was stored to return by this function.
+ *
+ * @code
+ * char *param;
+ *
+ * param = mock_ptr_type(char *);
+ * @endcode
+ *
+ * @see will_return()
+ * @see mock()
+ * @see mock_type()
+ */
+type mock_ptr_type(#type);
+#else
+#define mock_ptr_type(type) ((type) (uintptr_t) mock())
+#endif
+
+
+#ifdef DOXYGEN
+/**
+ * @brief Store a value to be returned by mock() later.
+ *
+ * @param[in] #function The function which should return the given value.
+ *
+ * @param[in] value The value to be returned by mock().
+ *
+ * @code
+ * int return_integer(void)
+ * {
+ * return (int)mock();
+ * }
+ *
+ * static void test_integer_return(void **state)
+ * {
+ * will_return(return_integer, 42);
+ *
+ * assert_int_equal(my_function_calling_return_integer(), 42);
+ * }
+ * @endcode
+ *
+ * @see mock()
+ * @see will_return_count()
+ */
+void will_return(#function, LargestIntegralType value);
+#else
+#define will_return(function, value) \
+ _will_return(#function, __FILE__, __LINE__, \
+ cast_to_largest_integral_type(value), 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Store a value to be returned by mock() later.
+ *
+ * @param[in] #function The function which should return the given value.
+ *
+ * @param[in] value The value to be returned by mock().
+ *
+ * @param[in] count The parameter indicates the number of times the value should
+ * be returned by mock(). If count is set to -1, the value
+ * will always be returned but must be returned at least once.
+ * If count is set to -2, the value will always be returned
+ * by mock(), but is not required to be returned.
+ *
+ * @see mock()
+ */
+void will_return_count(#function, LargestIntegralType value, int count);
+#else
+#define will_return_count(function, value, count) \
+ _will_return(#function, __FILE__, __LINE__, \
+ cast_to_largest_integral_type(value), count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Store a value that will be always returned by mock().
+ *
+ * @param[in] #function The function which should return the given value.
+ *
+ * @param[in] #value The value to be returned by mock().
+ *
+ * This is equivalent to:
+ * @code
+ * will_return_count(function, value, -1);
+ * @endcode
+ *
+ * @see will_return_count()
+ * @see mock()
+ */
+void will_return_always(#function, LargestIntegralType value);
+#else
+#define will_return_always(function, value) \
+ will_return_count(function, (value), WILL_RETURN_ALWAYS)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Store a value that may be always returned by mock().
+ *
+ * This stores a value which will always be returned by mock() but is not
+ * required to be returned by at least one call to mock(). Therefore,
+ * in contrast to will_return_always() which causes a test failure if it
+ * is not returned at least once, will_return_maybe() will never cause a test
+ * to fail if its value is not returned.
+ *
+ * @param[in] #function The function which should return the given value.
+ *
+ * @param[in] #value The value to be returned by mock().
+ *
+ * This is equivalent to:
+ * @code
+ * will_return_count(function, value, -2);
+ * @endcode
+ *
+ * @see will_return_count()
+ * @see mock()
+ */
+void will_return_maybe(#function, LargestIntegralType value);
+#else
+#define will_return_maybe(function, value) \
+ will_return_count(function, (value), WILL_RETURN_ONCE)
+#endif
+/** @} */
+
+/**
+ * @defgroup cmocka_param Checking Parameters
+ * @ingroup cmocka
+ *
+ * Functionality to store expected values for mock function parameters.
+ *
+ * In addition to storing the return values of mock functions, cmocka provides
+ * functionality to store expected values for mock function parameters using
+ * the expect_*() functions provided. A mock function parameter can then be
+ * validated using the check_expected() macro.
+ *
+ * Successive calls to expect_*() macros for a parameter queues values to check
+ * the specified parameter. check_expected() checks a function parameter
+ * against the next value queued using expect_*(), if the parameter check fails
+ * a test failure is signalled. In addition if check_expected() is called and
+ * no more parameter values are queued a test failure occurs.
+ *
+ * The following test stub illustrates how to do this. First is the the function
+ * we call in the test driver:
+ *
+ * @code
+ * static void test_driver(void **state)
+ * {
+ * expect_string(chef_cook, order, "hotdog");
+ * }
+ * @endcode
+ *
+ * Now the chef_cook function can check if the parameter we got passed is the
+ * parameter which is expected by the test driver. This can be done the
+ * following way:
+ *
+ * @code
+ * int chef_cook(const char *order, char **dish_out)
+ * {
+ * check_expected(order);
+ * }
+ * @endcode
+ *
+ * For a complete example please at a look at
+ * here
+ *
+ * @{
+ */
+
+/*
+ * Add a custom parameter checking function. If the event parameter is NULL
+ * the event structure is allocated internally by this function. If event
+ * parameter is provided it must be allocated on the heap and doesn't need to
+ * be deallocated by the caller.
+ */
+#ifdef DOXYGEN
+/**
+ * @brief Add a custom parameter checking function.
+ *
+ * If the event parameter is NULL the event structure is allocated internally
+ * by this function. If the parameter is provided it must be allocated on the
+ * heap and doesn't need to be deallocated by the caller.
+ *
+ * @param[in] #function The function to add a custom parameter checking
+ * function for.
+ *
+ * @param[in] #parameter The parameters passed to the function.
+ *
+ * @param[in] #check_function The check function to call.
+ *
+ * @param[in] check_data The data to pass to the check function.
+ */
+void expect_check(#function, #parameter, #check_function, const void *check_data);
+#else
+#define expect_check(function, parameter, check_function, check_data) \
+ _expect_check(#function, #parameter, __FILE__, __LINE__, check_function, \
+ cast_to_largest_integral_type(check_data), NULL, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value is part of the provided
+ * array.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value_array[] The array to check for the value.
+ *
+ * @see check_expected().
+ */
+void expect_in_set(#function, #parameter, LargestIntegralType value_array[]);
+#else
+#define expect_in_set(function, parameter, value_array) \
+ expect_in_set_count(function, parameter, value_array, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value is part of the provided
+ * array.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value_array[] The array to check for the value.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_in_set_count(#function, #parameter, LargestIntegralType value_array[], size_t count);
+#else
+#define expect_in_set_count(function, parameter, value_array, count) \
+ _expect_in_set(#function, #parameter, __FILE__, __LINE__, value_array, \
+ sizeof(value_array) / sizeof((value_array)[0]), count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value is not part of the
+ * provided array.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value_array[] The array to check for the value.
+ *
+ * @see check_expected().
+ */
+void expect_not_in_set(#function, #parameter, LargestIntegralType value_array[]);
+#else
+#define expect_not_in_set(function, parameter, value_array) \
+ expect_not_in_set_count(function, parameter, value_array, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value is not part of the
+ * provided array.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value_array[] The array to check for the value.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_not_in_set_count(#function, #parameter, LargestIntegralType value_array[], size_t count);
+#else
+#define expect_not_in_set_count(function, parameter, value_array, count) \
+ _expect_not_in_set( \
+ #function, #parameter, __FILE__, __LINE__, value_array, \
+ sizeof(value_array) / sizeof((value_array)[0]), count)
+#endif
+
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check a parameter is inside a numerical range.
+ * The check would succeed if minimum <= value <= maximum.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] minimum The lower boundary of the interval to check against.
+ *
+ * @param[in] maximum The upper boundary of the interval to check against.
+ *
+ * @see check_expected().
+ */
+void expect_in_range(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum);
+#else
+#define expect_in_range(function, parameter, minimum, maximum) \
+ expect_in_range_count(function, parameter, minimum, maximum, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check a parameter is inside a
+ * numerical range. The check would succeed if minimum <= value <= maximum.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] minimum The lower boundary of the interval to check against.
+ *
+ * @param[in] maximum The upper boundary of the interval to check against.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_in_range_count(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum, size_t count);
+#else
+#define expect_in_range_count(function, parameter, minimum, maximum, count) \
+ _expect_in_range(#function, #parameter, __FILE__, __LINE__, minimum, \
+ maximum, count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check a parameter is outside a numerical range.
+ * The check would succeed if minimum > value > maximum.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] minimum The lower boundary of the interval to check against.
+ *
+ * @param[in] maximum The upper boundary of the interval to check against.
+ *
+ * @see check_expected().
+ */
+void expect_not_in_range(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum);
+#else
+#define expect_not_in_range(function, parameter, minimum, maximum) \
+ expect_not_in_range_count(function, parameter, minimum, maximum, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check a parameter is outside a
+ * numerical range. The check would succeed if minimum > value > maximum.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] minimum The lower boundary of the interval to check against.
+ *
+ * @param[in] maximum The upper boundary of the interval to check against.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_not_in_range_count(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum, size_t count);
+#else
+#define expect_not_in_range_count(function, parameter, minimum, maximum, \
+ count) \
+ _expect_not_in_range(#function, #parameter, __FILE__, __LINE__, \
+ minimum, maximum, count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if a parameter is the given value.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value The value to check.
+ *
+ * @see check_expected().
+ */
+void expect_value(#function, #parameter, LargestIntegralType value);
+#else
+#define expect_value(function, parameter, value) \
+ expect_value_count(function, parameter, value, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check if a parameter is the given value.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value The value to check.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_value_count(#function, #parameter, LargestIntegralType value, size_t count);
+#else
+#define expect_value_count(function, parameter, value, count) \
+ _expect_value(#function, #parameter, __FILE__, __LINE__, \
+ cast_to_largest_integral_type(value), count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if a parameter isn't the given value.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value The value to check.
+ *
+ * @see check_expected().
+ */
+void expect_not_value(#function, #parameter, LargestIntegralType value);
+#else
+#define expect_not_value(function, parameter, value) \
+ expect_not_value_count(function, parameter, value, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check if a parameter isn't the given value.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] value The value to check.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_not_value_count(#function, #parameter, LargestIntegralType value, size_t count);
+#else
+#define expect_not_value_count(function, parameter, value, count) \
+ _expect_not_value(#function, #parameter, __FILE__, __LINE__, \
+ cast_to_largest_integral_type(value), count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value is equal to the
+ * provided string.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] string The string value to compare.
+ *
+ * @see check_expected().
+ */
+void expect_string(#function, #parameter, const char *string);
+#else
+#define expect_string(function, parameter, string) \
+ expect_string_count(function, parameter, string, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value is equal to the
+ * provided string.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] string The string value to compare.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_string_count(#function, #parameter, const char *string, size_t count);
+#else
+#define expect_string_count(function, parameter, string, count) \
+ _expect_string(#function, #parameter, __FILE__, __LINE__, \
+ (const char*)(string), count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value isn't equal to the
+ * provided string.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] string The string value to compare.
+ *
+ * @see check_expected().
+ */
+void expect_not_string(#function, #parameter, const char *string);
+#else
+#define expect_not_string(function, parameter, string) \
+ expect_not_string_count(function, parameter, string, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter value isn't equal to the
+ * provided string.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] string The string value to compare.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_not_string_count(#function, #parameter, const char *string, size_t count);
+#else
+#define expect_not_string_count(function, parameter, string, count) \
+ _expect_not_string(#function, #parameter, __FILE__, __LINE__, \
+ (const char*)(string), count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter does match an area of memory.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] memory The memory to compare.
+ *
+ * @param[in] size The size of the memory to compare.
+ *
+ * @see check_expected().
+ */
+void expect_memory(#function, #parameter, void *memory, size_t size);
+#else
+#define expect_memory(function, parameter, memory, size) \
+ expect_memory_count(function, parameter, memory, size, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check if the parameter does match an area
+ * of memory.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] memory The memory to compare.
+ *
+ * @param[in] size The size of the memory to compare.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_memory_count(#function, #parameter, void *memory, size_t size, size_t count);
+#else
+#define expect_memory_count(function, parameter, memory, size, count) \
+ _expect_memory(#function, #parameter, __FILE__, __LINE__, \
+ (const void*)(memory), size, count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if the parameter doesn't match an area of
+ * memory.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] memory The memory to compare.
+ *
+ * @param[in] size The size of the memory to compare.
+ *
+ * @see check_expected().
+ */
+void expect_not_memory(#function, #parameter, void *memory, size_t size);
+#else
+#define expect_not_memory(function, parameter, memory, size) \
+ expect_not_memory_count(function, parameter, memory, size, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check if the parameter doesn't match an
+ * area of memory.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] memory The memory to compare.
+ *
+ * @param[in] size The size of the memory to compare.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_not_memory_count(#function, #parameter, void *memory, size_t size, size_t count);
+#else
+#define expect_not_memory_count(function, parameter, memory, size, count) \
+ _expect_not_memory(#function, #parameter, __FILE__, __LINE__, \
+ (const void*)(memory), size, count)
+#endif
+
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to check if a parameter (of any value) has been passed.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @see check_expected().
+ */
+void expect_any(#function, #parameter);
+#else
+#define expect_any(function, parameter) \
+ expect_any_count(function, parameter, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Add an event to repeatedly check if a parameter (of any value) has
+ * been passed.
+ *
+ * The event is triggered by calling check_expected() in the mocked function.
+ *
+ * @param[in] #function The function to add the check for.
+ *
+ * @param[in] #parameter The name of the parameter passed to the function.
+ *
+ * @param[in] count The count parameter returns the number of times the value
+ * should be returned by check_expected(). If count is set
+ * to -1 the value will always be returned.
+ *
+ * @see check_expected().
+ */
+void expect_any_count(#function, #parameter, size_t count);
+#else
+#define expect_any_count(function, parameter, count) \
+ _expect_any(#function, #parameter, __FILE__, __LINE__, count)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Determine whether a function parameter is correct.
+ *
+ * This ensures the next value queued by one of the expect_*() macros matches
+ * the specified variable.
+ *
+ * This function needs to be called in the mock object.
+ *
+ * @param[in] #parameter The parameter to check.
+ */
+void check_expected(#parameter);
+#else
+#define check_expected(parameter) \
+ _check_expected(__func__, #parameter, __FILE__, __LINE__, \
+ cast_to_largest_integral_type(parameter))
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Determine whether a function parameter is correct.
+ *
+ * This ensures the next value queued by one of the expect_*() macros matches
+ * the specified variable.
+ *
+ * This function needs to be called in the mock object.
+ *
+ * @param[in] #parameter The pointer to check.
+ */
+void check_expected_ptr(#parameter);
+#else
+#define check_expected_ptr(parameter) \
+ _check_expected(__func__, #parameter, __FILE__, __LINE__, \
+ cast_ptr_to_largest_integral_type(parameter))
+#endif
+
+/** @} */
+
+/**
+ * @defgroup cmocka_asserts Assert Macros
+ * @ingroup cmocka
+ *
+ * This is a set of useful assert macros like the standard C libary's
+ * assert(3) macro.
+ *
+ * On an assertion failure a cmocka assert macro will write the failure to the
+ * standard error stream and signal a test failure. Due to limitations of the C
+ * language the general C standard library assert() and cmocka's assert_true()
+ * and assert_false() macros can only display the expression that caused the
+ * assert failure. cmocka's type specific assert macros, assert_{type}_equal()
+ * and assert_{type}_not_equal(), display the data that caused the assertion
+ * failure which increases data visibility aiding debugging of failing test
+ * cases.
+ *
+ * @{
+ */
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the given expression is true.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if expression is false (i.e., compares equal to
+ * zero).
+ *
+ * @param[in] expression The expression to evaluate.
+ *
+ * @see assert_int_equal()
+ * @see assert_string_equal()
+ */
+void assert_true(scalar expression);
+#else
+#define assert_true(c) _assert_true(cast_to_largest_integral_type(c), #c, \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the given expression is false.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if expression is true.
+ *
+ * @param[in] expression The expression to evaluate.
+ *
+ * @see assert_int_equal()
+ * @see assert_string_equal()
+ */
+void assert_false(scalar expression);
+#else
+#define assert_false(c) _assert_true(!(cast_to_largest_integral_type(c)), #c, \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the return_code is greater than or equal to 0.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the return code is smaller than 0. If the function
+ * you check sets an errno if it fails you can pass it to the function and
+ * it will be printed as part of the error message.
+ *
+ * @param[in] rc The return code to evaluate.
+ *
+ * @param[in] error Pass errno here or 0.
+ */
+void assert_return_code(int rc, int error);
+#else
+#define assert_return_code(rc, error) \
+ _assert_return_code(cast_to_largest_integral_type(rc), \
+ sizeof(rc), \
+ cast_to_largest_integral_type(error), \
+ #rc, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the given pointer is non-NULL.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the pointer is non-NULL.
+ *
+ * @param[in] pointer The pointer to evaluate.
+ *
+ * @see assert_null()
+ */
+void assert_non_null(void *pointer);
+#else
+#define assert_non_null(c) _assert_true(cast_ptr_to_largest_integral_type(c), #c, \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the given pointer is NULL.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the pointer is non-NULL.
+ *
+ * @param[in] pointer The pointer to evaluate.
+ *
+ * @see assert_non_null()
+ */
+void assert_null(void *pointer);
+#else
+#define assert_null(c) _assert_true(!(cast_ptr_to_largest_integral_type(c)), #c, \
+__FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given pointers are equal.
+ *
+ * The function prints an error message and terminates the test by calling
+ * fail() if the pointers are not equal.
+ *
+ * @param[in] a The first pointer to compare.
+ *
+ * @param[in] b The pointer to compare against the first one.
+ */
+void assert_ptr_equal(void *a, void *b);
+#else
+#define assert_ptr_equal(a, b) \
+ _assert_int_equal(cast_ptr_to_largest_integral_type(a), \
+ cast_ptr_to_largest_integral_type(b), \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given pointers are not equal.
+ *
+ * The function prints an error message and terminates the test by calling
+ * fail() if the pointers are equal.
+ *
+ * @param[in] a The first pointer to compare.
+ *
+ * @param[in] b The pointer to compare against the first one.
+ */
+void assert_ptr_not_equal(void *a, void *b);
+#else
+#define assert_ptr_not_equal(a, b) \
+ _assert_int_not_equal(cast_ptr_to_largest_integral_type(a), \
+ cast_ptr_to_largest_integral_type(b), \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given integers are equal.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the integers are not equal.
+ *
+ * @param[in] a The first integer to compare.
+ *
+ * @param[in] b The integer to compare against the first one.
+ */
+void assert_int_equal(int a, int b);
+#else
+#define assert_int_equal(a, b) \
+ _assert_int_equal(cast_to_largest_integral_type(a), \
+ cast_to_largest_integral_type(b), \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given integers are not equal.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the integers are equal.
+ *
+ * @param[in] a The first integer to compare.
+ *
+ * @param[in] b The integer to compare against the first one.
+ *
+ * @see assert_int_equal()
+ */
+void assert_int_not_equal(int a, int b);
+#else
+#define assert_int_not_equal(a, b) \
+ _assert_int_not_equal(cast_to_largest_integral_type(a), \
+ cast_to_largest_integral_type(b), \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given strings are equal.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the strings are not equal.
+ *
+ * @param[in] a The string to check.
+ *
+ * @param[in] b The other string to compare.
+ */
+void assert_string_equal(const char *a, const char *b);
+#else
+#define assert_string_equal(a, b) \
+ _assert_string_equal((const char*)(a), (const char*)(b), __FILE__, \
+ __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given strings are not equal.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the strings are equal.
+ *
+ * @param[in] a The string to check.
+ *
+ * @param[in] b The other string to compare.
+ */
+void assert_string_not_equal(const char *a, const char *b);
+#else
+#define assert_string_not_equal(a, b) \
+ _assert_string_not_equal((const char*)(a), (const char*)(b), __FILE__, \
+ __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given areas of memory are equal, otherwise fail.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the memory is not equal.
+ *
+ * @param[in] a The first memory area to compare
+ * (interpreted as unsigned char).
+ *
+ * @param[in] b The second memory area to compare
+ * (interpreted as unsigned char).
+ *
+ * @param[in] size The first n bytes of the memory areas to compare.
+ */
+void assert_memory_equal(const void *a, const void *b, size_t size);
+#else
+#define assert_memory_equal(a, b, size) \
+ _assert_memory_equal((const void*)(a), (const void*)(b), size, __FILE__, \
+ __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the two given areas of memory are not equal.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if the memory is equal.
+ *
+ * @param[in] a The first memory area to compare
+ * (interpreted as unsigned char).
+ *
+ * @param[in] b The second memory area to compare
+ * (interpreted as unsigned char).
+ *
+ * @param[in] size The first n bytes of the memory areas to compare.
+ */
+void assert_memory_not_equal(const void *a, const void *b, size_t size);
+#else
+#define assert_memory_not_equal(a, b, size) \
+ _assert_memory_not_equal((const void*)(a), (const void*)(b), size, \
+ __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the specified value is not smaller than the minimum
+ * and and not greater than the maximum.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if value is not in range.
+ *
+ * @param[in] value The value to check.
+ *
+ * @param[in] minimum The minimum value allowed.
+ *
+ * @param[in] maximum The maximum value allowed.
+ */
+void assert_in_range(LargestIntegralType value, LargestIntegralType minimum, LargestIntegralType maximum);
+#else
+#define assert_in_range(value, minimum, maximum) \
+ _assert_in_range( \
+ cast_to_largest_integral_type(value), \
+ cast_to_largest_integral_type(minimum), \
+ cast_to_largest_integral_type(maximum), __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the specified value is smaller than the minimum or
+ * greater than the maximum.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if value is in range.
+ *
+ * @param[in] value The value to check.
+ *
+ * @param[in] minimum The minimum value to compare.
+ *
+ * @param[in] maximum The maximum value to compare.
+ */
+void assert_not_in_range(LargestIntegralType value, LargestIntegralType minimum, LargestIntegralType maximum);
+#else
+#define assert_not_in_range(value, minimum, maximum) \
+ _assert_not_in_range( \
+ cast_to_largest_integral_type(value), \
+ cast_to_largest_integral_type(minimum), \
+ cast_to_largest_integral_type(maximum), __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the specified value is within a set.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if value is not within a set.
+ *
+ * @param[in] value The value to look up
+ *
+ * @param[in] values[] The array to check for the value.
+ *
+ * @param[in] count The size of the values array.
+ */
+void assert_in_set(LargestIntegralType value, LargestIntegralType values[], size_t count);
+#else
+#define assert_in_set(value, values, number_of_values) \
+ _assert_in_set(value, values, number_of_values, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Assert that the specified value is not within a set.
+ *
+ * The function prints an error message to standard error and terminates the
+ * test by calling fail() if value is within a set.
+ *
+ * @param[in] value The value to look up
+ *
+ * @param[in] values[] The array to check for the value.
+ *
+ * @param[in] count The size of the values array.
+ */
+void assert_not_in_set(LargestIntegralType value, LargestIntegralType values[], size_t count);
+#else
+#define assert_not_in_set(value, values, number_of_values) \
+ _assert_not_in_set(value, values, number_of_values, __FILE__, __LINE__)
+#endif
+
+/** @} */
+
+/**
+ * @defgroup cmocka_call_order Call Ordering
+ * @ingroup cmocka
+ *
+ * It is often beneficial to make sure that functions are called in an
+ * order. This is independent of mock returns and parameter checking as both
+ * of the aforementioned do not check the order in which they are called from
+ * different functions.
+ *
+ *
+ *
expect_function_call(function) - The
+ * expect_function_call() macro pushes an expectation onto the stack of
+ * expected calls.
+ *
+ *
function_called() - pops a value from the stack of
+ * expected calls. function_called() is invoked within the mock object
+ * that uses it.
+ *
+ *
+ * expect_function_call() and function_called() are intended to be used in
+ * pairs. Cmocka will fail a test if there are more or less expected calls
+ * created (e.g. expect_function_call()) than consumed with function_called().
+ * There are provisions such as ignore_function_calls() which allow this
+ * restriction to be circumvented in tests where mock calls for the code under
+ * test are not the focus of the test.
+ *
+ * The following example illustrates how a unit test instructs cmocka
+ * to expect a function_called() from a particular mock,
+ * chef_sing():
+ *
+ * @code
+ * void chef_sing(void);
+ *
+ * void code_under_test()
+ * {
+ * chef_sing();
+ * }
+ *
+ * void some_test(void **state)
+ * {
+ * expect_function_call(chef_sing);
+ * code_under_test();
+ * }
+ * @endcode
+ *
+ * The implementation of the mock then must check whether it was meant to
+ * be called by invoking function_called():
+ *
+ * @code
+ * void chef_sing()
+ * {
+ * function_called();
+ * }
+ * @endcode
+ *
+ * @{
+ */
+
+#ifdef DOXYGEN
+/**
+ * @brief Check that current mocked function is being called in the expected
+ * order
+ *
+ * @see expect_function_call()
+ */
+void function_called(void);
+#else
+#define function_called() _function_called(__func__, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Store expected call(s) to a mock to be checked by function_called()
+ * later.
+ *
+ * @param[in] #function The function which should should be called
+ *
+ * @param[in] times number of times this mock must be called
+ *
+ * @see function_called()
+ */
+void expect_function_calls(#function, const int times);
+#else
+#define expect_function_calls(function, times) \
+ _expect_function_call(#function, __FILE__, __LINE__, times)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Store expected single call to a mock to be checked by
+ * function_called() later.
+ *
+ * @param[in] #function The function which should should be called
+ *
+ * @see function_called()
+ */
+void expect_function_call(#function);
+#else
+#define expect_function_call(function) \
+ _expect_function_call(#function, __FILE__, __LINE__, 1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Expects function_called() from given mock at least once
+ *
+ * @param[in] #function The function which should should be called
+ *
+ * @see function_called()
+ */
+void expect_function_call_any(#function);
+#else
+#define expect_function_call_any(function) \
+ _expect_function_call(#function, __FILE__, __LINE__, -1)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Ignores function_called() invocations from given mock function.
+ *
+ * @param[in] #function The function which should should be called
+ *
+ * @see function_called()
+ */
+void ignore_function_calls(#function);
+#else
+#define ignore_function_calls(function) \
+ _expect_function_call(#function, __FILE__, __LINE__, -2)
+#endif
+
+/** @} */
+
+/**
+ * @defgroup cmocka_exec Running Tests
+ * @ingroup cmocka
+ *
+ * This is the way tests are executed with CMocka.
+ *
+ * The following example illustrates this macro's use with the unit_test macro.
+ *
+ * @code
+ * void Test0(void **state);
+ * void Test1(void **state);
+ *
+ * int main(void)
+ * {
+ * const struct CMUnitTest tests[] = {
+ * cmocka_unit_test(Test0),
+ * cmocka_unit_test(Test1),
+ * };
+ *
+ * return cmocka_run_group_tests(tests, NULL, NULL);
+ * }
+ * @endcode
+ *
+ * @{
+ */
+
+#ifdef DOXYGEN
+/**
+ * @brief Forces the test to fail immediately and quit.
+ */
+void fail(void);
+#else
+#define fail() _fail(__FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Forces the test to not be executed, but marked as skipped
+ */
+void skip(void);
+#else
+#define skip() _skip(__FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Forces the test to fail immediately and quit, printing the reason.
+ *
+ * @code
+ * fail_msg("This is some error message for test");
+ * @endcode
+ *
+ * or
+ *
+ * @code
+ * char *error_msg = "This is some error message for test";
+ * fail_msg("%s", error_msg);
+ * @endcode
+ */
+void fail_msg(const char *msg, ...);
+#else
+#define fail_msg(msg, ...) do { \
+ print_error("ERROR: " msg "\n", ##__VA_ARGS__); \
+ fail(); \
+} while (0)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Generic method to run a single test.
+ *
+ * @deprecated This function was deprecated in favor of cmocka_run_group_tests
+ *
+ * @param[in] #function The function to test.
+ *
+ * @return 0 on success, 1 if an error occured.
+ *
+ * @code
+ * // A test case that does nothing and succeeds.
+ * void null_test_success(void **state) {
+ * }
+ *
+ * int main(void) {
+ * return run_test(null_test_success);
+ * }
+ * @endcode
+ */
+int run_test(#function);
+#else
+#define run_test(f) _run_test(#f, f, NULL, UNIT_TEST_FUNCTION_TYPE_TEST, NULL)
+#endif
+
+static inline void _unit_test_dummy(void **state) {
+ (void)state;
+}
+
+/** Initializes a UnitTest structure.
+ *
+ * @deprecated This function was deprecated in favor of cmocka_unit_test
+ */
+#define unit_test(f) { #f, f, UNIT_TEST_FUNCTION_TYPE_TEST }
+
+#define _unit_test_setup(test, setup) \
+ { #test "_" #setup, setup, UNIT_TEST_FUNCTION_TYPE_SETUP }
+
+/** Initializes a UnitTest structure with a setup function.
+ *
+ * @deprecated This function was deprecated in favor of cmocka_unit_test_setup
+ */
+#define unit_test_setup(test, setup) \
+ _unit_test_setup(test, setup), \
+ unit_test(test), \
+ _unit_test_teardown(test, _unit_test_dummy)
+
+#define _unit_test_teardown(test, teardown) \
+ { #test "_" #teardown, teardown, UNIT_TEST_FUNCTION_TYPE_TEARDOWN }
+
+/** Initializes a UnitTest structure with a teardown function.
+ *
+ * @deprecated This function was deprecated in favor of cmocka_unit_test_teardown
+ */
+#define unit_test_teardown(test, teardown) \
+ _unit_test_setup(test, _unit_test_dummy), \
+ unit_test(test), \
+ _unit_test_teardown(test, teardown)
+
+/** Initializes a UnitTest structure for a group setup function.
+ *
+ * @deprecated This function was deprecated in favor of cmocka_run_group_tests
+ */
+#define group_test_setup(setup) \
+ { "group_" #setup, setup, UNIT_TEST_FUNCTION_TYPE_GROUP_SETUP }
+
+/** Initializes a UnitTest structure for a group teardown function.
+ *
+ * @deprecated This function was deprecated in favor of cmocka_run_group_tests
+ */
+#define group_test_teardown(teardown) \
+ { "group_" #teardown, teardown, UNIT_TEST_FUNCTION_TYPE_GROUP_TEARDOWN }
+
+/**
+ * Initialize an array of UnitTest structures with a setup function for a test
+ * and a teardown function. Either setup or teardown can be NULL.
+ *
+ * @deprecated This function was deprecated in favor of
+ * cmocka_unit_test_setup_teardown
+ */
+#define unit_test_setup_teardown(test, setup, teardown) \
+ _unit_test_setup(test, setup), \
+ unit_test(test), \
+ _unit_test_teardown(test, teardown)
+
+
+/** Initializes a CMUnitTest structure. */
+#define cmocka_unit_test(f) { #f, f, NULL, NULL, NULL }
+
+/** Initializes a CMUnitTest structure with a setup function. */
+#define cmocka_unit_test_setup(f, setup) { #f, f, setup, NULL, NULL }
+
+/** Initializes a CMUnitTest structure with a teardown function. */
+#define cmocka_unit_test_teardown(f, teardown) { #f, f, NULL, teardown, NULL }
+
+/**
+ * Initialize an array of CMUnitTest structures with a setup function for a test
+ * and a teardown function. Either setup or teardown can be NULL.
+ */
+#define cmocka_unit_test_setup_teardown(f, setup, teardown) { #f, f, setup, teardown, NULL }
+
+/**
+ * Initialize a CMUnitTest structure with given initial state. It will be passed
+ * to test function as an argument later. It can be used when test state does
+ * not need special initialization or was initialized already.
+ * @note If the group setup function initialized the state already, it won't be
+ * overridden by the initial state defined here.
+ */
+#define cmocka_unit_test_prestate(f, state) { #f, f, NULL, NULL, state }
+
+/**
+ * Initialize a CMUnitTest structure with given initial state, setup and
+ * teardown function. Any of these values can be NULL. Initial state is passed
+ * later to setup function, or directly to test if none was given.
+ * @note If the group setup function initialized the state already, it won't be
+ * overridden by the initial state defined here.
+ */
+#define cmocka_unit_test_prestate_setup_teardown(f, setup, teardown, state) { #f, f, setup, teardown, state }
+
+#define run_tests(tests) _run_tests(tests, sizeof(tests) / sizeof(tests)[0])
+#define run_group_tests(tests) _run_group_tests(tests, sizeof(tests) / sizeof(tests)[0])
+
+#ifdef DOXYGEN
+/**
+ * @brief Run tests specified by an array of CMUnitTest structures.
+ *
+ * @param[in] group_tests[] The array of unit tests to execute.
+ *
+ * @param[in] group_setup The setup function which should be called before
+ * all unit tests are executed.
+ *
+ * @param[in] group_teardown The teardown function to be called after all
+ * tests have finished.
+ *
+ * @return 0 on success, or the number of failed tests.
+ *
+ * @code
+ * static int setup(void **state) {
+ * int *answer = malloc(sizeof(int));
+ * if (*answer == NULL) {
+ * return -1;
+ * }
+ * *answer = 42;
+ *
+ * *state = answer;
+ *
+ * return 0;
+ * }
+ *
+ * static int teardown(void **state) {
+ * free(*state);
+ *
+ * return 0;
+ * }
+ *
+ * static void null_test_success(void **state) {
+ * (void) state;
+ * }
+ *
+ * static void int_test_success(void **state) {
+ * int *answer = *state;
+ * assert_int_equal(*answer, 42);
+ * }
+ *
+ * int main(void) {
+ * const struct CMUnitTest tests[] = {
+ * cmocka_unit_test(null_test_success),
+ * cmocka_unit_test_setup_teardown(int_test_success, setup, teardown),
+ * };
+ *
+ * return cmocka_run_group_tests(tests, NULL, NULL);
+ * }
+ * @endcode
+ *
+ * @see cmocka_unit_test
+ * @see cmocka_unit_test_setup
+ * @see cmocka_unit_test_teardown
+ * @see cmocka_unit_test_setup_teardown
+ */
+int cmocka_run_group_tests(const struct CMUnitTest group_tests[],
+ CMFixtureFunction group_setup,
+ CMFixtureFunction group_teardown);
+#else
+# define cmocka_run_group_tests(group_tests, group_setup, group_teardown) \
+ _cmocka_run_group_tests(#group_tests, group_tests, sizeof(group_tests) / sizeof(group_tests)[0], group_setup, group_teardown)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Run tests specified by an array of CMUnitTest structures and specify
+ * a name.
+ *
+ * @param[in] group_name The name of the group test.
+ *
+ * @param[in] group_tests[] The array of unit tests to execute.
+ *
+ * @param[in] group_setup The setup function which should be called before
+ * all unit tests are executed.
+ *
+ * @param[in] group_teardown The teardown function to be called after all
+ * tests have finished.
+ *
+ * @return 0 on success, or the number of failed tests.
+ *
+ * @code
+ * static int setup(void **state) {
+ * int *answer = malloc(sizeof(int));
+ * if (*answer == NULL) {
+ * return -1;
+ * }
+ * *answer = 42;
+ *
+ * *state = answer;
+ *
+ * return 0;
+ * }
+ *
+ * static int teardown(void **state) {
+ * free(*state);
+ *
+ * return 0;
+ * }
+ *
+ * static void null_test_success(void **state) {
+ * (void) state;
+ * }
+ *
+ * static void int_test_success(void **state) {
+ * int *answer = *state;
+ * assert_int_equal(*answer, 42);
+ * }
+ *
+ * int main(void) {
+ * const struct CMUnitTest tests[] = {
+ * cmocka_unit_test(null_test_success),
+ * cmocka_unit_test_setup_teardown(int_test_success, setup, teardown),
+ * };
+ *
+ * return cmocka_run_group_tests_name("success_test", tests, NULL, NULL);
+ * }
+ * @endcode
+ *
+ * @see cmocka_unit_test
+ * @see cmocka_unit_test_setup
+ * @see cmocka_unit_test_teardown
+ * @see cmocka_unit_test_setup_teardown
+ */
+int cmocka_run_group_tests_name(const char *group_name,
+ const struct CMUnitTest group_tests[],
+ CMFixtureFunction group_setup,
+ CMFixtureFunction group_teardown);
+#else
+# define cmocka_run_group_tests_name(group_name, group_tests, group_setup, group_teardown) \
+ _cmocka_run_group_tests(group_name, group_tests, sizeof(group_tests) / sizeof(group_tests)[0], group_setup, group_teardown)
+#endif
+
+/** @} */
+
+/**
+ * @defgroup cmocka_alloc Dynamic Memory Allocation
+ * @ingroup cmocka
+ *
+ * Memory leaks, buffer overflows and underflows can be checked using cmocka.
+ *
+ * To test for memory leaks, buffer overflows and underflows a module being
+ * tested by cmocka should replace calls to malloc(), calloc() and free() to
+ * test_malloc(), test_calloc() and test_free() respectively. Each time a block
+ * is deallocated using test_free() it is checked for corruption, if a corrupt
+ * block is found a test failure is signalled. All blocks allocated using the
+ * test_*() allocation functions are tracked by the cmocka library. When a test
+ * completes if any allocated blocks (memory leaks) remain they are reported
+ * and a test failure is signalled.
+ *
+ * For simplicity cmocka currently executes all tests in one process. Therefore
+ * all test cases in a test application share a single address space which
+ * means memory corruption from a single test case could potentially cause the
+ * test application to exit prematurely.
+ *
+ * @{
+ */
+
+#ifdef DOXYGEN
+/**
+ * @brief Test function overriding malloc.
+ *
+ * @param[in] size The bytes which should be allocated.
+ *
+ * @return A pointer to the allocated memory or NULL on error.
+ *
+ * @code
+ * #ifdef UNIT_TESTING
+ * extern void* _test_malloc(const size_t size, const char* file, const int line);
+ *
+ * #define malloc(size) _test_malloc(size, __FILE__, __LINE__)
+ * #endif
+ *
+ * void leak_memory() {
+ * int * const temporary = (int*)malloc(sizeof(int));
+ * *temporary = 0;
+ * }
+ * @endcode
+ *
+ * @see malloc(3)
+ */
+void *test_malloc(size_t size);
+#else
+#define test_malloc(size) _test_malloc(size, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Test function overriding calloc.
+ *
+ * The memory is set to zero.
+ *
+ * @param[in] nmemb The number of elements for an array to be allocated.
+ *
+ * @param[in] size The size in bytes of each array element to allocate.
+ *
+ * @return A pointer to the allocated memory, NULL on error.
+ *
+ * @see calloc(3)
+ */
+void *test_calloc(size_t nmemb, size_t size);
+#else
+#define test_calloc(num, size) _test_calloc(num, size, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Test function overriding realloc which detects buffer overruns
+ * and memoery leaks.
+ *
+ * @param[in] ptr The memory block which should be changed.
+ *
+ * @param[in] size The bytes which should be allocated.
+ *
+ * @return The newly allocated memory block, NULL on error.
+ */
+void *test_realloc(void *ptr, size_t size);
+#else
+#define test_realloc(ptr, size) _test_realloc(ptr, size, __FILE__, __LINE__)
+#endif
+
+#ifdef DOXYGEN
+/**
+ * @brief Test function overriding free(3).
+ *
+ * @param[in] ptr The pointer to the memory space to free.
+ *
+ * @see free(3).
+ */
+void test_free(void *ptr);
+#else
+#define test_free(ptr) _test_free(ptr, __FILE__, __LINE__)
+#endif
+
+/* Redirect malloc, calloc and free to the unit test allocators. */
+#ifdef UNIT_TESTING
+#define malloc test_malloc
+#define realloc test_realloc
+#define calloc test_calloc
+#define free test_free
+#endif /* UNIT_TESTING */
+
+/** @} */
+
+
+/**
+ * @defgroup cmocka_mock_assert Standard Assertions
+ * @ingroup cmocka
+ *
+ * How to handle assert(3) of the standard C library.
+ *
+ * Runtime assert macros like the standard C library's assert() should be
+ * redefined in modules being tested to use cmocka's mock_assert() function.
+ * Normally mock_assert() signals a test failure. If a function is called using
+ * the expect_assert_failure() macro, any calls to mock_assert() within the
+ * function will result in the execution of the test. If no calls to
+ * mock_assert() occur during the function called via expect_assert_failure() a
+ * test failure is signalled.
+ *
+ * @{
+ */
+
+/**
+ * @brief Function to replace assert(3) in tested code.
+ *
+ * In conjuction with check_assert() it's possible to determine whether an
+ * assert condition has failed without stopping a test.
+ *
+ * @param[in] result The expression to assert.
+ *
+ * @param[in] expression The expression as string.
+ *
+ * @param[in] file The file mock_assert() is called.
+ *
+ * @param[in] line The line mock_assert() is called.
+ *
+ * @code
+ * #ifdef UNIT_TESTING
+ * extern void mock_assert(const int result, const char* const expression,
+ * const char * const file, const int line);
+ *
+ * #undef assert
+ * #define assert(expression) \
+ * mock_assert((int)(expression), #expression, __FILE__, __LINE__);
+ * #endif
+ *
+ * void increment_value(int * const value) {
+ * assert(value);
+ * (*value) ++;
+ * }
+ * @endcode
+ *
+ * @see assert(3)
+ * @see expect_assert_failure
+ */
+void mock_assert(const int result, const char* const expression,
+ const char * const file, const int line);
+
+#ifdef DOXYGEN
+/**
+ * @brief Ensure that mock_assert() is called.
+ *
+ * If mock_assert() is called the assert expression string is returned.
+ *
+ * @param[in] fn_call The function will will call mock_assert().
+ *
+ * @code
+ * #define assert mock_assert
+ *
+ * void showmessage(const char *message) {
+ * assert(message);
+ * }
+ *
+ * int main(int argc, const char* argv[]) {
+ * expect_assert_failure(show_message(NULL));
+ * printf("succeeded\n");
+ * return 0;
+ * }
+ * @endcode
+ *
+ */
+void expect_assert_failure(function fn_call);
+#else
+#define expect_assert_failure(function_call) \
+ { \
+ const int result = setjmp(global_expect_assert_env); \
+ global_expecting_assert = 1; \
+ if (result) { \
+ print_message("Expected assertion %s occurred\n", \
+ global_last_failed_assert); \
+ global_expecting_assert = 0; \
+ } else { \
+ function_call ; \
+ global_expecting_assert = 0; \
+ print_error("Expected assert in %s\n", #function_call); \
+ _fail(__FILE__, __LINE__); \
+ } \
+ }
+#endif
+
+/** @} */
+
+/* Function prototype for setup, test and teardown functions. */
+typedef void (*UnitTestFunction)(void **state);
+
+/* Function that determines whether a function parameter value is correct. */
+typedef int (*CheckParameterValue)(const LargestIntegralType value,
+ const LargestIntegralType check_value_data);
+
+/* Type of the unit test function. */
+typedef enum UnitTestFunctionType {
+ UNIT_TEST_FUNCTION_TYPE_TEST = 0,
+ UNIT_TEST_FUNCTION_TYPE_SETUP,
+ UNIT_TEST_FUNCTION_TYPE_TEARDOWN,
+ UNIT_TEST_FUNCTION_TYPE_GROUP_SETUP,
+ UNIT_TEST_FUNCTION_TYPE_GROUP_TEARDOWN,
+} UnitTestFunctionType;
+
+/*
+ * Stores a unit test function with its name and type.
+ * NOTE: Every setup function must be paired with a teardown function. It's
+ * possible to specify NULL function pointers.
+ */
+typedef struct UnitTest {
+ const char* name;
+ UnitTestFunction function;
+ UnitTestFunctionType function_type;
+} UnitTest;
+
+typedef struct GroupTest {
+ UnitTestFunction setup;
+ UnitTestFunction teardown;
+ const UnitTest *tests;
+ const size_t number_of_tests;
+} GroupTest;
+
+/* Function prototype for test functions. */
+typedef void (*CMUnitTestFunction)(void **state);
+
+/* Function prototype for setup and teardown functions. */
+typedef int (*CMFixtureFunction)(void **state);
+
+struct CMUnitTest {
+ const char *name;
+ CMUnitTestFunction test_func;
+ CMFixtureFunction setup_func;
+ CMFixtureFunction teardown_func;
+ void *initial_state;
+};
+
+/* Location within some source code. */
+typedef struct SourceLocation {
+ const char* file;
+ int line;
+} SourceLocation;
+
+/* Event that's called to check a parameter value. */
+typedef struct CheckParameterEvent {
+ SourceLocation location;
+ const char *parameter_name;
+ CheckParameterValue check_value;
+ LargestIntegralType check_value_data;
+} CheckParameterEvent;
+
+/* Used by expect_assert_failure() and mock_assert(). */
+extern int global_expecting_assert;
+extern jmp_buf global_expect_assert_env;
+extern const char * global_last_failed_assert;
+
+/* Retrieves a value for the given function, as set by "will_return". */
+LargestIntegralType _mock(const char * const function, const char* const file,
+ const int line);
+
+void _expect_function_call(
+ const char * const function_name,
+ const char * const file,
+ const int line,
+ const int count);
+
+void _function_called(const char * const function, const char* const file,
+ const int line);
+
+void _expect_check(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const CheckParameterValue check_function,
+ const LargestIntegralType check_data, CheckParameterEvent * const event,
+ const int count);
+
+void _expect_in_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const LargestIntegralType values[],
+ const size_t number_of_values, const int count);
+void _expect_not_in_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const LargestIntegralType values[],
+ const size_t number_of_values, const int count);
+
+void _expect_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const int count);
+void _expect_not_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const int count);
+
+void _expect_value(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const LargestIntegralType value,
+ const int count);
+void _expect_not_value(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const LargestIntegralType value,
+ const int count);
+
+void _expect_string(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const char* string,
+ const int count);
+void _expect_not_string(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const char* string,
+ const int count);
+
+void _expect_memory(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const void* const memory,
+ const size_t size, const int count);
+void _expect_not_memory(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const void* const memory,
+ const size_t size, const int count);
+
+void _expect_any(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const int count);
+
+void _check_expected(
+ const char * const function_name, const char * const parameter_name,
+ const char* file, const int line, const LargestIntegralType value);
+
+void _will_return(const char * const function_name, const char * const file,
+ const int line, const LargestIntegralType value,
+ const int count);
+void _assert_true(const LargestIntegralType result,
+ const char* const expression,
+ const char * const file, const int line);
+void _assert_return_code(const LargestIntegralType result,
+ size_t rlen,
+ const LargestIntegralType error,
+ const char * const expression,
+ const char * const file,
+ const int line);
+void _assert_int_equal(
+ const LargestIntegralType a, const LargestIntegralType b,
+ const char * const file, const int line);
+void _assert_int_not_equal(
+ const LargestIntegralType a, const LargestIntegralType b,
+ const char * const file, const int line);
+void _assert_string_equal(const char * const a, const char * const b,
+ const char * const file, const int line);
+void _assert_string_not_equal(const char * const a, const char * const b,
+ const char *file, const int line);
+void _assert_memory_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line);
+void _assert_memory_not_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line);
+void _assert_in_range(
+ const LargestIntegralType value, const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const char* const file, const int line);
+void _assert_not_in_range(
+ const LargestIntegralType value, const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const char* const file, const int line);
+void _assert_in_set(
+ const LargestIntegralType value, const LargestIntegralType values[],
+ const size_t number_of_values, const char* const file, const int line);
+void _assert_not_in_set(
+ const LargestIntegralType value, const LargestIntegralType values[],
+ const size_t number_of_values, const char* const file, const int line);
+
+void* _test_malloc(const size_t size, const char* file, const int line);
+void* _test_realloc(void *ptr, const size_t size, const char* file, const int line);
+void* _test_calloc(const size_t number_of_elements, const size_t size,
+ const char* file, const int line);
+void _test_free(void* const ptr, const char* file, const int line);
+
+void _fail(const char * const file, const int line);
+
+void _skip(const char * const file, const int line);
+
+int _run_test(
+ const char * const function_name, const UnitTestFunction Function,
+ void ** const volatile state, const UnitTestFunctionType function_type,
+ const void* const heap_check_point);
+CMOCKA_DEPRECATED int _run_tests(const UnitTest * const tests,
+ const size_t number_of_tests);
+CMOCKA_DEPRECATED int _run_group_tests(const UnitTest * const tests,
+ const size_t number_of_tests);
+
+/* Test runner */
+int _cmocka_run_group_tests(const char *group_name,
+ const struct CMUnitTest * const tests,
+ const size_t num_tests,
+ CMFixtureFunction group_setup,
+ CMFixtureFunction group_teardown);
+
+/* Standard output and error print methods. */
+void print_message(const char* const format, ...) CMOCKA_PRINTF_ATTRIBUTE(1, 2);
+void print_error(const char* const format, ...) CMOCKA_PRINTF_ATTRIBUTE(1, 2);
+void vprint_message(const char* const format, va_list args) CMOCKA_PRINTF_ATTRIBUTE(1, 0);
+void vprint_error(const char* const format, va_list args) CMOCKA_PRINTF_ATTRIBUTE(1, 0);
+
+enum cm_message_output {
+ CM_OUTPUT_STDOUT,
+ CM_OUTPUT_SUBUNIT,
+ CM_OUTPUT_TAP,
+ CM_OUTPUT_XML,
+};
+
+/**
+ * @brief Function to set the output format for a test.
+ *
+ * The ouput format for the test can either be set globally using this
+ * function or overriden with environment variable CMOCKA_MESSAGE_OUTPUT.
+ *
+ * The environment variable can be set to either STDOUT, SUBUNIT, TAP or XML.
+ *
+ * @param[in] output The output format to use for the test.
+ *
+ */
+void cmocka_set_message_output(enum cm_message_output output);
+
+/** @} */
+
+#endif /* CMOCKA_H_ */
diff --git a/tests/cmocka-1.1.0/include/cmocka_pbc.h b/tests/cmocka-1.1.0/include/cmocka_pbc.h
new file mode 100644
index 0000000..a2a1bc1
--- /dev/null
+++ b/tests/cmocka-1.1.0/include/cmocka_pbc.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2014 Luis Pabon, Jr.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Programming by Contract is a programming methodology
+ * which binds the caller and the function called to a
+ * contract. The contract is represented using Hoare Triple:
+ * {P} C {Q}
+ * where {P} is the precondition before executing command C,
+ * and {Q} is the postcondition.
+ *
+ * See also:
+ * http://en.wikipedia.org/wiki/Design_by_contract
+ * http://en.wikipedia.org/wiki/Hoare_logic
+ * http://dlang.org/dbc.html
+ */
+#ifndef CMOCKA_PBC_H_
+#define CMOCKA_PBC_H_
+
+#if defined(UNIT_TESTING) || defined (DEBUG)
+
+#include
+
+/*
+ * Checks caller responsibility against contract
+ */
+#define REQUIRE(cond) assert(cond)
+
+/*
+ * Checks function reponsability against contract.
+ */
+#define ENSURE(cond) assert(cond)
+
+/*
+ * While REQUIRE and ENSURE apply to functions, INVARIANT
+ * applies to classes/structs. It ensures that intances
+ * of the class/struct are consistent. In other words,
+ * that the instance has not been corrupted.
+ */
+#define INVARIANT(invariant_fnc) do{ (invariant_fnc) } while (0);
+
+#else
+#define REQUIRE(cond) do { } while (0);
+#define ENSURE(cond) do { } while (0);
+#define INVARIANT(invariant_fnc) do{ } while (0);
+
+#endif /* defined(UNIT_TESTING) || defined (DEBUG) */
+#endif /* CMOCKA_PBC_H_ */
+
diff --git a/tests/cmocka-1.1.0/include/cmocka_private.h b/tests/cmocka-1.1.0/include/cmocka_private.h
new file mode 100644
index 0000000..d20d841
--- /dev/null
+++ b/tests/cmocka-1.1.0/include/cmocka_private.h
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef CMOCKA_PRIVATE_H_
+#define CMOCKA_PRIVATE_H_
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include
+
+#ifdef _WIN32
+#include
+
+# ifdef _MSC_VER
+# include /* _snprintf */
+
+# undef inline
+# define inline __inline
+
+# ifndef va_copy
+# define va_copy(dest, src) (dest = src)
+# endif
+
+# define strcasecmp _stricmp
+# define strncasecmp _strnicmp
+
+# if defined(HAVE__SNPRINTF_S)
+# undef snprintf
+# define snprintf(d, n, ...) _snprintf_s((d), (n), _TRUNCATE, __VA_ARGS__)
+# else /* HAVE__SNPRINTF_S */
+# if defined(HAVE__SNPRINTF)
+# undef snprintf
+# define snprintf _snprintf
+# else /* HAVE__SNPRINTF */
+# if !defined(HAVE_SNPRINTF)
+# error "no snprintf compatible function found"
+# endif /* HAVE_SNPRINTF */
+# endif /* HAVE__SNPRINTF */
+# endif /* HAVE__SNPRINTF_S */
+
+# if defined(HAVE__VSNPRINTF_S)
+# undef vsnprintf
+# define vsnprintf(s, n, f, v) _vsnprintf_s((s), (n), _TRUNCATE, (f), (v))
+# else /* HAVE__VSNPRINTF_S */
+# if defined(HAVE__VSNPRINTF)
+# undef vsnprintf
+# define vsnprintf _vsnprintf
+# else
+# if !defined(HAVE_VSNPRINTF)
+# error "No vsnprintf compatible function found"
+# endif /* HAVE_VSNPRINTF */
+# endif /* HAVE__VSNPRINTF */
+# endif /* HAVE__VSNPRINTF_S */
+# endif /* _MSC_VER */
+
+/*
+ * Backwards compatibility with headers shipped with Visual Studio 2005 and
+ * earlier.
+ */
+WINBASEAPI BOOL WINAPI IsDebuggerPresent(VOID);
+
+#ifndef PRIdS
+# define PRIdS "Id"
+#endif
+
+#ifndef PRIu64
+# define PRIu64 "I64u"
+#endif
+
+#ifndef PRIuMAX
+# define PRIuMAX PRIu64
+#endif
+
+#ifndef PRIxMAX
+#define PRIxMAX "I64x"
+#endif
+
+#ifndef PRIXMAX
+#define PRIXMAX "I64X"
+#endif
+
+#else /* _WIN32 */
+
+#ifndef __PRI64_PREFIX
+# if __WORDSIZE == 64
+# define __PRI64_PREFIX "l"
+# else
+# define __PRI64_PREFIX "ll"
+# endif
+#endif
+
+#ifndef PRIdS
+# define PRIdS "zd"
+#endif
+
+#ifndef PRIu64
+# define PRIu64 __PRI64_PREFIX "u"
+#endif
+
+#ifndef PRIuMAX
+# define PRIuMAX __PRI64_PREFIX "u"
+#endif
+
+#ifndef PRIxMAX
+#define PRIxMAX __PRI64_PREFIX "x"
+#endif
+
+#ifndef PRIXMAX
+#define PRIXMAX __PRI64_PREFIX "X"
+#endif
+
+#endif /* _WIN32 */
+
+/** Free memory space */
+#define SAFE_FREE(x) do { if ((x) != NULL) {free(x); x=NULL;} } while(0)
+
+/** Zero a structure */
+#define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x))
+
+/** Zero a structure given a pointer to the structure */
+#define ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0)
+
+/** Get the size of an array */
+#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
+
+/** Overwrite the complete string with 'X' */
+#define BURN_STRING(x) do { if ((x) != NULL) memset((x), 'X', strlen((x))); } while(0)
+
+/**
+ * This is a hack to fix warnings. The idea is to use this everywhere that we
+ * get the "discarding const" warning by the compiler. That doesn't actually
+ * fix the real issue, but marks the place and you can search the code for
+ * discard_const.
+ *
+ * Please use this macro only when there is no other way to fix the warning.
+ * We should use this function in only in a very few places.
+ *
+ * Also, please call this via the discard_const_p() macro interface, as that
+ * makes the return type safe.
+ */
+#define discard_const(ptr) ((void *)((uintptr_t)(ptr)))
+
+/**
+ * Type-safe version of discard_const
+ */
+#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
+
+#endif /* CMOCKA_PRIVATE_H_ */
diff --git a/tests/cmocka-1.1.0/include/cmockery/cmockery.h b/tests/cmocka-1.1.0/include/cmockery/cmockery.h
new file mode 100644
index 0000000..a252a5f
--- /dev/null
+++ b/tests/cmocka-1.1.0/include/cmockery/cmockery.h
@@ -0,0 +1 @@
+#include
diff --git a/tests/cmocka-1.1.0/include/cmockery/pbc.h b/tests/cmocka-1.1.0/include/cmockery/pbc.h
new file mode 100644
index 0000000..50bac87
--- /dev/null
+++ b/tests/cmocka-1.1.0/include/cmockery/pbc.h
@@ -0,0 +1 @@
+#include
diff --git a/tests/cmocka-1.1.0/src/CMakeLists.txt b/tests/cmocka-1.1.0/src/CMakeLists.txt
new file mode 100644
index 0000000..b5a3c7d
--- /dev/null
+++ b/tests/cmocka-1.1.0/src/CMakeLists.txt
@@ -0,0 +1,118 @@
+project(cmocka-library C)
+
+set(CMOCKA_PLATFORM_INCLUDE CACHE PATH "Path to include directory for cmocka_platform.h")
+
+set(CMOCKA_PUBLIC_INCLUDE_DIRS
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMOCKA_PLATFORM_INCLUDE}
+ CACHE INTERNAL "cmocka public include directories"
+)
+
+set(CMOCKA_PRIVATE_INCLUDE_DIRS
+ ${CMAKE_BINARY_DIR}
+)
+
+set(CMOCKA_SHARED_LIBRARY
+ cmocka_shared
+ CACHE INTERNAL "cmocka shared library"
+)
+
+if (WITH_STATIC_LIB)
+ set(CMOCKA_STATIC_LIBRARY
+ cmocka_static
+ CACHE INTERNAL "cmocka static library"
+ )
+endif (WITH_STATIC_LIB)
+
+set(CMOCKA_LINK_LIBRARIES
+ ${CMOCKA_REQUIRED_LIBRARIES}
+ CACHE INTERNAL "cmocka link libraries"
+)
+
+set(cmocka_SRCS
+ cmocka.c
+)
+
+if (WIN32)
+ set(cmocka_SRCS
+ ${cmocka_SRCS}
+ cmocka.def
+ )
+endif (WIN32)
+
+include_directories(
+ ${CMOCKA_PUBLIC_INCLUDE_DIRS}
+ ${CMOCKA_PRIVATE_INCLUDE_DIRS}
+)
+
+add_definitions(-DHAVE_CONFIG_H=1)
+if (CMOCKA_PLATFORM_INCLUDE)
+ add_definitions(-DCMOCKA_PLATFORM_INCLUDE=1)
+endif()
+
+add_library(${CMOCKA_SHARED_LIBRARY} SHARED ${cmocka_SRCS})
+
+target_link_libraries(${CMOCKA_SHARED_LIBRARY} ${CMOCKA_LINK_LIBRARIES})
+set_target_properties(
+ ${CMOCKA_SHARED_LIBRARY}
+ PROPERTIES
+ OUTPUT_NAME
+ cmocka
+ DEFINE_SYMBOL
+ CMOCKA_EXPORTS
+)
+
+if (NOT WIN32)
+ set_target_properties(
+ ${CMOCKA_SHARED_LIBRARY}
+ PROPERTIES
+ VERSION
+ ${LIBRARY_VERSION}
+ SOVERSION
+ ${LIBRARY_SOVERSION}
+ )
+endif (NOT WIN32)
+
+install(
+ TARGETS ${CMOCKA_SHARED_LIBRARY}
+ RUNTIME DESTINATION ${BIN_INSTALL_DIR}
+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+ COMPONENT libraries
+)
+
+if (WITH_STATIC_LIB)
+ add_library(${CMOCKA_STATIC_LIBRARY} STATIC ${cmocka_SRCS})
+
+ set_target_properties(
+ ${CMOCKA_STATIC_LIBRARY}
+ PROPERTIES
+ VERSION
+ ${LIBRARY_VERSION}
+ SOVERSION
+ ${LIBRARY_SOVERSION}
+ OUTPUT_NAME
+ cmocka
+ )
+
+ install(
+ TARGETS ${CMOCKA_STATIC_LIBRARY}
+ DESTINATION ${LIB_INSTALL_DIR}
+ COMPONENT libraries
+ )
+endif (WITH_STATIC_LIB)
+
+if (POLICY CMP0026)
+ cmake_policy(SET CMP0026 OLD)
+endif()
+
+#
+# In order to run tests we will need to set the approriate environment
+# variable so that the test program can locate its dependent DLL's. First
+# we want to know what directory our dependent DLL was installed into:
+#
+get_target_property(_cmocka_dir cmocka_shared LOCATION_${CMOCKA_BUILD_TYPE})
+get_filename_component(_cmocka_path "${_cmocka_dir}" PATH)
+file(TO_NATIVE_PATH "${_cmocka_path}" _cmocka_path_native)
+
+set(CMOCKA_DLL_PATH "${_cmocka_path_native}" PARENT_SCOPE)
diff --git a/tests/cmocka-1.1.0/src/cmocka.c b/tests/cmocka-1.1.0/src/cmocka.c
new file mode 100644
index 0000000..3fd1af8
--- /dev/null
+++ b/tests/cmocka-1.1.0/src/cmocka.c
@@ -0,0 +1,3306 @@
+/*
+ * Copyright 2008 Google Inc.
+ * Copyright 2014-2015 Andreas Schneider
+ * Copyright 2015 Jakub Hrozek
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_MALLOC_H
+#include
+#endif
+
+#ifdef HAVE_INTTYPES_H
+#include
+#endif
+
+#ifdef HAVE_SIGNAL_H
+#include
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+/*
+ * This allows to add a platform specific header file. Some embedded platforms
+ * sometimes miss certain types and definitions.
+ *
+ * Example:
+ *
+ * typedef unsigned long int uintptr_t
+ * #define _UINTPTR_T 1
+ * #define _UINTPTR_T_DEFINED 1
+ */
+#ifdef CMOCKA_PLATFORM_INCLUDE
+# include "cmocka_platform.h"
+#endif /* CMOCKA_PLATFORM_INCLUDE */
+
+#include
+#include
+
+/* Size of guard bytes around dynamically allocated blocks. */
+#define MALLOC_GUARD_SIZE 16
+/* Pattern used to initialize guard blocks. */
+#define MALLOC_GUARD_PATTERN 0xEF
+/* Pattern used to initialize memory allocated with test_malloc(). */
+#define MALLOC_ALLOC_PATTERN 0xBA
+#define MALLOC_FREE_PATTERN 0xCD
+/* Alignment of allocated blocks. NOTE: This must be base2. */
+#define MALLOC_ALIGNMENT sizeof(size_t)
+
+/* Printf formatting for source code locations. */
+#define SOURCE_LOCATION_FORMAT "%s:%u"
+
+#if defined(HAVE_GCC_THREAD_LOCAL_STORAGE)
+# define CMOCKA_THREAD __thread
+#elif defined(HAVE_MSVC_THREAD_LOCAL_STORAGE)
+# define CMOCKA_THREAD __declspec(thread)
+#else
+# define CMOCKA_THREAD
+#endif
+
+#ifdef HAVE_CLOCK_GETTIME_REALTIME
+#define CMOCKA_CLOCK_GETTIME(clock_id, ts) clock_gettime((clock_id), (ts))
+#else
+#define CMOCKA_CLOCK_GETTIME(clock_id, ts)
+#endif
+
+#ifndef MAX
+#define MAX(a,b) ((a) < (b) ? (b) : (a))
+#endif
+
+/**
+ * POSIX has sigsetjmp/siglongjmp, while Windows only has setjmp/longjmp.
+ */
+#ifdef HAVE_SIGLONGJMP
+# define cm_jmp_buf sigjmp_buf
+# define cm_setjmp(env) sigsetjmp(env, 1)
+# define cm_longjmp(env, val) siglongjmp(env, val)
+#else
+# define cm_jmp_buf jmp_buf
+# define cm_setjmp(env) setjmp(env)
+# define cm_longjmp(env, val) longjmp(env, val)
+#endif
+
+
+/*
+ * Declare and initialize the pointer member of ValuePointer variable name
+ * with ptr.
+ */
+#define declare_initialize_value_pointer_pointer(name, ptr) \
+ ValuePointer name ; \
+ name.value = 0; \
+ name.x.pointer = (void*)(ptr)
+
+/*
+ * Declare and initialize the value member of ValuePointer variable name
+ * with val.
+ */
+#define declare_initialize_value_pointer_value(name, val) \
+ ValuePointer name ; \
+ name.value = val
+
+/* Cast a LargestIntegralType to pointer_type via a ValuePointer. */
+#define cast_largest_integral_type_to_pointer( \
+ pointer_type, largest_integral_type) \
+ ((pointer_type)((ValuePointer*)&(largest_integral_type))->x.pointer)
+
+/* Used to cast LargetIntegralType to void* and vice versa. */
+typedef union ValuePointer {
+ LargestIntegralType value;
+ struct {
+#if defined(WORDS_BIGENDIAN) && (WORDS_SIZEOF_VOID_P == 4)
+ unsigned int padding;
+#endif
+ void *pointer;
+ } x;
+} ValuePointer;
+
+/* Doubly linked list node. */
+typedef struct ListNode {
+ const void *value;
+ int refcount;
+ struct ListNode *next;
+ struct ListNode *prev;
+} ListNode;
+
+/* Debug information for malloc(). */
+typedef struct MallocBlockInfo {
+ void* block; /* Address of the block returned by malloc(). */
+ size_t allocated_size; /* Total size of the allocated block. */
+ size_t size; /* Request block size. */
+ SourceLocation location; /* Where the block was allocated. */
+ ListNode node; /* Node within list of all allocated blocks. */
+} MallocBlockInfo;
+
+/* State of each test. */
+typedef struct TestState {
+ const ListNode *check_point; /* Check point of the test if there's a */
+ /* setup function. */
+ void *state; /* State associated with the test. */
+} TestState;
+
+/* Determines whether two values are the same. */
+typedef int (*EqualityFunction)(const void *left, const void *right);
+
+/* Value of a symbol and the place it was declared. */
+typedef struct SymbolValue {
+ SourceLocation location;
+ LargestIntegralType value;
+} SymbolValue;
+
+/*
+ * Contains a list of values for a symbol.
+ * NOTE: Each structure referenced by symbol_values_list_head must have a
+ * SourceLocation as its' first member.
+ */
+typedef struct SymbolMapValue {
+ const char *symbol_name;
+ ListNode symbol_values_list_head;
+} SymbolMapValue;
+
+/* Where a particular ordering was located and its symbol name */
+typedef struct FuncOrderingValue {
+ SourceLocation location;
+ const char * function;
+} FuncOrderingValue;
+
+/* Used by list_free() to deallocate values referenced by list nodes. */
+typedef void (*CleanupListValue)(const void *value, void *cleanup_value_data);
+
+/* Structure used to check the range of integer types.a */
+typedef struct CheckIntegerRange {
+ CheckParameterEvent event;
+ LargestIntegralType minimum;
+ LargestIntegralType maximum;
+} CheckIntegerRange;
+
+/* Structure used to check whether an integer value is in a set. */
+typedef struct CheckIntegerSet {
+ CheckParameterEvent event;
+ const LargestIntegralType *set;
+ size_t size_of_set;
+} CheckIntegerSet;
+
+/* Used to check whether a parameter matches the area of memory referenced by
+ * this structure. */
+typedef struct CheckMemoryData {
+ CheckParameterEvent event;
+ const void *memory;
+ size_t size;
+} CheckMemoryData;
+
+static ListNode* list_initialize(ListNode * const node);
+static ListNode* list_add(ListNode * const head, ListNode *new_node);
+static ListNode* list_add_value(ListNode * const head, const void *value,
+ const int count);
+static ListNode* list_remove(
+ ListNode * const node, const CleanupListValue cleanup_value,
+ void * const cleanup_value_data);
+static void list_remove_free(
+ ListNode * const node, const CleanupListValue cleanup_value,
+ void * const cleanup_value_data);
+static int list_empty(const ListNode * const head);
+static int list_find(
+ ListNode * const head, const void *value,
+ const EqualityFunction equal_func, ListNode **output);
+static int list_first(ListNode * const head, ListNode **output);
+static ListNode* list_free(
+ ListNode * const head, const CleanupListValue cleanup_value,
+ void * const cleanup_value_data);
+
+static void add_symbol_value(
+ ListNode * const symbol_map_head, const char * const symbol_names[],
+ const size_t number_of_symbol_names, const void* value, const int count);
+static int get_symbol_value(
+ ListNode * const symbol_map_head, const char * const symbol_names[],
+ const size_t number_of_symbol_names, void **output);
+static void free_value(const void *value, void *cleanup_value_data);
+static void free_symbol_map_value(
+ const void *value, void *cleanup_value_data);
+static void remove_always_return_values(ListNode * const map_head,
+ const size_t number_of_symbol_names);
+
+static int check_for_leftover_values_list(const ListNode * head,
+ const char * const error_message);
+
+static int check_for_leftover_values(
+ const ListNode * const map_head, const char * const error_message,
+ const size_t number_of_symbol_names);
+
+static void remove_always_return_values_from_list(ListNode * const map_head);
+
+/*
+ * This must be called at the beginning of a test to initialize some data
+ * structures.
+ */
+static void initialize_testing(const char *test_name);
+
+/* This must be called at the end of a test to free() allocated structures. */
+static void teardown_testing(const char *test_name);
+
+static enum cm_message_output cm_get_output(void);
+
+static int cm_error_message_enabled = 1;
+static CMOCKA_THREAD char *cm_error_message;
+
+void cm_print_error(const char * const format, ...) CMOCKA_PRINTF_ATTRIBUTE(1, 2);
+
+/*
+ * Keeps track of the calling context returned by setenv() so that the fail()
+ * method can jump out of a test.
+ */
+static CMOCKA_THREAD cm_jmp_buf global_run_test_env;
+static CMOCKA_THREAD int global_running_test = 0;
+
+/* Keeps track of the calling context returned by setenv() so that */
+/* mock_assert() can optionally jump back to expect_assert_failure(). */
+jmp_buf global_expect_assert_env;
+int global_expecting_assert = 0;
+const char *global_last_failed_assert = NULL;
+static int global_skip_test;
+
+/* Keeps a map of the values that functions will have to return to provide */
+/* mocked interfaces. */
+static CMOCKA_THREAD ListNode global_function_result_map_head;
+/* Location of the last mock value returned was declared. */
+static CMOCKA_THREAD SourceLocation global_last_mock_value_location;
+
+/* Keeps a map of the values that functions expect as parameters to their
+ * mocked interfaces. */
+static CMOCKA_THREAD ListNode global_function_parameter_map_head;
+/* Location of last parameter value checked was declared. */
+static CMOCKA_THREAD SourceLocation global_last_parameter_location;
+
+/* List (acting as FIFO) of call ordering. */
+static CMOCKA_THREAD ListNode global_call_ordering_head;
+/* Location of last call ordering that was declared. */
+static CMOCKA_THREAD SourceLocation global_last_call_ordering_location;
+
+/* List of all currently allocated blocks. */
+static CMOCKA_THREAD ListNode global_allocated_blocks;
+
+static enum cm_message_output global_msg_output = CM_OUTPUT_STDOUT;
+
+#ifndef _WIN32
+/* Signals caught by exception_handler(). */
+static const int exception_signals[] = {
+ SIGFPE,
+ SIGILL,
+ SIGSEGV,
+#ifdef SIGBUS
+ SIGBUS,
+#endif
+#ifdef SIGSYS
+ SIGSYS,
+#endif
+};
+
+/* Default signal functions that should be restored after a test is complete. */
+typedef void (*SignalFunction)(int signal);
+static SignalFunction default_signal_functions[
+ ARRAY_SIZE(exception_signals)];
+
+#else /* _WIN32 */
+
+/* The default exception filter. */
+static LPTOP_LEVEL_EXCEPTION_FILTER previous_exception_filter;
+
+/* Fatal exceptions. */
+typedef struct ExceptionCodeInfo {
+ DWORD code;
+ const char* description;
+} ExceptionCodeInfo;
+
+#define EXCEPTION_CODE_INFO(exception_code) {exception_code, #exception_code}
+
+static const ExceptionCodeInfo exception_codes[] = {
+ EXCEPTION_CODE_INFO(EXCEPTION_ACCESS_VIOLATION),
+ EXCEPTION_CODE_INFO(EXCEPTION_ARRAY_BOUNDS_EXCEEDED),
+ EXCEPTION_CODE_INFO(EXCEPTION_DATATYPE_MISALIGNMENT),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_DENORMAL_OPERAND),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_DIVIDE_BY_ZERO),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_INEXACT_RESULT),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_INVALID_OPERATION),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_OVERFLOW),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_STACK_CHECK),
+ EXCEPTION_CODE_INFO(EXCEPTION_FLT_UNDERFLOW),
+ EXCEPTION_CODE_INFO(EXCEPTION_GUARD_PAGE),
+ EXCEPTION_CODE_INFO(EXCEPTION_ILLEGAL_INSTRUCTION),
+ EXCEPTION_CODE_INFO(EXCEPTION_INT_DIVIDE_BY_ZERO),
+ EXCEPTION_CODE_INFO(EXCEPTION_INT_OVERFLOW),
+ EXCEPTION_CODE_INFO(EXCEPTION_INVALID_DISPOSITION),
+ EXCEPTION_CODE_INFO(EXCEPTION_INVALID_HANDLE),
+ EXCEPTION_CODE_INFO(EXCEPTION_IN_PAGE_ERROR),
+ EXCEPTION_CODE_INFO(EXCEPTION_NONCONTINUABLE_EXCEPTION),
+ EXCEPTION_CODE_INFO(EXCEPTION_PRIV_INSTRUCTION),
+ EXCEPTION_CODE_INFO(EXCEPTION_STACK_OVERFLOW),
+};
+#endif /* !_WIN32 */
+
+enum CMUnitTestStatus {
+ CM_TEST_NOT_STARTED,
+ CM_TEST_PASSED,
+ CM_TEST_FAILED,
+ CM_TEST_ERROR,
+ CM_TEST_SKIPPED,
+};
+
+struct CMUnitTestState {
+ const ListNode *check_point; /* Check point of the test if there's a setup function. */
+ const struct CMUnitTest *test; /* Point to array element in the tests we get passed */
+ void *state; /* State associated with the test */
+ const char *error_message; /* The error messages by the test */
+ enum CMUnitTestStatus status; /* PASSED, FAILED, ABORT ... */
+ double runtime; /* Time calculations */
+};
+
+/* Exit the currently executing test. */
+static void exit_test(const int quit_application)
+{
+ const char *abort_test = getenv("CMOCKA_TEST_ABORT");
+
+ if (abort_test != NULL && abort_test[0] == '1') {
+ print_error("%s", cm_error_message);
+ abort();
+ } else if (global_running_test) {
+ cm_longjmp(global_run_test_env, 1);
+ } else if (quit_application) {
+ exit(-1);
+ }
+}
+
+void _skip(const char * const file, const int line)
+{
+ cm_print_error(SOURCE_LOCATION_FORMAT ": Skipped!\n", file, line);
+ global_skip_test = 1;
+ exit_test(1);
+}
+
+/* Initialize a SourceLocation structure. */
+static void initialize_source_location(SourceLocation * const location) {
+ assert_non_null(location);
+ location->file = NULL;
+ location->line = 0;
+}
+
+
+/* Determine whether a source location is currently set. */
+static int source_location_is_set(const SourceLocation * const location) {
+ assert_non_null(location);
+ return location->file && location->line;
+}
+
+
+/* Set a source location. */
+static void set_source_location(
+ SourceLocation * const location, const char * const file,
+ const int line) {
+ assert_non_null(location);
+ location->file = file;
+ location->line = line;
+}
+
+
+static int c_strreplace(char *src,
+ size_t src_len,
+ const char *pattern,
+ const char *repl,
+ int *str_replaced)
+{
+ char *p = NULL;
+
+ p = strstr(src, pattern);
+ if (p == NULL) {
+ return -1;
+ }
+
+ do {
+ size_t of = p - src;
+ size_t l = strlen(src);
+ size_t pl = strlen(pattern);
+ size_t rl = strlen(repl);
+
+ /* overflow check */
+ if (src_len <= l + MAX(pl, rl) + 1) {
+ return -1;
+ }
+
+ if (rl != pl) {
+ memmove(src + of + rl, src + of + pl, l - of - pl + 1);
+ }
+
+ strncpy(src + of, repl, rl);
+
+ if (str_replaced != NULL) {
+ *str_replaced = 1;
+ }
+ p = strstr(src, pattern);
+ } while (p != NULL);
+
+ return 0;
+}
+
+/* Create function results and expected parameter lists. */
+void initialize_testing(const char *test_name) {
+ (void)test_name;
+ list_initialize(&global_function_result_map_head);
+ initialize_source_location(&global_last_mock_value_location);
+ list_initialize(&global_function_parameter_map_head);
+ initialize_source_location(&global_last_parameter_location);
+ list_initialize(&global_call_ordering_head);
+ initialize_source_location(&global_last_parameter_location);
+}
+
+
+static void fail_if_leftover_values(const char *test_name) {
+ int error_occurred = 0;
+ (void)test_name;
+ remove_always_return_values(&global_function_result_map_head, 1);
+ if (check_for_leftover_values(
+ &global_function_result_map_head,
+ "%s() has remaining non-returned values.\n", 1)) {
+ error_occurred = 1;
+ }
+
+ remove_always_return_values(&global_function_parameter_map_head, 2);
+ if (check_for_leftover_values(
+ &global_function_parameter_map_head,
+ "%s parameter still has values that haven't been checked.\n", 2)) {
+ error_occurred = 1;
+ }
+
+ remove_always_return_values_from_list(&global_call_ordering_head);
+ if (check_for_leftover_values_list(&global_call_ordering_head,
+ "%s function was expected to be called but was not not.\n")) {
+ error_occurred = 1;
+ }
+ if (error_occurred) {
+ exit_test(1);
+ }
+}
+
+
+static void teardown_testing(const char *test_name) {
+ (void)test_name;
+ list_free(&global_function_result_map_head, free_symbol_map_value,
+ (void*)0);
+ initialize_source_location(&global_last_mock_value_location);
+ list_free(&global_function_parameter_map_head, free_symbol_map_value,
+ (void*)1);
+ initialize_source_location(&global_last_parameter_location);
+ list_free(&global_call_ordering_head, free_value,
+ (void*)0);
+ initialize_source_location(&global_last_call_ordering_location);
+}
+
+/* Initialize a list node. */
+static ListNode* list_initialize(ListNode * const node) {
+ node->value = NULL;
+ node->next = node;
+ node->prev = node;
+ node->refcount = 1;
+ return node;
+}
+
+
+/*
+ * Adds a value at the tail of a given list.
+ * The node referencing the value is allocated from the heap.
+ */
+static ListNode* list_add_value(ListNode * const head, const void *value,
+ const int refcount) {
+ ListNode * const new_node = (ListNode*)malloc(sizeof(ListNode));
+ assert_non_null(head);
+ assert_non_null(value);
+ new_node->value = value;
+ new_node->refcount = refcount;
+ return list_add(head, new_node);
+}
+
+
+/* Add new_node to the end of the list. */
+static ListNode* list_add(ListNode * const head, ListNode *new_node) {
+ assert_non_null(head);
+ assert_non_null(new_node);
+ new_node->next = head;
+ new_node->prev = head->prev;
+ head->prev->next = new_node;
+ head->prev = new_node;
+ return new_node;
+}
+
+
+/* Remove a node from a list. */
+static ListNode* list_remove(
+ ListNode * const node, const CleanupListValue cleanup_value,
+ void * const cleanup_value_data) {
+ assert_non_null(node);
+ node->prev->next = node->next;
+ node->next->prev = node->prev;
+ if (cleanup_value) {
+ cleanup_value(node->value, cleanup_value_data);
+ }
+ return node;
+}
+
+
+/* Remove a list node from a list and free the node. */
+static void list_remove_free(
+ ListNode * const node, const CleanupListValue cleanup_value,
+ void * const cleanup_value_data) {
+ assert_non_null(node);
+ free(list_remove(node, cleanup_value, cleanup_value_data));
+}
+
+
+/*
+ * Frees memory kept by a linked list The cleanup_value function is called for
+ * every "value" field of nodes in the list, except for the head. In addition
+ * to each list value, cleanup_value_data is passed to each call to
+ * cleanup_value. The head of the list is not deallocated.
+ */
+static ListNode* list_free(
+ ListNode * const head, const CleanupListValue cleanup_value,
+ void * const cleanup_value_data) {
+ assert_non_null(head);
+ while (!list_empty(head)) {
+ list_remove_free(head->next, cleanup_value, cleanup_value_data);
+ }
+ return head;
+}
+
+
+/* Determine whether a list is empty. */
+static int list_empty(const ListNode * const head) {
+ assert_non_null(head);
+ return head->next == head;
+}
+
+
+/*
+ * Find a value in the list using the equal_func to compare each node with the
+ * value.
+ */
+static int list_find(ListNode * const head, const void *value,
+ const EqualityFunction equal_func, ListNode **output) {
+ ListNode *current;
+ assert_non_null(head);
+ for (current = head->next; current != head; current = current->next) {
+ if (equal_func(current->value, value)) {
+ *output = current;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+/* Returns the first node of a list */
+static int list_first(ListNode * const head, ListNode **output) {
+ ListNode *target_node;
+ assert_non_null(head);
+ if (list_empty(head)) {
+ return 0;
+ }
+ target_node = head->next;
+ *output = target_node;
+ return 1;
+}
+
+
+/* Deallocate a value referenced by a list. */
+static void free_value(const void *value, void *cleanup_value_data) {
+ (void)cleanup_value_data;
+ assert_non_null(value);
+ free((void*)value);
+}
+
+
+/* Releases memory associated to a symbol_map_value. */
+static void free_symbol_map_value(const void *value,
+ void *cleanup_value_data) {
+ SymbolMapValue * const map_value = (SymbolMapValue*)value;
+ const LargestIntegralType children = cast_ptr_to_largest_integral_type(cleanup_value_data);
+ assert_non_null(value);
+ list_free(&map_value->symbol_values_list_head,
+ children ? free_symbol_map_value : free_value,
+ (void *) ((uintptr_t)children - 1));
+ free(map_value);
+}
+
+
+/*
+ * Determine whether a symbol name referenced by a symbol_map_value matches the
+ * specified function name.
+ */
+static int symbol_names_match(const void *map_value, const void *symbol) {
+ return !strcmp(((SymbolMapValue*)map_value)->symbol_name,
+ (const char*)symbol);
+}
+
+/*
+ * Adds a value to the queue of values associated with the given hierarchy of
+ * symbols. It's assumed value is allocated from the heap.
+ */
+static void add_symbol_value(ListNode * const symbol_map_head,
+ const char * const symbol_names[],
+ const size_t number_of_symbol_names,
+ const void* value, const int refcount) {
+ const char* symbol_name;
+ ListNode *target_node;
+ SymbolMapValue *target_map_value;
+ assert_non_null(symbol_map_head);
+ assert_non_null(symbol_names);
+ assert_true(number_of_symbol_names);
+ symbol_name = symbol_names[0];
+
+ if (!list_find(symbol_map_head, symbol_name, symbol_names_match,
+ &target_node)) {
+ SymbolMapValue * const new_symbol_map_value =
+ (SymbolMapValue*)malloc(sizeof(*new_symbol_map_value));
+ new_symbol_map_value->symbol_name = symbol_name;
+ list_initialize(&new_symbol_map_value->symbol_values_list_head);
+ target_node = list_add_value(symbol_map_head, new_symbol_map_value,
+ 1);
+ }
+
+ target_map_value = (SymbolMapValue*)target_node->value;
+ if (number_of_symbol_names == 1) {
+ list_add_value(&target_map_value->symbol_values_list_head,
+ value, refcount);
+ } else {
+ add_symbol_value(&target_map_value->symbol_values_list_head,
+ &symbol_names[1], number_of_symbol_names - 1, value,
+ refcount);
+ }
+}
+
+
+/*
+ * Gets the next value associated with the given hierarchy of symbols.
+ * The value is returned as an output parameter with the function returning the
+ * node's old refcount value if a value is found, 0 otherwise. This means that
+ * a return value of 1 indicates the node was just removed from the list.
+ */
+static int get_symbol_value(
+ ListNode * const head, const char * const symbol_names[],
+ const size_t number_of_symbol_names, void **output) {
+ const char* symbol_name;
+ ListNode *target_node;
+ assert_non_null(head);
+ assert_non_null(symbol_names);
+ assert_true(number_of_symbol_names);
+ assert_non_null(output);
+ symbol_name = symbol_names[0];
+
+ if (list_find(head, symbol_name, symbol_names_match, &target_node)) {
+ SymbolMapValue *map_value;
+ ListNode *child_list;
+ int return_value = 0;
+ assert_non_null(target_node);
+ assert_non_null(target_node->value);
+
+ map_value = (SymbolMapValue*)target_node->value;
+ child_list = &map_value->symbol_values_list_head;
+
+ if (number_of_symbol_names == 1) {
+ ListNode *value_node = NULL;
+ return_value = list_first(child_list, &value_node);
+ assert_true(return_value);
+ *output = (void*) value_node->value;
+ return_value = value_node->refcount;
+ if (value_node->refcount - 1 == 0) {
+ list_remove_free(value_node, NULL, NULL);
+ } else if (value_node->refcount > WILL_RETURN_ONCE) {
+ --value_node->refcount;
+ }
+ } else {
+ return_value = get_symbol_value(
+ child_list, &symbol_names[1], number_of_symbol_names - 1,
+ output);
+ }
+ if (list_empty(child_list)) {
+ list_remove_free(target_node, free_symbol_map_value, (void*)0);
+ }
+ return return_value;
+ } else {
+ cm_print_error("No entries for symbol %s.\n", symbol_name);
+ }
+ return 0;
+}
+
+/**
+ * Taverse a list of nodes and remove first symbol value in list that has a
+ * refcount < -1 (i.e. should always be returned and has been returned at
+ * least once).
+ */
+
+static void remove_always_return_values_from_list(ListNode * const map_head)
+{
+ ListNode * current = NULL;
+ ListNode * next = NULL;
+ assert_non_null(map_head);
+
+ for (current = map_head->next, next = current->next;
+ current != map_head;
+ current = next, next = current->next) {
+ if (current->refcount < -1) {
+ list_remove_free(current, free_value, NULL);
+ }
+ }
+}
+
+/*
+ * Traverse down a tree of symbol values and remove the first symbol value
+ * in each branch that has a refcount < -1 (i.e should always be returned
+ * and has been returned at least once).
+ */
+static void remove_always_return_values(ListNode * const map_head,
+ const size_t number_of_symbol_names) {
+ ListNode *current;
+ assert_non_null(map_head);
+ assert_true(number_of_symbol_names);
+ current = map_head->next;
+ while (current != map_head) {
+ SymbolMapValue * const value = (SymbolMapValue*)current->value;
+ ListNode * const next = current->next;
+ ListNode *child_list;
+ assert_non_null(value);
+ child_list = &value->symbol_values_list_head;
+
+ if (!list_empty(child_list)) {
+ if (number_of_symbol_names == 1) {
+ ListNode * const child_node = child_list->next;
+ /* If this item has been returned more than once, free it. */
+ if (child_node->refcount < -1) {
+ list_remove_free(child_node, free_value, NULL);
+ }
+ } else {
+ remove_always_return_values(child_list,
+ number_of_symbol_names - 1);
+ }
+ }
+
+ if (list_empty(child_list)) {
+ list_remove_free(current, free_value, NULL);
+ }
+ current = next;
+ }
+}
+
+static int check_for_leftover_values_list(const ListNode * head,
+ const char * const error_message)
+{
+ ListNode *child_node;
+ int leftover_count = 0;
+ if (!list_empty(head))
+ {
+ for (child_node = head->next; child_node != head;
+ child_node = child_node->next, ++leftover_count) {
+ const FuncOrderingValue *const o =
+ (const FuncOrderingValue*) child_node->value;
+ cm_print_error(error_message, o->function);
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": note: remaining item was declared here\n",
+ o->location.file, o->location.line);
+ }
+ }
+ return leftover_count;
+}
+
+/*
+ * Checks if there are any leftover values set up by the test that were never
+ * retrieved through execution, and fail the test if that is the case.
+ */
+static int check_for_leftover_values(
+ const ListNode * const map_head, const char * const error_message,
+ const size_t number_of_symbol_names) {
+ const ListNode *current;
+ int symbols_with_leftover_values = 0;
+ assert_non_null(map_head);
+ assert_true(number_of_symbol_names);
+
+ for (current = map_head->next; current != map_head;
+ current = current->next) {
+ const SymbolMapValue * const value =
+ (SymbolMapValue*)current->value;
+ const ListNode *child_list;
+ assert_non_null(value);
+ child_list = &value->symbol_values_list_head;
+
+ if (!list_empty(child_list)) {
+ if (number_of_symbol_names == 1) {
+ const ListNode *child_node;
+ cm_print_error(error_message, value->symbol_name);
+
+ for (child_node = child_list->next; child_node != child_list;
+ child_node = child_node->next) {
+ const SourceLocation * const location =
+ (const SourceLocation*)child_node->value;
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": note: remaining item was declared here\n",
+ location->file, location->line);
+ }
+ } else {
+ cm_print_error("%s.", value->symbol_name);
+ check_for_leftover_values(child_list, error_message,
+ number_of_symbol_names - 1);
+ }
+ symbols_with_leftover_values ++;
+ }
+ }
+ return symbols_with_leftover_values;
+}
+
+
+/* Get the next return value for the specified mock function. */
+LargestIntegralType _mock(const char * const function, const char* const file,
+ const int line) {
+ void *result;
+ const int rc = get_symbol_value(&global_function_result_map_head,
+ &function, 1, &result);
+ if (rc) {
+ SymbolValue * const symbol = (SymbolValue*)result;
+ const LargestIntegralType value = symbol->value;
+ global_last_mock_value_location = symbol->location;
+ if (rc == 1) {
+ free(symbol);
+ }
+ return value;
+ } else {
+ cm_print_error(SOURCE_LOCATION_FORMAT ": error: Could not get value "
+ "to mock function %s\n", file, line, function);
+ if (source_location_is_set(&global_last_mock_value_location)) {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": note: Previously returned mock value was declared here\n",
+ global_last_mock_value_location.file,
+ global_last_mock_value_location.line);
+ } else {
+ cm_print_error("There were no previously returned mock values for "
+ "this test.\n");
+ }
+ exit_test(1);
+ }
+ return 0;
+}
+
+/* Ensure that function is being called in proper order */
+void _function_called(const char *const function,
+ const char *const file,
+ const int line)
+{
+ ListNode *first_value_node = NULL;
+ ListNode *value_node = NULL;
+ FuncOrderingValue *expected_call;
+ int rc;
+
+ rc = list_first(&global_call_ordering_head, &value_node);
+ first_value_node = value_node;
+ if (rc) {
+ int cmp;
+
+ expected_call = (FuncOrderingValue *)value_node->value;
+ cmp = strcmp(expected_call->function, function);
+ if (value_node->refcount < -1) {
+ /*
+ * Search through value nodes until either function is found or
+ * encounter a non-zero refcount greater than -2
+ */
+ if (cmp != 0) {
+ value_node = value_node->next;
+ expected_call = (FuncOrderingValue *)value_node->value;
+
+ cmp = strcmp(expected_call->function, function);
+ while (value_node->refcount < -1 &&
+ cmp != 0 &&
+ value_node != first_value_node->prev) {
+ value_node = value_node->next;
+ if (value_node == NULL) {
+ break;
+ }
+ expected_call = (FuncOrderingValue *)value_node->value;
+ if (expected_call == NULL) {
+ continue;
+ }
+ cmp = strcmp(expected_call->function, function);
+ }
+
+ if (value_node == first_value_node->prev) {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": error: No expected mock calls matching "
+ "called() invocation in %s",
+ file, line,
+ function);
+ exit_test(1);
+ }
+ }
+ }
+
+ if (cmp == 0) {
+ if (value_node->refcount > -2 && --value_node->refcount == 0) {
+ list_remove_free(value_node, free_value, NULL);
+ }
+ } else {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": error: Expected call to %s but received called() "
+ "in %s\n",
+ file, line,
+ expected_call->function,
+ function);
+ exit_test(1);
+ }
+ } else {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": error: No mock calls expected but called() was "
+ "invoked in %s\n",
+ file, line,
+ function);
+ exit_test(1);
+ }
+}
+
+/* Add a return value for the specified mock function name. */
+void _will_return(const char * const function_name, const char * const file,
+ const int line, const LargestIntegralType value,
+ const int count) {
+ SymbolValue * const return_value =
+ (SymbolValue*)malloc(sizeof(*return_value));
+ assert_true(count != 0);
+ return_value->value = value;
+ set_source_location(&return_value->location, file, line);
+ add_symbol_value(&global_function_result_map_head, &function_name, 1,
+ return_value, count);
+}
+
+
+/*
+ * Add a custom parameter checking function. If the event parameter is NULL
+ * the event structure is allocated internally by this function. If event
+ * parameter is provided it must be allocated on the heap and doesn't need to
+ * be deallocated by the caller.
+ */
+void _expect_check(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const CheckParameterValue check_function,
+ const LargestIntegralType check_data,
+ CheckParameterEvent * const event, const int count) {
+ CheckParameterEvent * const check =
+ event ? event : (CheckParameterEvent*)malloc(sizeof(*check));
+ const char* symbols[] = {function, parameter};
+ check->parameter_name = parameter;
+ check->check_value = check_function;
+ check->check_value_data = check_data;
+ set_source_location(&check->location, file, line);
+ add_symbol_value(&global_function_parameter_map_head, symbols, 2, check,
+ count);
+}
+
+/*
+ * Add an call expectations that a particular function is called correctly.
+ * This is used for code under test that makes calls to several functions
+ * in depended upon components (mocks).
+ */
+
+void _expect_function_call(
+ const char * const function_name,
+ const char * const file,
+ const int line,
+ const int count)
+{
+ FuncOrderingValue *ordering;
+
+ assert_non_null(function_name);
+ assert_non_null(file);
+ assert_true(count != 0);
+
+ ordering = (FuncOrderingValue *)malloc(sizeof(*ordering));
+
+ set_source_location(&ordering->location, file, line);
+ ordering->function = function_name;
+
+ list_add_value(&global_call_ordering_head, ordering, count);
+}
+
+/* Returns 1 if the specified values are equal. If the values are not equal
+ * an error is displayed and 0 is returned. */
+static int values_equal_display_error(const LargestIntegralType left,
+ const LargestIntegralType right) {
+ const int equal = left == right;
+ if (!equal) {
+ cm_print_error(LargestIntegralTypePrintfFormat " != "
+ LargestIntegralTypePrintfFormat "\n", left, right);
+ }
+ return equal;
+}
+
+/*
+ * Returns 1 if the specified values are not equal. If the values are equal
+ * an error is displayed and 0 is returned. */
+static int values_not_equal_display_error(const LargestIntegralType left,
+ const LargestIntegralType right) {
+ const int not_equal = left != right;
+ if (!not_equal) {
+ cm_print_error(LargestIntegralTypePrintfFormat " == "
+ LargestIntegralTypePrintfFormat "\n", left, right);
+ }
+ return not_equal;
+}
+
+
+/*
+ * Determine whether value is contained within check_integer_set.
+ * If invert is 0 and the value is in the set 1 is returned, otherwise 0 is
+ * returned and an error is displayed. If invert is 1 and the value is not
+ * in the set 1 is returned, otherwise 0 is returned and an error is
+ * displayed.
+ */
+static int value_in_set_display_error(
+ const LargestIntegralType value,
+ const CheckIntegerSet * const check_integer_set, const int invert) {
+ int succeeded = invert;
+ assert_non_null(check_integer_set);
+ {
+ const LargestIntegralType * const set = check_integer_set->set;
+ const size_t size_of_set = check_integer_set->size_of_set;
+ size_t i;
+ for (i = 0; i < size_of_set; i++) {
+ if (set[i] == value) {
+ /* If invert = 0 and item is found, succeeded = 1. */
+ /* If invert = 1 and item is found, succeeded = 0. */
+ succeeded = !succeeded;
+ break;
+ }
+ }
+ if (succeeded) {
+ return 1;
+ }
+ cm_print_error(LargestIntegralTypePrintfFormatDecimal
+ " is %sin the set (",
+ value, invert ? "" : "not ");
+ for (i = 0; i < size_of_set; i++) {
+ cm_print_error(LargestIntegralTypePrintfFormat ", ", set[i]);
+ }
+ cm_print_error(")\n");
+ }
+ return 0;
+}
+
+
+/*
+ * Determine whether a value is within the specified range. If the value is
+ * within the specified range 1 is returned. If the value isn't within the
+ * specified range an error is displayed and 0 is returned.
+ */
+static int integer_in_range_display_error(
+ const LargestIntegralType value, const LargestIntegralType range_min,
+ const LargestIntegralType range_max) {
+ if (value >= range_min && value <= range_max) {
+ return 1;
+ }
+ cm_print_error(LargestIntegralTypePrintfFormatDecimal
+ " is not within the range "
+ LargestIntegralTypePrintfFormatDecimal "-"
+ LargestIntegralTypePrintfFormatDecimal "\n",
+ value, range_min, range_max);
+ return 0;
+}
+
+
+/*
+ * Determine whether a value is within the specified range. If the value
+ * is not within the range 1 is returned. If the value is within the
+ * specified range an error is displayed and zero is returned.
+ */
+static int integer_not_in_range_display_error(
+ const LargestIntegralType value, const LargestIntegralType range_min,
+ const LargestIntegralType range_max) {
+ if (value < range_min || value > range_max) {
+ return 1;
+ }
+ cm_print_error(LargestIntegralTypePrintfFormatDecimal
+ " is within the range "
+ LargestIntegralTypePrintfFormatDecimal "-"
+ LargestIntegralTypePrintfFormatDecimal "\n",
+ value, range_min, range_max);
+ return 0;
+}
+
+
+/*
+ * Determine whether the specified strings are equal. If the strings are equal
+ * 1 is returned. If they're not equal an error is displayed and 0 is
+ * returned.
+ */
+static int string_equal_display_error(
+ const char * const left, const char * const right) {
+ if (strcmp(left, right) == 0) {
+ return 1;
+ }
+ cm_print_error("\"%s\" != \"%s\"\n", left, right);
+ return 0;
+}
+
+
+/*
+ * Determine whether the specified strings are equal. If the strings are not
+ * equal 1 is returned. If they're not equal an error is displayed and 0 is
+ * returned
+ */
+static int string_not_equal_display_error(
+ const char * const left, const char * const right) {
+ if (strcmp(left, right) != 0) {
+ return 1;
+ }
+ cm_print_error("\"%s\" == \"%s\"\n", left, right);
+ return 0;
+}
+
+
+/*
+ * Determine whether the specified areas of memory are equal. If they're equal
+ * 1 is returned otherwise an error is displayed and 0 is returned.
+ */
+static int memory_equal_display_error(const char* const a, const char* const b,
+ const size_t size) {
+ int differences = 0;
+ size_t i;
+ for (i = 0; i < size; i++) {
+ const char l = a[i];
+ const char r = b[i];
+ if (l != r) {
+ cm_print_error("difference at offset %" PRIdS " 0x%02x 0x%02x\n",
+ i, l, r);
+ differences ++;
+ }
+ }
+ if (differences) {
+ cm_print_error("%d bytes of %p and %p differ\n",
+ differences, (void *)a, (void *)b);
+ return 0;
+ }
+ return 1;
+}
+
+
+/*
+ * Determine whether the specified areas of memory are not equal. If they're
+ * not equal 1 is returned otherwise an error is displayed and 0 is
+ * returned.
+ */
+static int memory_not_equal_display_error(
+ const char* const a, const char* const b, const size_t size) {
+ size_t same = 0;
+ size_t i;
+ for (i = 0; i < size; i++) {
+ const char l = a[i];
+ const char r = b[i];
+ if (l == r) {
+ same ++;
+ }
+ }
+ if (same == size) {
+ cm_print_error("%"PRIdS "bytes of %p and %p the same\n",
+ same, (void *)a, (void *)b);
+ return 0;
+ }
+ return 1;
+}
+
+
+/* CheckParameterValue callback to check whether a value is within a set. */
+static int check_in_set(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ return value_in_set_display_error(value,
+ cast_largest_integral_type_to_pointer(CheckIntegerSet*,
+ check_value_data), 0);
+}
+
+
+/* CheckParameterValue callback to check whether a value isn't within a set. */
+static int check_not_in_set(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ return value_in_set_display_error(value,
+ cast_largest_integral_type_to_pointer(CheckIntegerSet*,
+ check_value_data), 1);
+}
+
+
+/* Create the callback data for check_in_set() or check_not_in_set() and
+ * register a check event. */
+static void expect_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType values[], const size_t number_of_values,
+ const CheckParameterValue check_function, const int count) {
+ CheckIntegerSet * const check_integer_set =
+ (CheckIntegerSet*)malloc(sizeof(*check_integer_set) +
+ (sizeof(values[0]) * number_of_values));
+ LargestIntegralType * const set = (LargestIntegralType*)(
+ check_integer_set + 1);
+ declare_initialize_value_pointer_pointer(check_data, check_integer_set);
+ assert_non_null(values);
+ assert_true(number_of_values);
+ memcpy(set, values, number_of_values * sizeof(values[0]));
+ check_integer_set->set = set;
+ check_integer_set->size_of_set = number_of_values;
+ _expect_check(
+ function, parameter, file, line, check_function,
+ check_data.value, &check_integer_set->event, count);
+}
+
+
+/* Add an event to check whether a value is in a set. */
+void _expect_in_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType values[], const size_t number_of_values,
+ const int count) {
+ expect_set(function, parameter, file, line, values, number_of_values,
+ check_in_set, count);
+}
+
+
+/* Add an event to check whether a value isn't in a set. */
+void _expect_not_in_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType values[], const size_t number_of_values,
+ const int count) {
+ expect_set(function, parameter, file, line, values, number_of_values,
+ check_not_in_set, count);
+}
+
+
+/* CheckParameterValue callback to check whether a value is within a range. */
+static int check_in_range(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ CheckIntegerRange * const check_integer_range =
+ cast_largest_integral_type_to_pointer(CheckIntegerRange*,
+ check_value_data);
+ assert_non_null(check_integer_range);
+ return integer_in_range_display_error(value, check_integer_range->minimum,
+ check_integer_range->maximum);
+}
+
+
+/* CheckParameterValue callback to check whether a value is not within a range. */
+static int check_not_in_range(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ CheckIntegerRange * const check_integer_range =
+ cast_largest_integral_type_to_pointer(CheckIntegerRange*,
+ check_value_data);
+ assert_non_null(check_integer_range);
+ return integer_not_in_range_display_error(
+ value, check_integer_range->minimum, check_integer_range->maximum);
+}
+
+
+/* Create the callback data for check_in_range() or check_not_in_range() and
+ * register a check event. */
+static void expect_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType minimum, const LargestIntegralType maximum,
+ const CheckParameterValue check_function, const int count) {
+ CheckIntegerRange * const check_integer_range =
+ (CheckIntegerRange*)malloc(sizeof(*check_integer_range));
+ declare_initialize_value_pointer_pointer(check_data, check_integer_range);
+ check_integer_range->minimum = minimum;
+ check_integer_range->maximum = maximum;
+ _expect_check(function, parameter, file, line, check_function,
+ check_data.value, &check_integer_range->event, count);
+}
+
+
+/* Add an event to determine whether a parameter is within a range. */
+void _expect_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType minimum, const LargestIntegralType maximum,
+ const int count) {
+ expect_range(function, parameter, file, line, minimum, maximum,
+ check_in_range, count);
+}
+
+
+/* Add an event to determine whether a parameter is not within a range. */
+void _expect_not_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType minimum, const LargestIntegralType maximum,
+ const int count) {
+ expect_range(function, parameter, file, line, minimum, maximum,
+ check_not_in_range, count);
+}
+
+
+/* CheckParameterValue callback to check whether a value is equal to an
+ * expected value. */
+static int check_value(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ return values_equal_display_error(value, check_value_data);
+}
+
+
+/* Add an event to check a parameter equals an expected value. */
+void _expect_value(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType value, const int count) {
+ _expect_check(function, parameter, file, line, check_value, value, NULL,
+ count);
+}
+
+
+/* CheckParameterValue callback to check whether a value is not equal to an
+ * expected value. */
+static int check_not_value(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ return values_not_equal_display_error(value, check_value_data);
+}
+
+
+/* Add an event to check a parameter is not equal to an expected value. */
+void _expect_not_value(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const LargestIntegralType value, const int count) {
+ _expect_check(function, parameter, file, line, check_not_value, value,
+ NULL, count);
+}
+
+
+/* CheckParameterValue callback to check whether a parameter equals a string. */
+static int check_string(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ return string_equal_display_error(
+ cast_largest_integral_type_to_pointer(char*, value),
+ cast_largest_integral_type_to_pointer(char*, check_value_data));
+}
+
+
+/* Add an event to check whether a parameter is equal to a string. */
+void _expect_string(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const char* string,
+ const int count) {
+ declare_initialize_value_pointer_pointer(string_pointer,
+ discard_const(string));
+ _expect_check(function, parameter, file, line, check_string,
+ string_pointer.value, NULL, count);
+}
+
+
+/* CheckParameterValue callback to check whether a parameter is not equals to
+ * a string. */
+static int check_not_string(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ return string_not_equal_display_error(
+ cast_largest_integral_type_to_pointer(char*, value),
+ cast_largest_integral_type_to_pointer(char*, check_value_data));
+}
+
+
+/* Add an event to check whether a parameter is not equal to a string. */
+void _expect_not_string(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const char* string,
+ const int count) {
+ declare_initialize_value_pointer_pointer(string_pointer,
+ discard_const(string));
+ _expect_check(function, parameter, file, line, check_not_string,
+ string_pointer.value, NULL, count);
+}
+
+/* CheckParameterValue callback to check whether a parameter equals an area of
+ * memory. */
+static int check_memory(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ CheckMemoryData * const check = cast_largest_integral_type_to_pointer(
+ CheckMemoryData*, check_value_data);
+ assert_non_null(check);
+ return memory_equal_display_error(
+ cast_largest_integral_type_to_pointer(const char*, value),
+ (const char*)check->memory, check->size);
+}
+
+
+/* Create the callback data for check_memory() or check_not_memory() and
+ * register a check event. */
+static void expect_memory_setup(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const void * const memory, const size_t size,
+ const CheckParameterValue check_function, const int count) {
+ CheckMemoryData * const check_data =
+ (CheckMemoryData*)malloc(sizeof(*check_data) + size);
+ void * const mem = (void*)(check_data + 1);
+ declare_initialize_value_pointer_pointer(check_data_pointer, check_data);
+ assert_non_null(memory);
+ assert_true(size);
+ memcpy(mem, memory, size);
+ check_data->memory = mem;
+ check_data->size = size;
+ _expect_check(function, parameter, file, line, check_function,
+ check_data_pointer.value, &check_data->event, count);
+}
+
+
+/* Add an event to check whether a parameter matches an area of memory. */
+void _expect_memory(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const void* const memory,
+ const size_t size, const int count) {
+ expect_memory_setup(function, parameter, file, line, memory, size,
+ check_memory, count);
+}
+
+
+/* CheckParameterValue callback to check whether a parameter is not equal to
+ * an area of memory. */
+static int check_not_memory(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ CheckMemoryData * const check = cast_largest_integral_type_to_pointer(
+ CheckMemoryData*, check_value_data);
+ assert_non_null(check);
+ return memory_not_equal_display_error(
+ cast_largest_integral_type_to_pointer(const char*, value),
+ (const char*)check->memory,
+ check->size);
+}
+
+
+/* Add an event to check whether a parameter doesn't match an area of memory. */
+void _expect_not_memory(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const void* const memory,
+ const size_t size, const int count) {
+ expect_memory_setup(function, parameter, file, line, memory, size,
+ check_not_memory, count);
+}
+
+
+/* CheckParameterValue callback that always returns 1. */
+static int check_any(const LargestIntegralType value,
+ const LargestIntegralType check_value_data) {
+ (void)value;
+ (void)check_value_data;
+ return 1;
+}
+
+
+/* Add an event to allow any value for a parameter. */
+void _expect_any(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line, const int count) {
+ _expect_check(function, parameter, file, line, check_any, 0, NULL,
+ count);
+}
+
+
+void _check_expected(
+ const char * const function_name, const char * const parameter_name,
+ const char* file, const int line, const LargestIntegralType value) {
+ void *result;
+ const char* symbols[] = {function_name, parameter_name};
+ const int rc = get_symbol_value(&global_function_parameter_map_head,
+ symbols, 2, &result);
+ if (rc) {
+ CheckParameterEvent * const check = (CheckParameterEvent*)result;
+ int check_succeeded;
+ global_last_parameter_location = check->location;
+ check_succeeded = check->check_value(value, check->check_value_data);
+ if (rc == 1) {
+ free(check);
+ }
+ if (!check_succeeded) {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": error: Check of parameter %s, function %s failed\n"
+ SOURCE_LOCATION_FORMAT
+ ": note: Expected parameter declared here\n",
+ file, line,
+ parameter_name, function_name,
+ global_last_parameter_location.file,
+ global_last_parameter_location.line);
+ _fail(file, line);
+ }
+ } else {
+ cm_print_error(SOURCE_LOCATION_FORMAT ": error: Could not get value "
+ "to check parameter %s of function %s\n", file, line,
+ parameter_name, function_name);
+ if (source_location_is_set(&global_last_parameter_location)) {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": note: Previously declared parameter value was declared here\n",
+ global_last_parameter_location.file,
+ global_last_parameter_location.line);
+ } else {
+ cm_print_error("There were no previously declared parameter values "
+ "for this test.\n");
+ }
+ exit_test(1);
+ }
+}
+
+
+/* Replacement for assert. */
+void mock_assert(const int result, const char* const expression,
+ const char* const file, const int line) {
+ if (!result) {
+ if (global_expecting_assert) {
+ global_last_failed_assert = expression;
+ longjmp(global_expect_assert_env, result);
+ } else {
+ cm_print_error("ASSERT: %s\n", expression);
+ _fail(file, line);
+ }
+ }
+}
+
+
+void _assert_true(const LargestIntegralType result,
+ const char * const expression,
+ const char * const file, const int line) {
+ if (!result) {
+ cm_print_error("%s\n", expression);
+ _fail(file, line);
+ }
+}
+
+void _assert_return_code(const LargestIntegralType result,
+ size_t rlen,
+ const LargestIntegralType error,
+ const char * const expression,
+ const char * const file,
+ const int line)
+{
+ LargestIntegralType valmax;
+
+
+ switch (rlen) {
+ case 1:
+ valmax = 255;
+ break;
+ case 2:
+ valmax = 32767;
+ break;
+ case 4:
+ valmax = 2147483647;
+ break;
+ case 8:
+ default:
+ if (rlen > sizeof(valmax)) {
+ valmax = 2147483647;
+ } else {
+ valmax = 9223372036854775807L;
+ }
+ break;
+ }
+
+ if (result > valmax - 1) {
+ if (error > 0) {
+ cm_print_error("%s < 0, errno("
+ LargestIntegralTypePrintfFormatDecimal "): %s\n",
+ expression, error, strerror((int)error));
+ } else {
+ cm_print_error("%s < 0\n", expression);
+ }
+ _fail(file, line);
+ }
+}
+
+void _assert_int_equal(
+ const LargestIntegralType a, const LargestIntegralType b,
+ const char * const file, const int line) {
+ if (!values_equal_display_error(a, b)) {
+ _fail(file, line);
+ }
+}
+
+
+void _assert_int_not_equal(
+ const LargestIntegralType a, const LargestIntegralType b,
+ const char * const file, const int line) {
+ if (!values_not_equal_display_error(a, b)) {
+ _fail(file, line);
+ }
+}
+
+
+void _assert_string_equal(const char * const a, const char * const b,
+ const char * const file, const int line) {
+ if (!string_equal_display_error(a, b)) {
+ _fail(file, line);
+ }
+}
+
+
+void _assert_string_not_equal(const char * const a, const char * const b,
+ const char *file, const int line) {
+ if (!string_not_equal_display_error(a, b)) {
+ _fail(file, line);
+ }
+}
+
+
+void _assert_memory_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line) {
+ if (!memory_equal_display_error((const char*)a, (const char*)b, size)) {
+ _fail(file, line);
+ }
+}
+
+
+void _assert_memory_not_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line) {
+ if (!memory_not_equal_display_error((const char*)a, (const char*)b,
+ size)) {
+ _fail(file, line);
+ }
+}
+
+
+void _assert_in_range(
+ const LargestIntegralType value, const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const char* const file,
+ const int line) {
+ if (!integer_in_range_display_error(value, minimum, maximum)) {
+ _fail(file, line);
+ }
+}
+
+void _assert_not_in_range(
+ const LargestIntegralType value, const LargestIntegralType minimum,
+ const LargestIntegralType maximum, const char* const file,
+ const int line) {
+ if (!integer_not_in_range_display_error(value, minimum, maximum)) {
+ _fail(file, line);
+ }
+}
+
+void _assert_in_set(const LargestIntegralType value,
+ const LargestIntegralType values[],
+ const size_t number_of_values, const char* const file,
+ const int line) {
+ CheckIntegerSet check_integer_set;
+ check_integer_set.set = values;
+ check_integer_set.size_of_set = number_of_values;
+ if (!value_in_set_display_error(value, &check_integer_set, 0)) {
+ _fail(file, line);
+ }
+}
+
+void _assert_not_in_set(const LargestIntegralType value,
+ const LargestIntegralType values[],
+ const size_t number_of_values, const char* const file,
+ const int line) {
+ CheckIntegerSet check_integer_set;
+ check_integer_set.set = values;
+ check_integer_set.size_of_set = number_of_values;
+ if (!value_in_set_display_error(value, &check_integer_set, 1)) {
+ _fail(file, line);
+ }
+}
+
+
+/* Get the list of allocated blocks. */
+static ListNode* get_allocated_blocks_list() {
+ /* If it initialized, initialize the list of allocated blocks. */
+ if (!global_allocated_blocks.value) {
+ list_initialize(&global_allocated_blocks);
+ global_allocated_blocks.value = (void*)1;
+ }
+ return &global_allocated_blocks;
+}
+
+static void *libc_malloc(size_t size)
+{
+#undef malloc
+ return malloc(size);
+#define malloc test_malloc
+}
+
+static void libc_free(void *ptr)
+{
+#undef free
+ free(ptr);
+#define free test_free
+}
+
+static void *libc_realloc(void *ptr, size_t size)
+{
+#undef realloc
+ return realloc(ptr, size);
+#define realloc test_realloc
+}
+
+static void vcm_print_error(const char* const format,
+ va_list args) CMOCKA_PRINTF_ATTRIBUTE(1, 0);
+
+/* It's important to use the libc malloc and free here otherwise
+ * the automatic free of leaked blocks can reap the error messages
+ */
+static void vcm_print_error(const char* const format, va_list args)
+{
+ char buffer[1024];
+ size_t msg_len = 0;
+ va_list ap;
+ int len;
+ va_copy(ap, args);
+
+ len = vsnprintf(buffer, sizeof(buffer), format, args);
+ if (len < 0) {
+ /* TODO */
+ goto end;
+ }
+
+ if (cm_error_message == NULL) {
+ /* CREATE MESSAGE */
+
+ cm_error_message = libc_malloc(len + 1);
+ if (cm_error_message == NULL) {
+ /* TODO */
+ goto end;
+ }
+ } else {
+ /* APPEND MESSAGE */
+ char *tmp;
+
+ msg_len = strlen(cm_error_message);
+ tmp = libc_realloc(cm_error_message, msg_len + len + 1);
+ if (tmp == NULL) {
+ goto end;
+ }
+ cm_error_message = tmp;
+ }
+
+ if (((size_t)len) < sizeof(buffer)) {
+ /* Use len + 1 to also copy '\0' */
+ memcpy(cm_error_message + msg_len, buffer, len + 1);
+ } else {
+ vsnprintf(cm_error_message + msg_len, len, format, ap);
+ }
+end:
+ va_end(ap);
+
+}
+
+static void vcm_free_error(char *err_msg)
+{
+ libc_free(err_msg);
+}
+
+/* Use the real malloc in this function. */
+#undef malloc
+void* _test_malloc(const size_t size, const char* file, const int line) {
+ char* ptr;
+ MallocBlockInfo *block_info;
+ ListNode * const block_list = get_allocated_blocks_list();
+ const size_t allocate_size = size + (MALLOC_GUARD_SIZE * 2) +
+ sizeof(*block_info) + MALLOC_ALIGNMENT;
+ char* const block = (char*)malloc(allocate_size);
+ assert_non_null(block);
+
+ /* Calculate the returned address. */
+ ptr = (char*)(((size_t)block + MALLOC_GUARD_SIZE + sizeof(*block_info) +
+ MALLOC_ALIGNMENT) & ~(MALLOC_ALIGNMENT - 1));
+
+ /* Initialize the guard blocks. */
+ memset(ptr - MALLOC_GUARD_SIZE, MALLOC_GUARD_PATTERN, MALLOC_GUARD_SIZE);
+ memset(ptr + size, MALLOC_GUARD_PATTERN, MALLOC_GUARD_SIZE);
+ memset(ptr, MALLOC_ALLOC_PATTERN, size);
+
+ block_info = (MallocBlockInfo*)(ptr - (MALLOC_GUARD_SIZE +
+ sizeof(*block_info)));
+ set_source_location(&block_info->location, file, line);
+ block_info->allocated_size = allocate_size;
+ block_info->size = size;
+ block_info->block = block;
+ block_info->node.value = block_info;
+ list_add(block_list, &block_info->node);
+ return ptr;
+}
+#define malloc test_malloc
+
+
+void* _test_calloc(const size_t number_of_elements, const size_t size,
+ const char* file, const int line) {
+ void* const ptr = _test_malloc(number_of_elements * size, file, line);
+ if (ptr) {
+ memset(ptr, 0, number_of_elements * size);
+ }
+ return ptr;
+}
+
+
+/* Use the real free in this function. */
+#undef free
+void _test_free(void* const ptr, const char* file, const int line) {
+ unsigned int i;
+ char *block = discard_const_p(char, ptr);
+ MallocBlockInfo *block_info;
+
+ if (ptr == NULL) {
+ return;
+ }
+
+ _assert_true(cast_ptr_to_largest_integral_type(ptr), "ptr", file, line);
+ block_info = (MallocBlockInfo*)(block - (MALLOC_GUARD_SIZE +
+ sizeof(*block_info)));
+ /* Check the guard blocks. */
+ {
+ char *guards[2] = {block - MALLOC_GUARD_SIZE,
+ block + block_info->size};
+ for (i = 0; i < ARRAY_SIZE(guards); i++) {
+ unsigned int j;
+ char * const guard = guards[i];
+ for (j = 0; j < MALLOC_GUARD_SIZE; j++) {
+ const char diff = guard[j] - MALLOC_GUARD_PATTERN;
+ if (diff) {
+ cm_print_error(SOURCE_LOCATION_FORMAT
+ ": error: Guard block of %p size=%lu is corrupt\n"
+ SOURCE_LOCATION_FORMAT ": note: allocated here at %p\n",
+ file, line,
+ ptr, (unsigned long)block_info->size,
+ block_info->location.file, block_info->location.line,
+ (void *)&guard[j]);
+ _fail(file, line);
+ }
+ }
+ }
+ }
+ list_remove(&block_info->node, NULL, NULL);
+
+ block = discard_const_p(char, block_info->block);
+ memset(block, MALLOC_FREE_PATTERN, block_info->allocated_size);
+ free(block);
+}
+#define free test_free
+
+#undef realloc
+void *_test_realloc(void *ptr,
+ const size_t size,
+ const char *file,
+ const int line)
+{
+ MallocBlockInfo *block_info;
+ char *block = ptr;
+ size_t block_size = size;
+ void *new;
+
+ if (ptr == NULL) {
+ return _test_malloc(size, file, line);
+ }
+
+ if (size == 0) {
+ _test_free(ptr, file, line);
+ return NULL;
+ }
+
+ block_info = (MallocBlockInfo*)(block - (MALLOC_GUARD_SIZE +
+ sizeof(*block_info)));
+
+ new = _test_malloc(size, file, line);
+ if (new == NULL) {
+ return NULL;
+ }
+
+ if (block_info->size < size) {
+ block_size = block_info->size;
+ }
+
+ memcpy(new, ptr, block_size);
+
+ /* Free previous memory */
+ _test_free(ptr, file, line);
+
+ return new;
+}
+#define realloc test_realloc
+
+/* Crudely checkpoint the current heap state. */
+static const ListNode* check_point_allocated_blocks() {
+ return get_allocated_blocks_list()->prev;
+}
+
+
+/* Display the blocks allocated after the specified check point. This
+ * function returns the number of blocks displayed. */
+static int display_allocated_blocks(const ListNode * const check_point) {
+ const ListNode * const head = get_allocated_blocks_list();
+ const ListNode *node;
+ int allocated_blocks = 0;
+ assert_non_null(check_point);
+ assert_non_null(check_point->next);
+
+ for (node = check_point->next; node != head; node = node->next) {
+ const MallocBlockInfo * const block_info =
+ (const MallocBlockInfo*)node->value;
+ assert_non_null(block_info);
+
+ if (!allocated_blocks) {
+ cm_print_error("Blocks allocated...\n");
+ }
+ cm_print_error(SOURCE_LOCATION_FORMAT ": note: block %p allocated here\n",
+ block_info->location.file,
+ block_info->location.line,
+ block_info->block);
+ allocated_blocks ++;
+ }
+ return allocated_blocks;
+}
+
+
+/* Free all blocks allocated after the specified check point. */
+static void free_allocated_blocks(const ListNode * const check_point) {
+ const ListNode * const head = get_allocated_blocks_list();
+ const ListNode *node;
+ assert_non_null(check_point);
+
+ node = check_point->next;
+ assert_non_null(node);
+
+ while (node != head) {
+ MallocBlockInfo * const block_info = (MallocBlockInfo*)node->value;
+ node = node->next;
+ free(discard_const_p(char, block_info) + sizeof(*block_info) + MALLOC_GUARD_SIZE);
+ }
+}
+
+
+/* Fail if any any blocks are allocated after the specified check point. */
+static void fail_if_blocks_allocated(const ListNode * const check_point,
+ const char * const test_name) {
+ const int allocated_blocks = display_allocated_blocks(check_point);
+ if (allocated_blocks) {
+ free_allocated_blocks(check_point);
+ cm_print_error("ERROR: %s leaked %d block(s)\n", test_name,
+ allocated_blocks);
+ exit_test(1);
+ }
+}
+
+
+void _fail(const char * const file, const int line) {
+ enum cm_message_output output = cm_get_output();
+
+ switch(output) {
+ case CM_OUTPUT_STDOUT:
+ cm_print_error("[ LINE ] --- " SOURCE_LOCATION_FORMAT ": error: Failure!", file, line);
+ break;
+ default:
+ cm_print_error(SOURCE_LOCATION_FORMAT ": error: Failure!", file, line);
+ break;
+ }
+ exit_test(1);
+}
+
+
+#ifndef _WIN32
+static void exception_handler(int sig) {
+ const char *sig_strerror = "";
+
+#ifdef HAVE_STRSIGNAL
+ sig_strerror = strsignal(sig);
+#endif
+
+ cm_print_error("Test failed with exception: %s(%d)",
+ sig_strerror, sig);
+ exit_test(1);
+}
+
+#else /* _WIN32 */
+
+static LONG WINAPI exception_filter(EXCEPTION_POINTERS *exception_pointers) {
+ EXCEPTION_RECORD * const exception_record =
+ exception_pointers->ExceptionRecord;
+ const DWORD code = exception_record->ExceptionCode;
+ unsigned int i;
+ for (i = 0; i < ARRAY_SIZE(exception_codes); i++) {
+ const ExceptionCodeInfo * const code_info = &exception_codes[i];
+ if (code == code_info->code) {
+ static int shown_debug_message = 0;
+ fflush(stdout);
+ cm_print_error("%s occurred at %p.\n", code_info->description,
+ exception_record->ExceptionAddress);
+ if (!shown_debug_message) {
+ cm_print_error(
+ "\n"
+ "To debug in Visual Studio...\n"
+ "1. Select menu item File->Open Project\n"
+ "2. Change 'Files of type' to 'Executable Files'\n"
+ "3. Open this executable.\n"
+ "4. Select menu item Debug->Start\n"
+ "\n"
+ "Alternatively, set the environment variable \n"
+ "UNIT_TESTING_DEBUG to 1 and rebuild this executable, \n"
+ "then click 'Debug' in the popup dialog box.\n"
+ "\n");
+ shown_debug_message = 1;
+ }
+ exit_test(0);
+ return EXCEPTION_EXECUTE_HANDLER;
+ }
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+#endif /* !_WIN32 */
+
+void cm_print_error(const char * const format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ if (cm_error_message_enabled) {
+ vcm_print_error(format, args);
+ } else {
+ vprint_error(format, args);
+ }
+ va_end(args);
+}
+
+/* Standard output and error print methods. */
+void vprint_message(const char* const format, va_list args) {
+ char buffer[1024];
+ vsnprintf(buffer, sizeof(buffer), format, args);
+ printf("%s", buffer);
+ fflush(stdout);
+#ifdef _WIN32
+ OutputDebugString(buffer);
+#endif /* _WIN32 */
+}
+
+
+void vprint_error(const char* const format, va_list args) {
+ char buffer[1024];
+ vsnprintf(buffer, sizeof(buffer), format, args);
+ fprintf(stderr, "%s", buffer);
+ fflush(stderr);
+#ifdef _WIN32
+ OutputDebugString(buffer);
+#endif /* _WIN32 */
+}
+
+
+void print_message(const char* const format, ...) {
+ va_list args;
+ va_start(args, format);
+ vprint_message(format, args);
+ va_end(args);
+}
+
+
+void print_error(const char* const format, ...) {
+ va_list args;
+ va_start(args, format);
+ vprint_error(format, args);
+ va_end(args);
+}
+
+/* New formatter */
+static enum cm_message_output cm_get_output(void)
+{
+ enum cm_message_output output = global_msg_output;
+ char *env;
+
+ env = getenv("CMOCKA_MESSAGE_OUTPUT");
+ if (env != NULL) {
+ if (strcasecmp(env, "STDOUT") == 0) {
+ output = CM_OUTPUT_STDOUT;
+ } else if (strcasecmp(env, "SUBUNIT") == 0) {
+ output = CM_OUTPUT_SUBUNIT;
+ } else if (strcasecmp(env, "TAP") == 0) {
+ output = CM_OUTPUT_TAP;
+ } else if (strcasecmp(env, "XML") == 0) {
+ output = CM_OUTPUT_XML;
+ }
+ }
+
+ return output;
+}
+
+enum cm_printf_type {
+ PRINTF_TEST_START,
+ PRINTF_TEST_SUCCESS,
+ PRINTF_TEST_FAILURE,
+ PRINTF_TEST_ERROR,
+ PRINTF_TEST_SKIPPED,
+};
+
+static int xml_printed;
+static int file_append;
+
+static void cmprintf_group_finish_xml(const char *group_name,
+ size_t total_executed,
+ size_t total_failed,
+ size_t total_errors,
+ size_t total_skipped,
+ double total_runtime,
+ struct CMUnitTestState *cm_tests)
+{
+ FILE *fp = stdout;
+ int file_opened = 0;
+ int multiple_files = 0;
+ char *env;
+ size_t i;
+
+ env = getenv("CMOCKA_XML_FILE");
+ if (env != NULL) {
+ char buf[1024];
+ int rc;
+
+ snprintf(buf, sizeof(buf), "%s", env);
+
+ rc = c_strreplace(buf, sizeof(buf), "%g", group_name, &multiple_files);
+ if (rc < 0) {
+ snprintf(buf, sizeof(buf), "%s", env);
+ }
+
+ fp = fopen(buf, "r");
+ if (fp == NULL) {
+ fp = fopen(buf, "w");
+ if (fp != NULL) {
+ file_append = 1;
+ file_opened = 1;
+ } else {
+ fp = stderr;
+ }
+ } else {
+ fclose(fp);
+ if (file_append) {
+ fp = fopen(buf, "a");
+ if (fp != NULL) {
+ file_opened = 1;
+ xml_printed = 1;
+ } else {
+ fp = stderr;
+ }
+ } else {
+ fp = stderr;
+ }
+ }
+ }
+
+ if (!xml_printed || (file_opened && !file_append)) {
+ fprintf(fp, "\n");
+ if (!file_opened) {
+ xml_printed = 1;
+ }
+ }
+
+ fprintf(fp, "\n");
+ fprintf(fp, " \n",
+ group_name,
+ total_runtime * 1000, /* miliseconds */
+ (unsigned)total_executed,
+ (unsigned)total_failed,
+ (unsigned)total_errors,
+ (unsigned)total_skipped);
+
+ for (i = 0; i < total_executed; i++) {
+ struct CMUnitTestState *cmtest = &cm_tests[i];
+
+ fprintf(fp, " \n",
+ cmtest->test->name, cmtest->runtime * 1000);
+
+ switch (cmtest->status) {
+ case CM_TEST_ERROR:
+ case CM_TEST_FAILED:
+ if (cmtest->error_message != NULL) {
+ fprintf(fp, " \n",
+ cmtest->error_message);
+ } else {
+ fprintf(fp, " \n");
+ }
+ break;
+ case CM_TEST_SKIPPED:
+ fprintf(fp, " \n");
+ break;
+
+ case CM_TEST_PASSED:
+ case CM_TEST_NOT_STARTED:
+ break;
+ }
+
+ fprintf(fp, " \n");
+ }
+
+ fprintf(fp, " \n");
+ fprintf(fp, "\n");
+
+ if (file_opened) {
+ fclose(fp);
+ }
+}
+
+static void cmprintf_group_start_standard(const size_t num_tests)
+{
+ print_message("[==========] Running %u test(s).\n",
+ (unsigned)num_tests);
+}
+
+static void cmprintf_group_finish_standard(size_t total_executed,
+ size_t total_passed,
+ size_t total_failed,
+ size_t total_errors,
+ size_t total_skipped,
+ struct CMUnitTestState *cm_tests)
+{
+ size_t i;
+
+ print_message("[==========] %u test(s) run.\n", (unsigned)total_executed);
+ print_error("[ PASSED ] %u test(s).\n",
+ (unsigned)(total_passed));
+
+ if (total_skipped) {
+ print_error("[ SKIPPED ] %"PRIdS " test(s), listed below:\n", total_skipped);
+ for (i = 0; i < total_executed; i++) {
+ struct CMUnitTestState *cmtest = &cm_tests[i];
+
+ if (cmtest->status == CM_TEST_SKIPPED) {
+ print_error("[ SKIPPED ] %s\n", cmtest->test->name);
+ }
+ }
+ print_error("\n %u SKIPPED TEST(S)\n", (unsigned)(total_skipped));
+ }
+
+ if (total_failed) {
+ print_error("[ FAILED ] %"PRIdS " test(s), listed below:\n", total_failed);
+ for (i = 0; i < total_executed; i++) {
+ struct CMUnitTestState *cmtest = &cm_tests[i];
+
+ if (cmtest->status == CM_TEST_FAILED) {
+ print_error("[ FAILED ] %s\n", cmtest->test->name);
+ }
+ }
+ print_error("\n %u FAILED TEST(S)\n",
+ (unsigned)(total_failed + total_errors));
+ }
+}
+
+static void cmprintf_standard(enum cm_printf_type type,
+ const char *test_name,
+ const char *error_message)
+{
+ switch (type) {
+ case PRINTF_TEST_START:
+ print_message("[ RUN ] %s\n", test_name);
+ break;
+ case PRINTF_TEST_SUCCESS:
+ print_message("[ OK ] %s\n", test_name);
+ break;
+ case PRINTF_TEST_FAILURE:
+ if (error_message != NULL) {
+ print_error("[ ERROR ] --- %s\n", error_message);
+ }
+ print_message("[ FAILED ] %s\n", test_name);
+ break;
+ case PRINTF_TEST_SKIPPED:
+ print_message("[ SKIPPED ] %s\n", test_name);
+ break;
+ case PRINTF_TEST_ERROR:
+ if (error_message != NULL) {
+ print_error("%s\n", error_message);
+ }
+ print_error("[ ERROR ] %s\n", test_name);
+ break;
+ }
+}
+
+static void cmprintf_group_start_tap(const size_t num_tests)
+{
+ print_message("\t1..%u\n", (unsigned)num_tests);
+}
+
+static void cmprintf_group_finish_tap(const char *group_name,
+ size_t total_executed,
+ size_t total_passed,
+ size_t total_skipped)
+{
+ const char *status = "not ok";
+ if (total_passed + total_skipped == total_executed) {
+ status = "ok";
+ }
+ print_message("%s - %s\n", status, group_name);
+}
+
+static void cmprintf_tap(enum cm_printf_type type,
+ uint32_t test_number,
+ const char *test_name,
+ const char *error_message)
+{
+ switch (type) {
+ case PRINTF_TEST_START:
+ break;
+ case PRINTF_TEST_SUCCESS:
+ print_message("\tok %u - %s\n", (unsigned)test_number, test_name);
+ break;
+ case PRINTF_TEST_FAILURE:
+ print_message("\tnot ok %u - %s\n", (unsigned)test_number, test_name);
+ if (error_message != NULL) {
+ char *msg;
+ char *p;
+
+ msg = strdup(error_message);
+ if (msg == NULL) {
+ return;
+ }
+ p = msg;
+
+ while (p[0] != '\0') {
+ char *q = p;
+
+ p = strchr(q, '\n');
+ if (p != NULL) {
+ p[0] = '\0';
+ }
+
+ print_message("\t# %s\n", q);
+
+ if (p == NULL) {
+ break;
+ }
+ p++;
+ }
+ libc_free(msg);
+ }
+ break;
+ case PRINTF_TEST_SKIPPED:
+ print_message("\tnot ok %u # SKIP %s\n", (unsigned)test_number, test_name);
+ break;
+ case PRINTF_TEST_ERROR:
+ print_message("\tnot ok %u - %s %s\n",
+ (unsigned)test_number, test_name, error_message);
+ break;
+ }
+}
+
+static void cmprintf_subunit(enum cm_printf_type type,
+ const char *test_name,
+ const char *error_message)
+{
+ switch (type) {
+ case PRINTF_TEST_START:
+ print_message("test: %s\n", test_name);
+ break;
+ case PRINTF_TEST_SUCCESS:
+ print_message("success: %s\n", test_name);
+ break;
+ case PRINTF_TEST_FAILURE:
+ print_message("failure: %s", test_name);
+ if (error_message != NULL) {
+ print_message(" [\n%s]\n", error_message);
+ }
+ break;
+ case PRINTF_TEST_SKIPPED:
+ print_message("skip: %s\n", test_name);
+ break;
+ case PRINTF_TEST_ERROR:
+ print_message("error: %s [ %s ]\n", test_name, error_message);
+ break;
+ }
+}
+
+static void cmprintf_group_start(const size_t num_tests)
+{
+ enum cm_message_output output;
+
+ output = cm_get_output();
+
+ switch (output) {
+ case CM_OUTPUT_STDOUT:
+ cmprintf_group_start_standard(num_tests);
+ break;
+ case CM_OUTPUT_SUBUNIT:
+ break;
+ case CM_OUTPUT_TAP:
+ cmprintf_group_start_tap(num_tests);
+ break;
+ case CM_OUTPUT_XML:
+ break;
+ }
+}
+
+static void cmprintf_group_finish(const char *group_name,
+ size_t total_executed,
+ size_t total_passed,
+ size_t total_failed,
+ size_t total_errors,
+ size_t total_skipped,
+ double total_runtime,
+ struct CMUnitTestState *cm_tests)
+{
+ enum cm_message_output output;
+
+ output = cm_get_output();
+
+ switch (output) {
+ case CM_OUTPUT_STDOUT:
+ cmprintf_group_finish_standard(total_executed,
+ total_passed,
+ total_failed,
+ total_errors,
+ total_skipped,
+ cm_tests);
+ break;
+ case CM_OUTPUT_SUBUNIT:
+ break;
+ case CM_OUTPUT_TAP:
+ cmprintf_group_finish_tap(group_name, total_executed, total_passed, total_skipped);
+ break;
+ case CM_OUTPUT_XML:
+ cmprintf_group_finish_xml(group_name,
+ total_executed,
+ total_failed,
+ total_errors,
+ total_skipped,
+ total_runtime,
+ cm_tests);
+ break;
+ }
+}
+
+static void cmprintf(enum cm_printf_type type,
+ size_t test_number,
+ const char *test_name,
+ const char *error_message)
+{
+ enum cm_message_output output;
+
+ output = cm_get_output();
+
+ switch (output) {
+ case CM_OUTPUT_STDOUT:
+ cmprintf_standard(type, test_name, error_message);
+ break;
+ case CM_OUTPUT_SUBUNIT:
+ cmprintf_subunit(type, test_name, error_message);
+ break;
+ case CM_OUTPUT_TAP:
+ cmprintf_tap(type, test_number, test_name, error_message);
+ break;
+ case CM_OUTPUT_XML:
+ break;
+ }
+}
+
+void cmocka_set_message_output(enum cm_message_output output)
+{
+ global_msg_output = output;
+}
+
+/****************************************************************************
+ * TIME CALCULATIONS
+ ****************************************************************************/
+
+#ifdef HAVE_STRUCT_TIMESPEC
+static struct timespec cm_tspecdiff(struct timespec time1,
+ struct timespec time0)
+{
+ struct timespec ret;
+ int xsec = 0;
+ int sign = 1;
+
+ if (time0.tv_nsec > time1.tv_nsec) {
+ xsec = (int) ((time0.tv_nsec - time1.tv_nsec) / (1E9 + 1));
+ time0.tv_nsec -= (long int) (1E9 * xsec);
+ time0.tv_sec += xsec;
+ }
+
+ if ((time1.tv_nsec - time0.tv_nsec) > 1E9) {
+ xsec = (int) ((time1.tv_nsec - time0.tv_nsec) / 1E9);
+ time0.tv_nsec += (long int) (1E9 * xsec);
+ time0.tv_sec -= xsec;
+ }
+
+ ret.tv_sec = time1.tv_sec - time0.tv_sec;
+ ret.tv_nsec = time1.tv_nsec - time0.tv_nsec;
+
+ if (time1.tv_sec < time0.tv_sec) {
+ sign = -1;
+ }
+
+ ret.tv_sec = ret.tv_sec * sign;
+
+ return ret;
+}
+
+static double cm_secdiff(struct timespec clock1, struct timespec clock0)
+{
+ double ret;
+ struct timespec diff;
+
+ diff = cm_tspecdiff(clock1, clock0);
+
+ ret = diff.tv_sec;
+ ret += (double) diff.tv_nsec / (double) 1E9;
+
+ return ret;
+}
+#endif /* HAVE_STRUCT_TIMESPEC */
+
+/****************************************************************************
+ * CMOCKA TEST RUNNER
+ ****************************************************************************/
+static int cmocka_run_one_test_or_fixture(const char *function_name,
+ CMUnitTestFunction test_func,
+ CMFixtureFunction setup_func,
+ CMFixtureFunction teardown_func,
+ void ** const volatile state,
+ const void *const heap_check_point)
+{
+ const ListNode * const volatile check_point = (const ListNode*)
+ (heap_check_point != NULL ?
+ heap_check_point : check_point_allocated_blocks());
+ int handle_exceptions = 1;
+ void *current_state = NULL;
+ int rc = 0;
+
+ /* FIXME check only one test or fixture is set */
+
+ /* Detect if we should handle exceptions */
+#ifdef _WIN32
+ handle_exceptions = !IsDebuggerPresent();
+#endif /* _WIN32 */
+#ifdef UNIT_TESTING_DEBUG
+ handle_exceptions = 0;
+#endif /* UNIT_TESTING_DEBUG */
+
+
+ if (handle_exceptions) {
+#ifndef _WIN32
+ unsigned int i;
+ for (i = 0; i < ARRAY_SIZE(exception_signals); i++) {
+ default_signal_functions[i] = signal(
+ exception_signals[i], exception_handler);
+ }
+#else /* _WIN32 */
+ previous_exception_filter = SetUnhandledExceptionFilter(
+ exception_filter);
+#endif /* !_WIN32 */
+ }
+
+ /* Init the test structure */
+ initialize_testing(function_name);
+
+ global_running_test = 1;
+
+ if (cm_setjmp(global_run_test_env) == 0) {
+ if (test_func != NULL) {
+ test_func(state != NULL ? state : ¤t_state);
+
+ fail_if_blocks_allocated(check_point, function_name);
+ rc = 0;
+ } else if (setup_func != NULL) {
+ rc = setup_func(state != NULL ? state : ¤t_state);
+
+ /*
+ * For setup we can ignore any allocated blocks. We just need to
+ * ensure they're deallocated on tear down.
+ */
+ } else if (teardown_func != NULL) {
+ rc = teardown_func(state != NULL ? state : ¤t_state);
+
+ fail_if_blocks_allocated(check_point, function_name);
+ } else {
+ /* ERROR */
+ }
+ fail_if_leftover_values(function_name);
+ global_running_test = 0;
+ } else {
+ /* TEST FAILED */
+ global_running_test = 0;
+ rc = -1;
+ }
+ teardown_testing(function_name);
+
+ if (handle_exceptions) {
+#ifndef _WIN32
+ unsigned int i;
+ for (i = 0; i < ARRAY_SIZE(exception_signals); i++) {
+ signal(exception_signals[i], default_signal_functions[i]);
+ }
+#else /* _WIN32 */
+ if (previous_exception_filter) {
+ SetUnhandledExceptionFilter(previous_exception_filter);
+ previous_exception_filter = NULL;
+ }
+#endif /* !_WIN32 */
+ }
+
+ return rc;
+}
+
+static int cmocka_run_group_fixture(const char *function_name,
+ CMFixtureFunction setup_func,
+ CMFixtureFunction teardown_func,
+ void **state,
+ const void *const heap_check_point)
+{
+ int rc;
+
+ if (setup_func != NULL) {
+ rc = cmocka_run_one_test_or_fixture(function_name,
+ NULL,
+ setup_func,
+ NULL,
+ state,
+ heap_check_point);
+ } else {
+ rc = cmocka_run_one_test_or_fixture(function_name,
+ NULL,
+ NULL,
+ teardown_func,
+ state,
+ heap_check_point);
+ }
+
+ return rc;
+}
+
+static int cmocka_run_one_tests(struct CMUnitTestState *test_state)
+{
+#ifdef HAVE_STRUCT_TIMESPEC
+ struct timespec start = {
+ .tv_sec = 0,
+ .tv_nsec = 0,
+ };
+ struct timespec finish = {
+ .tv_sec = 0,
+ .tv_nsec = 0,
+ };
+#endif
+ int rc = 0;
+
+ /* Run setup */
+ if (test_state->test->setup_func != NULL) {
+ /* Setup the memory check point, it will be evaluated on teardown */
+ test_state->check_point = check_point_allocated_blocks();
+
+ rc = cmocka_run_one_test_or_fixture(test_state->test->name,
+ NULL,
+ test_state->test->setup_func,
+ NULL,
+ &test_state->state,
+ test_state->check_point);
+ if (rc != 0) {
+ test_state->status = CM_TEST_ERROR;
+ cm_print_error("Test setup failed");
+ }
+ }
+
+ /* Run test */
+#ifdef HAVE_STRUCT_TIMESPEC
+ CMOCKA_CLOCK_GETTIME(CLOCK_REALTIME, &start);
+#endif
+
+ if (rc == 0) {
+ rc = cmocka_run_one_test_or_fixture(test_state->test->name,
+ test_state->test->test_func,
+ NULL,
+ NULL,
+ &test_state->state,
+ NULL);
+ if (rc == 0) {
+ test_state->status = CM_TEST_PASSED;
+ } else {
+ if (global_skip_test) {
+ test_state->status = CM_TEST_SKIPPED;
+ global_skip_test = 0; /* Do not skip the next test */
+ } else {
+ test_state->status = CM_TEST_FAILED;
+ }
+ }
+ rc = 0;
+ }
+
+ test_state->runtime = 0.0;
+
+#ifdef HAVE_STRUCT_TIMESPEC
+ CMOCKA_CLOCK_GETTIME(CLOCK_REALTIME, &finish);
+ test_state->runtime = cm_secdiff(finish, start);
+#endif
+
+ /* Run teardown */
+ if (rc == 0 && test_state->test->teardown_func != NULL) {
+ rc = cmocka_run_one_test_or_fixture(test_state->test->name,
+ NULL,
+ NULL,
+ test_state->test->teardown_func,
+ &test_state->state,
+ test_state->check_point);
+ if (rc != 0) {
+ test_state->status = CM_TEST_ERROR;
+ cm_print_error("Test teardown failed");
+ }
+ }
+
+ test_state->error_message = cm_error_message;
+ cm_error_message = NULL;
+
+ return rc;
+}
+
+int _cmocka_run_group_tests(const char *group_name,
+ const struct CMUnitTest * const tests,
+ const size_t num_tests,
+ CMFixtureFunction group_setup,
+ CMFixtureFunction group_teardown)
+{
+ struct CMUnitTestState *cm_tests;
+ const ListNode *group_check_point = check_point_allocated_blocks();
+ void *group_state = NULL;
+ size_t total_tests = 0;
+ size_t total_failed = 0;
+ size_t total_passed = 0;
+ size_t total_executed = 0;
+ size_t total_errors = 0;
+ size_t total_skipped = 0;
+ double total_runtime = 0;
+ size_t i;
+ int rc;
+
+ /* Make sure LargestIntegralType is at least the size of a pointer. */
+ assert_true(sizeof(LargestIntegralType) >= sizeof(void*));
+
+ cm_tests = (struct CMUnitTestState *)libc_malloc(sizeof(struct CMUnitTestState) * num_tests);
+ if (cm_tests == NULL) {
+ return -1;
+ }
+
+ /* Setup cmocka test array */
+ for (i = 0; i < num_tests; i++) {
+ if (tests[i].name != NULL &&
+ (tests[i].test_func != NULL
+ || tests[i].setup_func != NULL
+ || tests[i].teardown_func != NULL)) {
+ cm_tests[i] = (struct CMUnitTestState) {
+ .test = &tests[i],
+ .status = CM_TEST_NOT_STARTED,
+ .state = NULL,
+ };
+ total_tests++;
+ }
+ }
+
+ cmprintf_group_start(total_tests);
+
+ rc = 0;
+
+ /* Run group setup */
+ if (group_setup != NULL) {
+ rc = cmocka_run_group_fixture("cmocka_group_setup",
+ group_setup,
+ NULL,
+ &group_state,
+ group_check_point);
+ }
+
+ if (rc == 0) {
+ /* Execute tests */
+ for (i = 0; i < total_tests; i++) {
+ struct CMUnitTestState *cmtest = &cm_tests[i];
+ size_t test_number = i + 1;
+
+ cmprintf(PRINTF_TEST_START, test_number, cmtest->test->name, NULL);
+
+ if (group_state != NULL) {
+ cmtest->state = group_state;
+ } else if (cmtest->test->initial_state != NULL) {
+ cmtest->state = cmtest->test->initial_state;
+ }
+
+ rc = cmocka_run_one_tests(cmtest);
+ total_executed++;
+ total_runtime += cmtest->runtime;
+ if (rc == 0) {
+ switch (cmtest->status) {
+ case CM_TEST_PASSED:
+ cmprintf(PRINTF_TEST_SUCCESS,
+ test_number,
+ cmtest->test->name,
+ cmtest->error_message);
+ total_passed++;
+ break;
+ case CM_TEST_SKIPPED:
+ cmprintf(PRINTF_TEST_SKIPPED,
+ test_number,
+ cmtest->test->name,
+ cmtest->error_message);
+ total_skipped++;
+ break;
+ case CM_TEST_FAILED:
+ cmprintf(PRINTF_TEST_FAILURE,
+ test_number,
+ cmtest->test->name,
+ cmtest->error_message);
+ total_failed++;
+ break;
+ default:
+ cmprintf(PRINTF_TEST_ERROR,
+ test_number,
+ cmtest->test->name,
+ "Internal cmocka error");
+ total_errors++;
+ break;
+ }
+ } else {
+ cmprintf(PRINTF_TEST_ERROR,
+ test_number,
+ cmtest->test->name,
+ "Could not run the test - check test fixtures");
+ total_errors++;
+ }
+ }
+ } else {
+ if (cm_error_message != NULL) {
+ print_error("[ ERROR ] --- %s\n", cm_error_message);
+ vcm_free_error(cm_error_message);
+ cm_error_message = NULL;
+ }
+ cmprintf(PRINTF_TEST_ERROR, 0,
+ group_name, "[ FAILED ] GROUP SETUP");
+ total_errors++;
+ }
+
+ /* Run group teardown */
+ if (group_teardown != NULL) {
+ rc = cmocka_run_group_fixture("cmocka_group_teardown",
+ NULL,
+ group_teardown,
+ &group_state,
+ group_check_point);
+ if (rc != 0) {
+ if (cm_error_message != NULL) {
+ print_error("[ ERROR ] --- %s\n", cm_error_message);
+ vcm_free_error(cm_error_message);
+ cm_error_message = NULL;
+ }
+ cmprintf(PRINTF_TEST_ERROR, 0,
+ group_name, "[ FAILED ] GROUP TEARDOWN");
+ }
+ }
+
+ cmprintf_group_finish(group_name,
+ total_executed,
+ total_passed,
+ total_failed,
+ total_errors,
+ total_skipped,
+ total_runtime,
+ cm_tests);
+
+ for (i = 0; i < total_tests; i++) {
+ vcm_free_error(discard_const_p(char, cm_tests[i].error_message));
+ }
+ libc_free(cm_tests);
+ fail_if_blocks_allocated(group_check_point, "cmocka_group_tests");
+
+ return total_failed + total_errors;
+}
+
+/****************************************************************************
+ * DEPRECATED TEST RUNNER
+ ****************************************************************************/
+
+int _run_test(
+ const char * const function_name, const UnitTestFunction Function,
+ void ** const volatile state, const UnitTestFunctionType function_type,
+ const void* const heap_check_point) {
+ const ListNode * const volatile check_point = (const ListNode*)
+ (heap_check_point ?
+ heap_check_point : check_point_allocated_blocks());
+ void *current_state = NULL;
+ volatile int rc = 1;
+ int handle_exceptions = 1;
+#ifdef _WIN32
+ handle_exceptions = !IsDebuggerPresent();
+#endif /* _WIN32 */
+#ifdef UNIT_TESTING_DEBUG
+ handle_exceptions = 0;
+#endif /* UNIT_TESTING_DEBUG */
+
+ cm_error_message_enabled = 0;
+
+ if (handle_exceptions) {
+#ifndef _WIN32
+ unsigned int i;
+ for (i = 0; i < ARRAY_SIZE(exception_signals); i++) {
+ default_signal_functions[i] = signal(
+ exception_signals[i], exception_handler);
+ }
+#else /* _WIN32 */
+ previous_exception_filter = SetUnhandledExceptionFilter(
+ exception_filter);
+#endif /* !_WIN32 */
+ }
+
+ if (function_type == UNIT_TEST_FUNCTION_TYPE_TEST) {
+ print_message("[ RUN ] %s\n", function_name);
+ }
+ initialize_testing(function_name);
+ global_running_test = 1;
+ if (cm_setjmp(global_run_test_env) == 0) {
+ Function(state ? state : ¤t_state);
+ fail_if_leftover_values(function_name);
+
+ /* If this is a setup function then ignore any allocated blocks
+ * only ensure they're deallocated on tear down. */
+ if (function_type != UNIT_TEST_FUNCTION_TYPE_SETUP) {
+ fail_if_blocks_allocated(check_point, function_name);
+ }
+
+ global_running_test = 0;
+
+ if (function_type == UNIT_TEST_FUNCTION_TYPE_TEST) {
+ print_message("[ OK ] %s\n", function_name);
+ }
+ rc = 0;
+ } else {
+ global_running_test = 0;
+ print_message("[ FAILED ] %s\n", function_name);
+ }
+ teardown_testing(function_name);
+
+ if (handle_exceptions) {
+#ifndef _WIN32
+ unsigned int i;
+ for (i = 0; i < ARRAY_SIZE(exception_signals); i++) {
+ signal(exception_signals[i], default_signal_functions[i]);
+ }
+#else /* _WIN32 */
+ if (previous_exception_filter) {
+ SetUnhandledExceptionFilter(previous_exception_filter);
+ previous_exception_filter = NULL;
+ }
+#endif /* !_WIN32 */
+ }
+
+ return rc;
+}
+
+
+int _run_tests(const UnitTest * const tests, const size_t number_of_tests) {
+ /* Whether to execute the next test. */
+ int run_next_test = 1;
+ /* Whether the previous test failed. */
+ int previous_test_failed = 0;
+ /* Whether the previous setup failed. */
+ int previous_setup_failed = 0;
+ /* Check point of the heap state. */
+ const ListNode * const check_point = check_point_allocated_blocks();
+ /* Current test being executed. */
+ size_t current_test = 0;
+ /* Number of tests executed. */
+ size_t tests_executed = 0;
+ /* Number of failed tests. */
+ size_t total_failed = 0;
+ /* Number of setup functions. */
+ size_t setups = 0;
+ /* Number of teardown functions. */
+ size_t teardowns = 0;
+ size_t i;
+ /*
+ * A stack of test states. A state is pushed on the stack
+ * when a test setup occurs and popped on tear down.
+ */
+ TestState* test_states =
+ (TestState*)malloc(number_of_tests * sizeof(*test_states));
+ /* The number of test states which should be 0 at the end */
+ long number_of_test_states = 0;
+ /* Names of the tests that failed. */
+ const char** failed_names = (const char**)malloc(number_of_tests *
+ sizeof(*failed_names));
+ void **current_state = NULL;
+
+ /* Count setup and teardown functions */
+ for (i = 0; i < number_of_tests; i++) {
+ const UnitTest * const test = &tests[i];
+
+ if (test->function_type == UNIT_TEST_FUNCTION_TYPE_SETUP) {
+ setups++;
+ }
+
+ if (test->function_type == UNIT_TEST_FUNCTION_TYPE_TEARDOWN) {
+ teardowns++;
+ }
+ }
+
+ print_message("[==========] Running %"PRIdS " test(s).\n",
+ number_of_tests - setups - teardowns);
+
+ /* Make sure LargestIntegralType is at least the size of a pointer. */
+ assert_true(sizeof(LargestIntegralType) >= sizeof(void*));
+
+ while (current_test < number_of_tests) {
+ const ListNode *test_check_point = NULL;
+ TestState *current_TestState;
+ const UnitTest * const test = &tests[current_test++];
+ if (!test->function) {
+ continue;
+ }
+
+ switch (test->function_type) {
+ case UNIT_TEST_FUNCTION_TYPE_TEST:
+ if (! previous_setup_failed) {
+ run_next_test = 1;
+ }
+ break;
+ case UNIT_TEST_FUNCTION_TYPE_SETUP: {
+ /* Checkpoint the heap before the setup. */
+ current_TestState = &test_states[number_of_test_states++];
+ current_TestState->check_point = check_point_allocated_blocks();
+ test_check_point = current_TestState->check_point;
+ current_state = ¤t_TestState->state;
+ *current_state = NULL;
+ run_next_test = 1;
+ break;
+ }
+ case UNIT_TEST_FUNCTION_TYPE_TEARDOWN:
+ /* Check the heap based on the last setup checkpoint. */
+ assert_true(number_of_test_states);
+ current_TestState = &test_states[--number_of_test_states];
+ test_check_point = current_TestState->check_point;
+ current_state = ¤t_TestState->state;
+ break;
+ default:
+ print_error("Invalid unit test function type %d\n",
+ test->function_type);
+ exit_test(1);
+ break;
+ }
+
+ if (run_next_test) {
+ int failed = _run_test(test->name, test->function, current_state,
+ test->function_type, test_check_point);
+ if (failed) {
+ failed_names[total_failed] = test->name;
+ }
+
+ switch (test->function_type) {
+ case UNIT_TEST_FUNCTION_TYPE_TEST:
+ previous_test_failed = failed;
+ total_failed += failed;
+ tests_executed ++;
+ break;
+
+ case UNIT_TEST_FUNCTION_TYPE_SETUP:
+ if (failed) {
+ total_failed ++;
+ tests_executed ++;
+ /* Skip forward until the next test or setup function. */
+ run_next_test = 0;
+ previous_setup_failed = 1;
+ }
+ previous_test_failed = 0;
+ break;
+
+ case UNIT_TEST_FUNCTION_TYPE_TEARDOWN:
+ /* If this test failed. */
+ if (failed && !previous_test_failed) {
+ total_failed ++;
+ }
+ break;
+ default:
+#ifndef _HPUX
+ assert_null("BUG: shouldn't be here!");
+#endif
+ break;
+ }
+ }
+ }
+
+ print_message("[==========] %"PRIdS " test(s) run.\n", tests_executed);
+ print_error("[ PASSED ] %"PRIdS " test(s).\n", tests_executed - total_failed);
+
+ if (total_failed > 0) {
+ print_error("[ FAILED ] %"PRIdS " test(s), listed below:\n", total_failed);
+ for (i = 0; i < total_failed; i++) {
+ print_error("[ FAILED ] %s\n", failed_names[i]);
+ }
+ } else {
+ print_error("\n %"PRIdS " FAILED TEST(S)\n", total_failed);
+ }
+
+ if (number_of_test_states != 0) {
+ print_error("[ ERROR ] Mismatched number of setup %"PRIdS " and "
+ "teardown %"PRIdS " functions\n", setups, teardowns);
+ total_failed = (size_t)-1;
+ }
+
+ free(test_states);
+ free((void*)failed_names);
+
+ fail_if_blocks_allocated(check_point, "run_tests");
+ return (int)total_failed;
+}
+
+int _run_group_tests(const UnitTest * const tests, const size_t number_of_tests)
+{
+ UnitTestFunction setup = NULL;
+ const char *setup_name;
+ size_t num_setups = 0;
+ UnitTestFunction teardown = NULL;
+ const char *teardown_name;
+ size_t num_teardowns = 0;
+ size_t current_test = 0;
+ size_t i;
+
+ /* Number of tests executed. */
+ size_t tests_executed = 0;
+ /* Number of failed tests. */
+ size_t total_failed = 0;
+ /* Check point of the heap state. */
+ const ListNode * const check_point = check_point_allocated_blocks();
+ const char** failed_names = (const char**)malloc(number_of_tests *
+ sizeof(*failed_names));
+ void **current_state = NULL;
+ TestState group_state;
+
+ /* Find setup and teardown function */
+ for (i = 0; i < number_of_tests; i++) {
+ const UnitTest * const test = &tests[i];
+
+ if (test->function_type == UNIT_TEST_FUNCTION_TYPE_GROUP_SETUP) {
+ if (setup == NULL) {
+ setup = test->function;
+ setup_name = test->name;
+ num_setups = 1;
+ } else {
+ print_error("[ ERROR ] More than one group setup function detected\n");
+ exit_test(1);
+ }
+ }
+
+ if (test->function_type == UNIT_TEST_FUNCTION_TYPE_GROUP_TEARDOWN) {
+ if (teardown == NULL) {
+ teardown = test->function;
+ teardown_name = test->name;
+ num_teardowns = 1;
+ } else {
+ print_error("[ ERROR ] More than one group teardown function detected\n");
+ exit_test(1);
+ }
+ }
+ }
+
+ print_message("[==========] Running %"PRIdS " test(s).\n",
+ number_of_tests - num_setups - num_teardowns);
+
+ if (setup != NULL) {
+ int failed;
+
+ group_state.check_point = check_point_allocated_blocks();
+ current_state = &group_state.state;
+ *current_state = NULL;
+ failed = _run_test(setup_name,
+ setup,
+ current_state,
+ UNIT_TEST_FUNCTION_TYPE_SETUP,
+ group_state.check_point);
+ if (failed) {
+ failed_names[total_failed] = setup_name;
+ }
+
+ total_failed += failed;
+ tests_executed++;
+ }
+
+ while (current_test < number_of_tests) {
+ int run_test = 0;
+ const UnitTest * const test = &tests[current_test++];
+ if (test->function == NULL) {
+ continue;
+ }
+
+ switch (test->function_type) {
+ case UNIT_TEST_FUNCTION_TYPE_TEST:
+ run_test = 1;
+ break;
+ case UNIT_TEST_FUNCTION_TYPE_SETUP:
+ case UNIT_TEST_FUNCTION_TYPE_TEARDOWN:
+ case UNIT_TEST_FUNCTION_TYPE_GROUP_SETUP:
+ case UNIT_TEST_FUNCTION_TYPE_GROUP_TEARDOWN:
+ break;
+ default:
+ print_error("Invalid unit test function type %d\n",
+ test->function_type);
+ break;
+ }
+
+ if (run_test) {
+ int failed;
+
+ failed = _run_test(test->name,
+ test->function,
+ current_state,
+ test->function_type,
+ NULL);
+ if (failed) {
+ failed_names[total_failed] = test->name;
+ }
+
+ total_failed += failed;
+ tests_executed++;
+ }
+ }
+
+ if (teardown != NULL) {
+ int failed;
+
+ failed = _run_test(teardown_name,
+ teardown,
+ current_state,
+ UNIT_TEST_FUNCTION_TYPE_GROUP_TEARDOWN,
+ group_state.check_point);
+ if (failed) {
+ failed_names[total_failed] = teardown_name;
+ }
+
+ total_failed += failed;
+ tests_executed++;
+ }
+
+ print_message("[==========] %"PRIdS " test(s) run.\n", tests_executed);
+ print_error("[ PASSED ] %"PRIdS " test(s).\n", tests_executed - total_failed);
+
+ if (total_failed) {
+ print_error("[ FAILED ] %"PRIdS " test(s), listed below:\n", total_failed);
+ for (i = 0; i < total_failed; i++) {
+ print_error("[ FAILED ] %s\n", failed_names[i]);
+ }
+ } else {
+ print_error("\n %"PRIdS " FAILED TEST(S)\n", total_failed);
+ }
+
+ free((void*)failed_names);
+ fail_if_blocks_allocated(check_point, "run_group_tests");
+
+ return (int)total_failed;
+}
+
diff --git a/tests/cmocka-1.1.0/src/cmocka.def b/tests/cmocka-1.1.0/src/cmocka.def
new file mode 100644
index 0000000..43228c4
--- /dev/null
+++ b/tests/cmocka-1.1.0/src/cmocka.def
@@ -0,0 +1,49 @@
+LIBRARY cmocka
+EXPORTS
+ _assert_in_range
+ _assert_in_set
+ _assert_int_equal
+ _assert_int_not_equal
+ _assert_memory_equal
+ _assert_memory_not_equal
+ _assert_not_in_range
+ _assert_not_in_set
+ _assert_return_code
+ _assert_string_equal
+ _assert_string_not_equal
+ _assert_true
+ _check_expected
+ _cmocka_run_group_tests
+ _expect_any
+ _expect_check
+ _expect_function_call
+ _expect_in_range
+ _expect_in_set
+ _expect_memory
+ _expect_not_in_range
+ _expect_not_in_set
+ _expect_not_memory
+ _expect_not_string
+ _expect_not_value
+ _expect_string
+ _expect_value
+ _fail
+ _function_called
+ _mock
+ _run_test
+ _run_tests
+ _skip
+ _test_calloc
+ _test_free
+ _test_malloc
+ _test_realloc
+ _will_return
+ cmocka_set_message_output
+ global_expect_assert_env
+ global_expecting_assert
+ global_last_failed_assert
+ mock_assert
+ print_error
+ print_message
+ vprint_error
+ vprint_message
diff --git a/tests/cmocka-1.1.0/test_ordering_fail.c b/tests/cmocka-1.1.0/test_ordering_fail.c
new file mode 100644
index 0000000..652f5ad
--- /dev/null
+++ b/tests/cmocka-1.1.0/test_ordering_fail.c
@@ -0,0 +1,95 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+static void mock_test_a_called(void)
+{
+ function_called();
+}
+
+static void mock_test_b_called(void)
+{
+ function_called();
+}
+
+static void mock_test_c_called(void)
+{
+ function_called();
+}
+
+static void test_does_fail_for_unexpected_call(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_a_called();
+ mock_test_a_called();
+}
+
+static void test_does_fail_for_unmade_expected_call(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+}
+
+static void test_ordering_fails_out_of_order(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_b_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_b_called();
+}
+
+static void test_ordering_fails_out_of_order_for_at_least_once_calls(void **state)
+{
+ (void)state;
+ expect_function_call_any(mock_test_a_called);
+ ignore_function_calls(mock_test_b_called);
+
+ mock_test_b_called();
+ mock_test_c_called();
+}
+
+/* Primarily used to test error message */
+static void test_fails_out_of_order_if_no_calls_found_on_any(void **state)
+{
+ (void)state;
+ expect_function_call_any(mock_test_a_called);
+ ignore_function_calls(mock_test_b_called);
+
+ mock_test_a_called();
+ mock_test_c_called();
+}
+
+static void test_fails_if_zero_count_used(void **state)
+{
+ (void)state;
+ expect_function_calls(mock_test_a_called, 0);
+
+ mock_test_a_called();
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_does_fail_for_unexpected_call)
+ ,cmocka_unit_test(test_does_fail_for_unmade_expected_call)
+ ,cmocka_unit_test(test_does_fail_for_unmade_expected_call)
+ ,cmocka_unit_test(test_ordering_fails_out_of_order)
+ ,cmocka_unit_test(test_ordering_fails_out_of_order_for_at_least_once_calls)
+ ,cmocka_unit_test(test_fails_out_of_order_if_no_calls_found_on_any)
+ ,cmocka_unit_test(test_fails_if_zero_count_used)
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/CMakeLists.txt b/tests/cmocka-1.1.0/tests/CMakeLists.txt
new file mode 100644
index 0000000..68ae4ac
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/CMakeLists.txt
@@ -0,0 +1,243 @@
+project(tests C)
+
+include_directories(
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/include
+)
+
+set(CMOCKA_TESTS
+ test_alloc
+ test_group_setup_assert
+ test_group_setup_fail
+ test_fixtures
+ test_group_fixtures
+ test_groups
+ test_assert_macros
+ test_assert_macros_fail
+ test_exception_handler
+ test_basics
+ test_skip
+ test_setup_fail
+ test_ordering
+ test_ordering_fail
+ test_returns
+ test_returns_fail)
+
+foreach(_CMOCKA_TEST ${CMOCKA_TESTS})
+ add_cmocka_test(${_CMOCKA_TEST} ${_CMOCKA_TEST}.c ${CMOCKA_STATIC_LIBRARY})
+endforeach()
+
+### Special Cases
+if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
+ set_source_files_properties(test_cmockery.c PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
+endif()
+add_cmocka_test(test_cmockery test_cmockery.c ${CMOCKA_STATIC_LIBRARY})
+
+### Exceptions
+
+# test_skip
+set_tests_properties(
+ test_skip
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ SKIPPED \\] test_check_skip"
+)
+
+# test_assert_macros_fail
+set_tests_properties(
+ test_assert_macros_fail
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ FAILED \\] 1 test"
+)
+
+# test_ordering ensure proper failures
+set_tests_properties(
+ test_ordering_fail
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ FAILED \\] 7 test"
+)
+
+# test_returns_fail ensure proper failures
+set_tests_properties(
+ test_returns_fail
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ FAILED \\] 3 test"
+)
+
+# test_exception_handler
+if (WIN32)
+ set_tests_properties(
+ test_exception_handler
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "EXCEPTION_ACCESS_VIOLATION occurred at")
+else()
+ set_tests_properties(
+ test_exception_handler
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "Test failed with exception: (Segmentation fault|Segmentation Fault|11)"
+ )
+endif (WIN32)
+
+set_tests_properties(
+ test_setup_fail
+ PROPERTIES
+ WILL_FAIL
+ 1
+)
+
+set_tests_properties(
+ test_group_setup_assert
+ PROPERTIES
+ WILL_FAIL
+ 1
+)
+
+set_tests_properties(
+ test_group_setup_fail
+ PROPERTIES
+ WILL_FAIL
+ 1
+)
+
+add_test (test_setup_fail_1_failed test_setup_fail)
+set_tests_properties(
+ test_setup_fail_1_failed
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ ERROR \\] int_test_ignored"
+)
+
+add_test (test_setup_fail_1_passed test_setup_fail)
+set_tests_properties(
+ test_setup_fail_1_passed
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ PASSED \\] 1 test\\(s\\)."
+)
+
+add_test (test_setup_fail_match_failed test_setup_fail)
+set_tests_properties(
+ test_setup_fail_match_failed
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ ERROR \\] int_test_ignored"
+)
+
+add_test (test_setup_fail_match_passed test_setup_fail)
+set_tests_properties(
+ test_setup_fail_match_passed
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ "\\[ OK \\] int_test_success"
+)
+
+### Output formats
+
+# test output of success, failure, skip, fixture failure
+set(OUTPUT_TESTS
+ test_basics
+ test_assert_macros_fail
+ test_groups
+ test_skip
+ test_setup_fail)
+
+set(TEST_OUTPUT_FMTS
+ tap
+ subunit
+ xml)
+
+set(test_basics_tap_out
+ "^\t1\\.\\.2"
+ "\tok 1 - null_test_success"
+ "\tok 2 - int_test_success"
+ "ok - tests")
+set(test_assert_macros_fail_tap_out
+ "^\t1\\.\\.1"
+ "\tnot ok 1 - test_assert_return_code_fail"
+ "\t#[^\n\r]+[\n\r]\t#[^\n\r]+[\n\r]not ok - tests")
+set(test_groups_tap_out
+ "^\t1\\.\\.1"
+ "\tok 1 - null_test_success"
+ "ok - test_group1"
+ "\t1\\.\\.1"
+ "\tok 1 - int_test_success"
+ "ok - test_group2")
+set(test_skip_tap_out
+ "not ok 1 # SKIP")
+set(test_setup_fail_tap_out
+ "not ok 1 - int_test_ignored Could not run the test - check test fixtures")
+
+set(test_basics_subunit_out
+ "^test: null_test_success"
+ "success: null_test_success")
+set(test_assert_macros_fail_subunit_out
+ "failure: test_assert_return_code_fail \\[")
+set(test_groups_subunit_out
+ "^test: null_test_success"
+ "success: null_test_success")
+set(test_skip_subunit_out
+ "^test: test_check_skip"
+ "skip: test_check_skip")
+set(test_setup_fail_subunit_out
+ "error: int_test_ignored \\[ Could not run the test - check test fixtures \\]")
+
+set(test_basics_xml_out
+ ""
+ ".*")
+set(test_assert_macros_fail_xml_out
+ ""
+ "")
+set(test_groups_xml_out
+ "^<\\?xml version=\"1.0\" encoding=\"UTF-8\" \\?>"
+ ""
+ ""
+ ""
+ ""
+ ""
+ ".*"
+ ""
+ ""
+ ""
+ "")
+set(test_skip_xml_out
+ ""
+ "")
+set(test_setup_fail_xml_out
+ ""
+ "")
+
+foreach(_TEST_OUTPUT_FMT ${TEST_OUTPUT_FMTS})
+ foreach(_OUTPUT_TEST ${OUTPUT_TESTS})
+ set(TEST_NAME ${_OUTPUT_TEST}_${_TEST_OUTPUT_FMT})
+ add_test(${TEST_NAME} ${_OUTPUT_TEST})
+
+ set_property(
+ TEST
+ ${TEST_NAME}
+ PROPERTY
+ ENVIRONMENT CMOCKA_MESSAGE_OUTPUT=${_TEST_OUTPUT_FMT}
+ )
+
+ list(LENGTH ${TEST_NAME}_out len)
+ list(GET ${TEST_NAME}_out 0 output)
+ if(len GREATER 1)
+ list(REMOVE_AT ${TEST_NAME}_out 0)
+ foreach(line ${${TEST_NAME}_out})
+ set(output "${output}[ \n\r]+${line}")
+ endforeach()
+ endif()
+
+ set_tests_properties(
+ ${TEST_NAME}
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION
+ ${output}
+ )
+ endforeach()
+endforeach()
diff --git a/tests/cmocka-1.1.0/tests/ctest-default.cmake b/tests/cmocka-1.1.0/tests/ctest-default.cmake
new file mode 100644
index 0000000..e21e93c
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/ctest-default.cmake
@@ -0,0 +1,74 @@
+## The directory to run ctest in.
+set(CTEST_DIRECTORY "$ENV{HOME}/workspace/tmp/dashboards/cmocka")
+
+## The hostname of the machine
+set(CTEST_SITE "host.cmocka.org")
+## The buildname
+set(CTEST_BUILD_NAME "Linux_GCC_x86_64_default")
+
+## The Makefile generator to use
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+
+## The Build configuration to use.
+set(CTEST_BUILD_CONFIGURATION "Debug")
+
+## The build options for the project
+set(CTEST_BUILD_OPTIONS "-DUNIT_TESTING=ON -DWITH_CMOCKERY_SUPPORT=ON")
+
+#set(CTEST_CUSTOM_MEMCHECK_IGNORE torture_rand)
+
+## The Model to set: Nightly, Continous, Experimental
+set(CTEST_MODEL "Experimental")
+
+## The URL to the git repository
+set(CTEST_GIT_REPOSITORY "git://git.cryptomilk.org/projects/cmocka.git")
+
+## The branch
+#set(CTEST_GIT_BRANCH "--branch v0-5")
+
+## Wether to enable memory checking.
+set(WITH_MEMCHECK FALSE)
+
+## Wether to enable code coverage.
+set(WITH_COVERAGE FALSE)
+
+#######################################################################
+
+if (WITH_COVERAGE AND NOT WIN32)
+ set(CTEST_BUILD_CONFIGURATION "Profiling")
+endif (WITH_COVERAGE AND NOT WIN32)
+
+set(CTEST_SOURCE_DIRECTORY "${CTEST_DIRECTORY}/${CTEST_BUILD_NAME}/source")
+set(CTEST_BINARY_DIRECTORY "${CTEST_DIRECTORY}/${CTEST_BUILD_NAME}/build")
+
+set(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE ${CMAKE_SOURCE_DIR}/tests/valgrind.supp)
+
+find_program(CTEST_GIT_COMMAND NAMES git)
+find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
+find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
+
+if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
+ set(CTEST_CHECKOUT_COMMAND "${CTEST_GIT_COMMAND} clone ${CTEST_GIT_BRANCH} ${CTEST_GIT_REPOSITORY} ${CTEST_SOURCE_DIRECTORY}")
+endif()
+
+set(CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}")
+
+set(CTEST_CONFIGURE_COMMAND "${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION}")
+set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} ${CTEST_BUILD_OPTIONS}")
+set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"-G${CTEST_CMAKE_GENERATOR}\"")
+set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"${CTEST_SOURCE_DIRECTORY}\"")
+
+ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+
+ctest_start(${CTEST_MODEL} TRACK ${CTEST_MODEL})
+ctest_update(SOURCE ${CTEST_SOURCE_DIRECTORY})
+ctest_configure(BUILD ${CTEST_BINARY_DIRECTORY})
+ctest_build(BUILD ${CTEST_BINARY_DIRECTORY})
+ctest_test(BUILD ${CTEST_BINARY_DIRECTORY})
+if (WITH_MEMCHECK AND CTEST_COVERAGE_COMMAND)
+ ctest_coverage(BUILD ${CTEST_BINARY_DIRECTORY})
+endif (WITH_MEMCHECK AND CTEST_COVERAGE_COMMAND)
+if (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
+ ctest_memcheck(BUILD ${CTEST_BINARY_DIRECTORY})
+endif (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
+ctest_submit()
diff --git a/tests/cmocka-1.1.0/tests/test_alloc.c b/tests/cmocka-1.1.0/tests/test_alloc.c
new file mode 100644
index 0000000..966814a
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_alloc.c
@@ -0,0 +1,91 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+
+static void torture_test_malloc(void **state)
+{
+ char *str;
+ size_t str_len;
+ size_t len;
+
+ (void)state; /* unsused */
+
+ str_len = 12;
+ str = (char *)test_malloc(str_len);
+ assert_non_null(str);
+
+ len = snprintf(str, str_len, "test string");
+ assert_int_equal(len, 11);
+
+ len = strlen(str);
+ assert_int_equal(len, 11);
+
+ test_free(str);
+}
+
+static void torture_test_realloc(void **state)
+{
+ char *str;
+ char *tmp;
+ size_t str_len;
+ size_t len;
+
+ (void)state; /* unsused */
+
+ str_len = 16;
+ str = (char *)test_malloc(str_len);
+ assert_non_null(str);
+
+ len = snprintf(str, str_len, "test string 123");
+ assert_int_equal(len, 15);
+
+ len = strlen(str);
+ assert_int_equal(len, 15);
+
+ str_len = 20;
+ tmp = test_realloc(str, str_len);
+ assert_non_null(tmp);
+
+ str = tmp;
+ len = strlen(str);
+ assert_string_equal(tmp, "test string 123");
+
+ snprintf(str + len, str_len - len, "4567");
+ assert_string_equal(tmp, "test string 1234567");
+
+ test_free(str);
+}
+
+static void torture_test_realloc_set0(void **state)
+{
+ char *str;
+ size_t str_len;
+
+ (void)state; /* unsused */
+
+ str_len = 16;
+ str = (char *)test_malloc(str_len);
+ assert_non_null(str);
+
+ /* realloc(ptr, 0) is like a free() */
+ str = (char *)test_realloc(str, 0);
+ assert_null(str);
+}
+
+int main(void) {
+ const struct CMUnitTest alloc_tests[] = {
+ cmocka_unit_test(torture_test_malloc),
+ cmocka_unit_test(torture_test_realloc),
+ cmocka_unit_test(torture_test_realloc_set0),
+ };
+
+ return cmocka_run_group_tests(alloc_tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_assert_macros.c b/tests/cmocka-1.1.0/tests/test_assert_macros.c
new file mode 100644
index 0000000..85b0a38
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_assert_macros.c
@@ -0,0 +1,41 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#ifdef HAVE_UNISTD_H
+#include
+#endif
+#include
+
+/**************************************
+ *** assert_return_code
+ **************************************/
+static void test_assert_return_code(void **state)
+{
+ struct stat sb;
+ int rc;
+
+ (void)state; /* unused */
+
+ rc = stat(".", &sb);
+ assert_return_code(rc, 0);
+
+#ifndef _MSC_VER
+ assert_true(S_ISDIR(sb.st_mode));
+#endif
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_assert_return_code),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_assert_macros_fail.c b/tests/cmocka-1.1.0/tests/test_assert_macros_fail.c
new file mode 100644
index 0000000..aea919a
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_assert_macros_fail.c
@@ -0,0 +1,43 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#ifdef HAVE_UNISTD_H
+#include
+#endif
+#ifdef HAVE_IO_H
+#include
+#endif
+#include
+
+/**************************************
+ *** assert_return_code
+ **************************************/
+static void test_assert_return_code_fail(void **state)
+{
+ int fd;
+
+ (void)state; /* unused */
+
+ fd = open("this_file_doesnt_exist.cmocka", 0);
+ assert_return_code(fd, errno);
+
+ if (fd >= 0) {
+ close(fd);
+ }
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_assert_return_code_fail),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_basics.c b/tests/cmocka-1.1.0/tests/test_basics.c
new file mode 100644
index 0000000..1bb493f
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_basics.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Use the unit test allocators */
+#define UNIT_TESTING 1
+
+#include
+#include
+#include
+#include
+
+static int setup(void **state) {
+ int *answer = malloc(sizeof(int));
+
+ assert_non_null(answer);
+ *answer = 42;
+
+ *state = answer;
+
+ return 0;
+}
+
+static int teardown(void **state) {
+ free(*state);
+
+ return 0;
+}
+
+/* A test case that does nothing and succeeds. */
+static void null_test_success(void **state) {
+ (void) state;
+}
+
+/* A test case that does check if an int is equal. */
+static void int_test_success(void **state) {
+ int *answer = *state;
+
+ assert_int_equal(*answer, 42);
+}
+
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(null_test_success),
+ cmocka_unit_test_setup_teardown(int_test_success, setup, teardown),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_cmockery.c b/tests/cmocka-1.1.0/tests/test_cmockery.c
new file mode 100644
index 0000000..83a7451
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_cmockery.c
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include
+#include
+#include
+
+/* A test case that does nothing and succeeds. */
+static void null_test_success(void **state) {
+ (void) state; /* unused */
+}
+
+int main(void) {
+ const UnitTest tests[] = {
+ unit_test(null_test_success),
+ };
+ return run_tests(tests);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_exception_handler.c b/tests/cmocka-1.1.0/tests/test_exception_handler.c
new file mode 100644
index 0000000..3f7c181
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_exception_handler.c
@@ -0,0 +1,30 @@
+#include
+#include
+#include
+#include
+
+#include
+
+struct test_segv {
+ int x;
+ int y;
+};
+
+static void test_segfault_recovery(void **state)
+{
+ struct test_segv *s = NULL;
+
+ (void) state; /* unused */
+
+ s->x = 1;
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_segfault_recovery),
+ cmocka_unit_test(test_segfault_recovery),
+ cmocka_unit_test(test_segfault_recovery),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_fixtures.c b/tests/cmocka-1.1.0/tests/test_fixtures.c
new file mode 100644
index 0000000..6d39487
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_fixtures.c
@@ -0,0 +1,82 @@
+#include
+#include
+#include
+#include
+
+#include
+
+static int setup_only(void **state)
+{
+ *state = malloc(1);
+
+ return 0;
+}
+
+static int teardown_only(void **state)
+{
+ free(*state);
+
+ return 0;
+}
+
+static void malloc_setup_test(void **state)
+{
+ assert_non_null(*state);
+ free(*state);
+}
+
+static void malloc_teardown_test(void **state)
+{
+ *state = malloc(1);
+ assert_non_null(*state);
+}
+
+static int prestate_setup(void **state)
+{
+ int *val = (int *)*state, *a;
+
+ a = malloc(sizeof(int));
+ *a = *val + 1;
+ *state = a;
+
+ return 0;
+}
+
+static int prestate_teardown(void **state)
+{
+ free(*state);
+
+ return 0;
+}
+
+static void prestate_setup_test(void **state)
+{
+ int *a = (int *)*state;
+
+ assert_non_null(a);
+ assert_int_equal(*a, 43);
+}
+
+static void prestate_test(void **state)
+{
+ int *a = (int *)*state;
+
+ assert_non_null(a);
+ assert_int_equal(*a, 42);
+}
+
+int main(void) {
+ int prestate = 42;
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test_setup(malloc_setup_test, setup_only),
+ cmocka_unit_test_setup(malloc_setup_test, setup_only),
+ cmocka_unit_test_teardown(malloc_teardown_test, teardown_only),
+ cmocka_unit_test_teardown(malloc_teardown_test, teardown_only),
+ cmocka_unit_test_teardown(malloc_teardown_test, teardown_only),
+ cmocka_unit_test_teardown(malloc_teardown_test, teardown_only),
+ cmocka_unit_test_prestate(prestate_test, &prestate),
+ cmocka_unit_test_prestate_setup_teardown(prestate_setup_test, prestate_setup, prestate_teardown, &prestate),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_group_fixtures.c b/tests/cmocka-1.1.0/tests/test_group_fixtures.c
new file mode 100644
index 0000000..64f0ab7
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_group_fixtures.c
@@ -0,0 +1,50 @@
+/* Use the unit test allocators */
+#define UNIT_TESTING 1
+
+#include
+#include
+#include
+#include
+
+static int group_setup(void **state)
+{
+ int *answer = malloc(sizeof(int));
+ assert_non_null(answer);
+ *answer = 42;
+
+ *state = answer;
+ return 0;
+}
+
+static int group_teardown(void **state)
+{
+ int *answer = (int *)*state;
+
+ free(answer);
+ return 0;
+}
+
+static void test_value_equal(void **state)
+{
+ int a = *((int *)*state);
+
+ assert_int_equal(a, 42);
+}
+
+static void test_value_range(void **state)
+{
+ int a = *((int *)*state);
+
+ assert_in_range(a, 0, 100);
+}
+
+int main(void) {
+ int prestate = 1337;
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_value_equal),
+ cmocka_unit_test(test_value_range),
+ cmocka_unit_test_prestate(test_value_equal, &prestate),
+ };
+
+ return cmocka_run_group_tests(tests, group_setup, group_teardown);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_group_setup_assert.c b/tests/cmocka-1.1.0/tests/test_group_setup_assert.c
new file mode 100644
index 0000000..eef61f8
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_group_setup_assert.c
@@ -0,0 +1,37 @@
+/* Use the unit test allocators */
+#define UNIT_TESTING 1
+
+#include
+#include
+#include
+#include
+
+static int group_setup_failing(void **state)
+{
+ (void) state; /* unused */
+
+ assert_int_equal(0, 1);
+
+ return 0;
+}
+
+static void test_true(void **state)
+{
+ (void) state; /* unused */
+ assert_true(1);
+}
+
+static void test_false(void **state)
+{
+ (void) state; /* unused */
+ assert_false(0);
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_true),
+ cmocka_unit_test(test_false),
+ };
+
+ return cmocka_run_group_tests(tests, group_setup_failing, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_group_setup_fail.c b/tests/cmocka-1.1.0/tests/test_group_setup_fail.c
new file mode 100644
index 0000000..7815c03
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_group_setup_fail.c
@@ -0,0 +1,34 @@
+/* Use the unit test allocators */
+#define UNIT_TESTING 1
+
+#include
+#include
+#include
+#include
+
+static int group_setup_failing(void **state)
+{
+ (void) state; /* unused */
+ return 1; /* To indicate the failure */
+}
+
+static void test_true(void **state)
+{
+ (void) state; /* unused */
+ assert_true(1);
+}
+
+static void test_false(void **state)
+{
+ (void) state; /* unused */
+ assert_false(0);
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_true),
+ cmocka_unit_test(test_false),
+ };
+
+ return cmocka_run_group_tests(tests, group_setup_failing, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_groups.c b/tests/cmocka-1.1.0/tests/test_groups.c
new file mode 100644
index 0000000..af9e2b8
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_groups.c
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2016 David Schneider
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Use the unit test allocators */
+#define UNIT_TESTING 1
+
+#include
+#include
+#include
+#include
+
+static int setup(void **state) {
+ int *answer = malloc(sizeof(int));
+
+ assert_non_null(answer);
+ *answer = 42;
+
+ *state = answer;
+
+ return 0;
+}
+
+static int teardown(void **state) {
+ free(*state);
+
+ return 0;
+}
+
+/* A test case that does nothing and succeeds. */
+static void null_test_success(void **state) {
+ (void) state;
+}
+
+/* A test case that does check if an int is equal. */
+static void int_test_success(void **state) {
+ int *answer = *state;
+
+ assert_int_equal(*answer, 42);
+}
+
+
+int main(void) {
+ const struct CMUnitTest test_group1[] = {
+ cmocka_unit_test(null_test_success),
+ };
+
+ const struct CMUnitTest test_group2[] = {
+ cmocka_unit_test_setup_teardown(int_test_success, setup, teardown),
+ };
+
+ int result = 0;
+ result += cmocka_run_group_tests(test_group1, NULL, NULL);
+ result += cmocka_run_group_tests(test_group2, NULL, NULL);
+
+ return result;
+}
diff --git a/tests/cmocka-1.1.0/tests/test_ordering.c b/tests/cmocka-1.1.0/tests/test_ordering.c
new file mode 100644
index 0000000..817c0ba
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_ordering.c
@@ -0,0 +1,112 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+static void mock_test_a_called(void)
+{
+ function_called();
+}
+
+static void mock_test_b_called(void)
+{
+ function_called();
+}
+
+static void mock_test_c_called(void)
+{
+ function_called();
+}
+
+
+static void test_does_succeed_for_expected(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_a_called();
+}
+
+static void test_does_succeed_for_multiple_calls(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_calls(mock_test_a_called, 2);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_a_called();
+ mock_test_a_called();
+ mock_test_a_called();
+}
+
+static void test_ordering_does_ignore_calls(void **state)
+{
+ (void)state;
+
+ ignore_function_calls(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_a_called();
+ mock_test_a_called();
+}
+
+static void test_ordering_does_ignore_no_calls(void **state)
+{
+ (void)state;
+ ignore_function_calls(mock_test_a_called);
+}
+
+static void test_ordering_does_expect_at_least_one_call(void **state)
+{
+ (void)state;
+ expect_function_call_any(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_a_called();
+ mock_test_a_called();
+}
+
+static void test_ordering_does_work_across_different_functions(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_b_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_b_called();
+ mock_test_a_called();
+}
+
+static void test_ordering_ignores_out_of_order_properly(void **state)
+{
+ (void)state;
+ ignore_function_calls(mock_test_a_called);
+ ignore_function_calls(mock_test_b_called);
+ expect_function_calls(mock_test_c_called, 2);
+
+
+ mock_test_c_called();
+ mock_test_b_called();
+ mock_test_c_called();
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_does_succeed_for_expected)
+ ,cmocka_unit_test(test_does_succeed_for_multiple_calls)
+ ,cmocka_unit_test(test_ordering_does_ignore_no_calls)
+ ,cmocka_unit_test(test_ordering_does_ignore_calls)
+ ,cmocka_unit_test(test_ordering_does_expect_at_least_one_call)
+ ,cmocka_unit_test(test_ordering_does_work_across_different_functions)
+ ,cmocka_unit_test(test_ordering_ignores_out_of_order_properly)
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_ordering_fail.c b/tests/cmocka-1.1.0/tests/test_ordering_fail.c
new file mode 100644
index 0000000..652f5ad
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_ordering_fail.c
@@ -0,0 +1,95 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+static void mock_test_a_called(void)
+{
+ function_called();
+}
+
+static void mock_test_b_called(void)
+{
+ function_called();
+}
+
+static void mock_test_c_called(void)
+{
+ function_called();
+}
+
+static void test_does_fail_for_unexpected_call(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+ mock_test_a_called();
+ mock_test_a_called();
+}
+
+static void test_does_fail_for_unmade_expected_call(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_a_called();
+}
+
+static void test_ordering_fails_out_of_order(void **state)
+{
+ (void)state;
+ expect_function_call(mock_test_a_called);
+ expect_function_call(mock_test_b_called);
+ expect_function_call(mock_test_a_called);
+
+ mock_test_b_called();
+}
+
+static void test_ordering_fails_out_of_order_for_at_least_once_calls(void **state)
+{
+ (void)state;
+ expect_function_call_any(mock_test_a_called);
+ ignore_function_calls(mock_test_b_called);
+
+ mock_test_b_called();
+ mock_test_c_called();
+}
+
+/* Primarily used to test error message */
+static void test_fails_out_of_order_if_no_calls_found_on_any(void **state)
+{
+ (void)state;
+ expect_function_call_any(mock_test_a_called);
+ ignore_function_calls(mock_test_b_called);
+
+ mock_test_a_called();
+ mock_test_c_called();
+}
+
+static void test_fails_if_zero_count_used(void **state)
+{
+ (void)state;
+ expect_function_calls(mock_test_a_called, 0);
+
+ mock_test_a_called();
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_does_fail_for_unexpected_call)
+ ,cmocka_unit_test(test_does_fail_for_unmade_expected_call)
+ ,cmocka_unit_test(test_does_fail_for_unmade_expected_call)
+ ,cmocka_unit_test(test_ordering_fails_out_of_order)
+ ,cmocka_unit_test(test_ordering_fails_out_of_order_for_at_least_once_calls)
+ ,cmocka_unit_test(test_fails_out_of_order_if_no_calls_found_on_any)
+ ,cmocka_unit_test(test_fails_if_zero_count_used)
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_returns.c b/tests/cmocka-1.1.0/tests/test_returns.c
new file mode 100644
index 0000000..b9370c9
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_returns.c
@@ -0,0 +1,69 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+int mock_function(void);
+void mock_function_call_times(size_t times, int expectedValue);
+
+int mock_function(void)
+{
+ return (int) mock();
+}
+
+void mock_function_call_times(size_t times, int expectedValue)
+{
+ size_t i;
+ for (i = 0u; i < times; ++i)
+ {
+ assert_int_equal(expectedValue, mock_function());
+ }
+}
+
+static void test_will_return_maybe_for_no_calls(void **state)
+{
+ (void) state;
+
+ will_return_maybe(mock_function, 32);
+}
+
+static void test_will_return_maybe_for_one_mock_call(void **state)
+{
+ int value;
+
+ (void) state;
+
+ value = rand();
+ will_return_maybe(mock_function, value);
+ mock_function_call_times(1u, value);
+}
+
+static void test_will_return_maybe_for_more_than_one_call(void **state)
+{
+ int value;
+ size_t numberOfCalls;
+ (void)state;
+
+ value = rand();
+ numberOfCalls = (size_t) ((rand()) % 20 + 2);
+ will_return_maybe(mock_function, value);
+ mock_function_call_times(numberOfCalls, value);
+}
+
+int main(int argc, char **argv) {
+ const struct CMUnitTest alloc_tests[] = {
+ cmocka_unit_test(test_will_return_maybe_for_no_calls)
+ ,cmocka_unit_test(test_will_return_maybe_for_one_mock_call)
+ ,cmocka_unit_test(test_will_return_maybe_for_more_than_one_call)
+ };
+
+ (void)argc;
+ (void)argv;
+
+ return cmocka_run_group_tests(alloc_tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_returns_fail.c b/tests/cmocka-1.1.0/tests/test_returns_fail.c
new file mode 100644
index 0000000..81197d3
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_returns_fail.c
@@ -0,0 +1,77 @@
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+int mock_function(void);
+void mock_function_call_times(size_t times, int expectedValue);
+
+int mock_function(void)
+{
+ return (int) mock();
+}
+
+void mock_function_call_times(size_t times, int expectedValue)
+{
+ size_t i;
+ for (i = 0u; i < times; ++i)
+ {
+ assert_int_equal(expectedValue, mock_function());
+ }
+}
+
+static void test_will_return_fails_for_no_calls(void **state)
+{
+ (void) state;
+
+ will_return(mock_function, 32);
+}
+
+static void test_will_return_count_fails_for_unreturned_items(void **state)
+{
+ int value;
+ size_t numberOfCalls;
+
+ (void) state;
+
+ value = rand();
+ numberOfCalls = (size_t) ((rand()) % 20 + 2);
+
+ will_return_count(mock_function, value, numberOfCalls);
+ mock_function_call_times(numberOfCalls - 1u, value);
+}
+
+static void test_will_return_always_fails_for_no_calls(void **state)
+{
+ int value;
+
+ (void) state;
+
+ value = rand();
+
+ will_return_always(mock_function, value);
+}
+
+static int teardown(void **state) {
+ free(*state);
+
+ return 0;
+}
+
+int main(int argc, char **argv) {
+ const struct CMUnitTest alloc_tests[] = {
+ cmocka_unit_test_teardown(test_will_return_fails_for_no_calls, teardown)
+ ,cmocka_unit_test_teardown(test_will_return_count_fails_for_unreturned_items, teardown)
+ ,cmocka_unit_test_teardown(test_will_return_always_fails_for_no_calls, teardown)
+ };
+
+ (void)argc;
+ (void)argv;
+
+ return cmocka_run_group_tests(alloc_tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_setup_fail.c b/tests/cmocka-1.1.0/tests/test_setup_fail.c
new file mode 100644
index 0000000..e3f8df8
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_setup_fail.c
@@ -0,0 +1,54 @@
+#define UNIT_TESTING 1
+
+#include
+#include
+#include
+#include
+
+static int setup_fail(void **state) {
+ *state = NULL;
+
+ /* We need to fail in setup */
+ return -1;
+}
+
+static void int_test_ignored(void **state) {
+ /* should not be called */
+ assert_non_null(*state);
+}
+
+static int setup_ok(void **state) {
+ int *answer;
+
+ answer = malloc(sizeof(int));
+ if (answer == NULL) {
+ return -1;
+ }
+ *answer = 42;
+
+ *state = answer;
+
+ return 0;
+}
+
+/* A test case that does check if an int is equal. */
+static void int_test_success(void **state) {
+ int *answer = *state;
+
+ assert_int_equal(*answer, 42);
+}
+
+static int teardown(void **state) {
+ free(*state);
+
+ return 0;
+}
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test_setup_teardown(int_test_ignored, setup_fail, teardown),
+ cmocka_unit_test_setup_teardown(int_test_success, setup_ok, teardown),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/cmocka-1.1.0/tests/test_skip.c b/tests/cmocka-1.1.0/tests/test_skip.c
new file mode 100644
index 0000000..127161a
--- /dev/null
+++ b/tests/cmocka-1.1.0/tests/test_skip.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include
+#include
+#include
+
+/* A test case that does check if an int is equal. */
+static void test_check_skip(void **state) {
+ (void)state; /* unused */
+
+ skip();
+
+ assert_true(0);
+}
+
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_check_skip),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
+
diff --git a/tests/test.c b/tests/test.c
new file mode 100644
index 0000000..6e91f8a
--- /dev/null
+++ b/tests/test.c
@@ -0,0 +1,10 @@
+#include "tests.h"
+
+
+int main(void) {
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_vector_basic),
+ cmocka_unit_test(test_table_basic)
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/test_table.c b/tests/test_table.c
new file mode 100644
index 0000000..1dee284
--- /dev/null
+++ b/tests/test_table.c
@@ -0,0 +1,20 @@
+#include "tests.h"
+#include "fort.h"
+#include
+
+void test_table_basic(void **state)
+{
+ (void)state;
+ FTABLE *table = ft_create_table();
+
+ int n = ft_hdr_printf(table, "%d , %c|| %s|%f", 3, 'c', "234", 3.14);
+
+// assert_true( n == 4 );
+
+// const char *table_str = ft_to_string(table);
+// const char *table_str_etalon = "| 3 , c| | 234| 3.140000";
+
+// assert_true( strcmp(table_str, table_str_etalon) == 0);
+
+ ft_destroy_table(table);
+}
diff --git a/tests/test_vector.c b/tests/test_vector.c
new file mode 100644
index 0000000..b4936f1
--- /dev/null
+++ b/tests/test_vector.c
@@ -0,0 +1,87 @@
+#include "tests.h"
+#include "../src/fort.c"
+
+
+void test_vector_basic(void **state)
+{
+ (void)state;
+
+ typedef short item_t;
+ const size_t init_capacity = 10;
+ vector_t *vector = create_vector(sizeof(item_t), init_capacity);
+
+ assert_true( vector != NULL );
+ assert_true( vector_size(vector) == 0 );
+ assert_true( vector_capacity(vector) == init_capacity );
+
+ WHEN("Pushing less items than initial capacity") {
+ for (size_t i = 0; i < init_capacity; ++i) {
+ item_t item = i;
+ vector_push(vector, &item);
+ }
+
+ THEN("Then capacity is not changed") {
+ assert_true( vector_size(vector) == init_capacity );
+ assert_true( vector_capacity(vector) == init_capacity );
+ }
+ }
+
+ WHEN("Clearing vector") {
+ vector_clear(vector);
+
+ THEN("Then size == 0") {
+ assert_true( vector_size(vector) == 0 );
+ }
+ }
+
+ WHEN("Pushing more items than initial capacity") {
+ for (size_t i = 0; i < 2 * init_capacity; ++i) {
+ item_t item = 2 * i;
+ vector_push(vector, &item);
+ }
+
+ THEN("Then capacity is increased") {
+ assert_true( vector_size(vector) == 2 * init_capacity );
+ assert_true( vector_capacity(vector) > init_capacity );
+ }
+
+ WHEN("Checking indexes of items") {
+ item_t item = 6;
+ assert_true( vector_index_of(vector, &item) == 3 );
+ item = 14;
+ assert_true( vector_index_of(vector, &item) == 7 );
+ item = 25;
+ assert_true( vector_index_of(vector, &item) == INVALID_VEC_INDEX );
+ }
+
+ WHEN("Checking access to items") {
+ assert_true( *(item_t *)vector_at(vector, 0) == 0 );
+ assert_true( *(item_t *)vector_at(vector, 10) == 20 );
+ assert_true( (item_t *)vector_at(vector, 20) == NULL );
+ }
+
+ WHEN("Erasing items") {
+ assert_true( vector_erase(vector, 20) != F_SUCCESS );
+
+ assert_true( vector_erase(vector, 0) == F_SUCCESS );
+ assert_true( vector_erase(vector, 10) == F_SUCCESS );
+
+ item_t first_item = *(item_t*)vector_at(vector, 0);
+ assert_true( first_item == 2 );
+ item_t item = 6;
+ assert_true( vector_index_of(vector, &item) == 2 );
+ item = 26;
+ assert_true( vector_index_of(vector, &item) == 11 );
+ }
+ }
+
+ WHEN("Clearing vector") {
+ vector_clear(vector);
+
+ THEN("Then size == 0") {
+ assert_true( vector_size(vector) == 0 );
+ }
+ }
+
+ destroy_vector( vector );
+}
diff --git a/tests/tests.h b/tests/tests.h
new file mode 100644
index 0000000..b3977d5
--- /dev/null
+++ b/tests/tests.h
@@ -0,0 +1,17 @@
+#ifndef TESTS_H
+#define TESTS_H
+
+#include
+#include
+#include
+#include
+
+#define WHEN(...)
+#define THEN(...)
+
+
+void test_vector_basic(void **state);
+void test_table_basic(void **state);
+
+
+#endif // TESTS_H