diff options
| author | Sander Vrijders <sander.vrijders@ugent.be> | 2017-08-17 16:09:24 +0000 | 
|---|---|---|
| committer | dimitri staessens <dimitri.staessens@ugent.be> | 2017-08-17 16:09:24 +0000 | 
| commit | eefae235dd7af96eef3dc4f82f706170c379d260 (patch) | |
| tree | 3959a7206bfa3b5de2881d4404a2746a75aaefda /src/ipcpd/tests | |
| parent | c7cb10810c447579cb20a8bc99049baeeb8e2065 (diff) | |
| parent | 4d9c4025222e19dac9a90cabe8bd886e47959ad6 (diff) | |
| download | ouroboros-eefae235dd7af96eef3dc4f82f706170c379d260.tar.gz ouroboros-eefae235dd7af96eef3dc4f82f706170c379d260.zip | |
Merged in sandervrijders/ouroboros/be-frct (pull request #555)
lib: Add basic FRCT mechanisms
Diffstat (limited to 'src/ipcpd/tests')
| -rw-r--r-- | src/ipcpd/tests/CMakeLists.txt | 34 | ||||
| -rw-r--r-- | src/ipcpd/tests/timerwheel_test.c | 104 | 
2 files changed, 0 insertions, 138 deletions
| diff --git a/src/ipcpd/tests/CMakeLists.txt b/src/ipcpd/tests/CMakeLists.txt deleted file mode 100644 index 9b5eeaa1..00000000 --- a/src/ipcpd/tests/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -get_filename_component(CURRENT_SOURCE_PARENT_DIR -  ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) -get_filename_component(CURRENT_BINARY_PARENT_DIR -  ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY) - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -include_directories(${CURRENT_SOURCE_PARENT_DIR}) -include_directories(${CURRENT_BINARY_PARENT_DIR}) - -include_directories(${CMAKE_SOURCE_DIR}/include) -include_directories(${CMAKE_BINARY_DIR}/include) - -get_filename_component(PARENT_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) -get_filename_component(PARENT_DIR ${PARENT_PATH} NAME) - -create_test_sourcelist(${PARENT_DIR}_tests test_suite.c -  # Add new tests here -  timerwheel_test.c -  ) - -add_executable(${PARENT_DIR}_test EXCLUDE_FROM_ALL ${${PARENT_DIR}_tests}) -target_link_libraries(${PARENT_DIR}_test ouroboros) - -add_dependencies(check ${PARENT_DIR}_test) - -set(tests_to_run ${${PARENT_DIR}_tests}) -remove(tests_to_run test_suite.c) - -foreach (test ${tests_to_run}) -  get_filename_component(test_name ${test} NAME_WE) -  add_test(${test_name} ${C_TEST_PATH}/${PARENT_DIR}_test ${test_name}) -endforeach (test) diff --git a/src/ipcpd/tests/timerwheel_test.c b/src/ipcpd/tests/timerwheel_test.c deleted file mode 100644 index 6ba1b890..00000000 --- a/src/ipcpd/tests/timerwheel_test.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Ouroboros - Copyright (C) 2016 - 2017 - * - * Test of the timer wheel - * - *    Dimitri Staessens <dimitri.staessens@ugent.be> - *    Sander Vrijders   <sander.vrijders@ugent.be> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., http://www.fsf.org/about/contact/. - */ - -#include "timerwheel.c" - -#include <pthread.h> -#include <time.h> -#include <stdlib.h> -#include <stdio.h> - -#define MAX_ELEMENTS   100 -#define MAX_RESOLUTION 10  /* ms */ -#define MAX_ADDITIONS  1000 - -int total; - -int add(void * o) -{ -        total += *((int *) o); -        return 0; -} - -int timerwheel_test(int argc, char ** argv) -{ -        struct timerwheel * tw; -        long resolution; -        long elements; -        struct timespec wait; - -        int additions; - -        int check_total = 0; - -        int i; - -        (void) argc; -        (void) argv; - -        total = 0; - -        srand(time(NULL)); - -        resolution = rand() % (MAX_RESOLUTION - 1) + 1; -        elements = rand() % (MAX_ELEMENTS - 10) + 10; - -        tw = timerwheel_create(resolution, resolution * elements); -        if (tw == NULL) { -                printf("Failed to create timerwheel.\n"); -                return -1; -        } - -        wait.tv_sec = (resolution * elements) / 1000; -        wait.tv_nsec = ((resolution * elements) % 1000) * MILLION; - -        additions = rand() % MAX_ADDITIONS + 1000; - -        for (i = 0; i < additions; ++i) { -                int delay = rand() % (resolution * elements); -                int var = rand() % 5; -                check_total += var; -                if (timerwheel_add(tw, -                                   (void (*)(void *)) add, -                                   (void *) &var, -                                   sizeof(var), -                                   delay)) { -                        printf("Failed to add function."); -                        return -1; -                } -        } - -        nanosleep(&wait, NULL); - -        /* On some systems and VMs, the scheduler may be too slow. */ -        if (total != check_total) -                nanosleep(&wait, NULL); - -        timerwheel_destroy(tw); - -        if (total != check_total) { -                printf("Totals do not match.\n"); -                return -1; -        } - -        return 0; -} | 
