Sha256: b6dfafd6e7524f643c6a1fd1f070cd264d13a024cea37b122f228846af2c20af

Contents?: true

Size: 1.83 KB

Versions: 2

Compression:

Stored size: 1.83 KB

Contents

/* =========================================================================
    Ceedling - Test-Centered Build System for C
    ThrowTheSwitch.org
    Copyright (c) 2010-25 Mike Karlesky, Mark VanderVoord, & Greg Williams
    SPDX-License-Identifier: MIT
========================================================================= */

#ifdef TEST

#include "unity.h"

#include "supervisor.h"

void setUp(void)
{
}

void tearDown(void)
{
}

void test_supervisor_can_DelegateProperlyToLeastBusyWorker(void)
{
    int loads1[] = { 1, 2, 3, 4 };
    int loads2[] = { 2, 1, 3, 4 };
    int loads3[] = { 2, 1, 0, 8 };
    int loads4[] = { 9, 9, 7, 0 };
    int loads5[] = { 0, 0, 1, 4 };

    TEST_ASSERT_EQUAL(0, supervisor_delegate(loads1, 2));
    TEST_ASSERT_EQUAL(0, supervisor_delegate(loads1, 4));
    TEST_ASSERT_EQUAL(1, supervisor_delegate(loads2, 4));
    TEST_ASSERT_EQUAL(2, supervisor_delegate(loads3, 4));
    TEST_ASSERT_EQUAL(2, supervisor_delegate(loads3, 3));
    TEST_ASSERT_EQUAL(3, supervisor_delegate(loads4, 4));
    TEST_ASSERT_EQUAL(0, supervisor_delegate(loads5, 4));
    TEST_ASSERT_EQUAL(0, supervisor_delegate(loads5, 2));
}

void test_supervisor_can_TrackProgressProperlyAcrossAllWorkers(void)
{
    int loads1[] = { 1, 2, 3, 4 };
    int loads2[] = { 2, 1, 3, 4 };
    int loads3[] = { 2, 1, 0, 8 };
    int loads4[] = { 9, 9, 7, 0 };
    int loads5[] = { 0, 0, 1, 4 };

    TEST_ASSERT_EQUAL(3,  supervisor_progress(loads1, 2));
    TEST_ASSERT_EQUAL(10, supervisor_progress(loads1, 4));
    TEST_ASSERT_EQUAL(10, supervisor_progress(loads2, 4));
    TEST_ASSERT_EQUAL(11, supervisor_progress(loads3, 4));
    TEST_ASSERT_EQUAL(3,  supervisor_progress(loads3, 3));
    TEST_ASSERT_EQUAL(25, supervisor_progress(loads4, 4));
    TEST_ASSERT_EQUAL(5,  supervisor_progress(loads5, 4));
    TEST_ASSERT_EQUAL(0,  supervisor_progress(loads5, 2));
}

#endif 

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ceedling-1.0.1 plugins/dependencies/example/supervisor/test/test_supervisor.c
ceedling-1.0.0 plugins/dependencies/example/supervisor/test/test_supervisor.c