1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

added unit tests for utils

This commit is contained in:
Steffen Vogel 2016-10-30 18:38:47 -04:00
parent edd58f9fd2
commit d50f5ea694
4 changed files with 67 additions and 3 deletions

View file

@ -180,7 +180,7 @@ struct version {
};
/** Compare two versions. */
int version_compare(struct version *a, struct version *b);
int version_cmp(struct version *a, struct version *b);
/** Parse a dotted version string. */
int version_parse(const char *s, struct version *v);

View file

@ -101,7 +101,7 @@ int kernel_has_version(int maj, int min)
if (version_parse(uts.release, &current))
return -1;
return version_compare(&current, &required) < 0;
return version_cmp(&current, &required) < 0;
}
int kernel_is_rt()

View file

@ -35,7 +35,7 @@ int version_parse(const char *s, struct version *v)
return sscanf(s, "%u.%u", &v->major, &v->minor) != 2;
}
int version_compare(struct version *a, struct version *b) {
int version_cmp(struct version *a, struct version *b) {
int major = a->major - b->major;
int minor = a->minor - b->minor;

64
tests/utils.c Normal file
View file

@ -0,0 +1,64 @@
/** Unit tests for utilities
*
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
* @copyright 2014-2016, Institute for Automation of Complex Power Systems, EONERC
* This file is part of VILLASnode. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*********************************************************************************/
#include <criterion/criterion.h>
#include "utils.h"
Test(utils, is_aligned)
{
/* Positive */
cr_assert(IS_ALIGNED(1, 1));
cr_assert(IS_ALIGNED(128, 64));
/* Negative */
cr_assert(!IS_ALIGNED(55, 16));
cr_assert(!IS_ALIGNED(55, 55));
cr_assert(!IS_ALIGNED(1128, 256));
}
Test(utils, ceil)
{
cr_assert_eq(CEIL(10, 3), 4);
cr_assert_eq(CEIL(10, 5), 2);
cr_assert_eq(CEIL(4, 3), 2);
}
Test(utils, is_pow2)
{
/* Positive */
cr_assert(IS_POW2(1));
cr_assert(IS_POW2(2));
cr_assert(IS_POW2(64));
/* Negative */
cr_assert(!IS_POW2(0));
cr_assert(!IS_POW2(3));
cr_assert(!IS_POW2(11111));
cr_assert(!IS_POW2(-1));
}
struct version_param {
const char *v1, *v2;
int result;
};
Test(utils, version)
{
struct version v1, v2, v3, v4;
version_parse("1.2", &v1);
version_parse("1.3", &v2);
version_parse("55", &v3);
version_parse("66", &v4);
cr_assert_lt(version_cmp(&v1, &v2), 0);
cr_assert_eq(version_cmp(&v1, &v1), 0);
cr_assert_gt(version_cmp(&v2, &v1), 0);
cr_assert_lt(version_cmp(&v3, &v4), 0);
}