Fix license date and refactor test.

This commit is contained in:
rafagafe 2018-09-01 01:25:10 +02:00
parent 4333bf4489
commit 555eeeee15
5 changed files with 47 additions and 34 deletions

View File

@ -5,7 +5,7 @@
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
SPDX-License-Identifier: MIT
Copyright (c) 2013-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Copyright (c) 2016-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -5,7 +5,7 @@
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
SPDX-License-Identifier: MIT
Copyright (c) 2013-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Copyright (c) 2016-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

73
tests.c
View File

@ -5,7 +5,7 @@
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
SPDX-License-Identifier: MIT
Copyright (c) 2013-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Copyright (c) 2016-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -33,11 +33,42 @@
#include <stdint.h>
#include "tiny-json.h"
// ----------------------------------------------------- Test "framework": ---
#define done() return 0
#define fail() return __LINE__
static unsigned int checkqty = 0;
static int checkqty = 0;
#define check( x ) do { ++checkqty; if (!(x)) fail(); } while ( 0 )
struct test {
int(*func)(void);
char const* name;
};
static int test_suit( struct test const* tests, int numtests ) {
printf( "%s", "\n\nTests:\n" );
int failed = 0;
for( int i = 0; i < numtests; ++i ) {
printf( " %02d%s%-25s ", i, ": ", tests[i].name );
int linerr = tests[i].func();
if ( 0 == linerr )
printf( "%s", "OK\n" );
else {
printf( "%s%d\n", "Failed, line: ", linerr );
++failed;
}
}
printf( "\n%s%d\n", "Total checks: ", checkqty );
printf( "%s[ %d / %d ]\r\n\n\n", "Tests PASS: ", numtests - failed, numtests );
return failed;
}
// ----------------------------------------------------------- Unit tests: ---
static int empty( void ) {
json_t pool[6];
unsigned const qty = sizeof pool / sizeof *pool;
@ -332,35 +363,17 @@ int badformat( void ) {
done();
}
struct test {
int(*func)(void);
char const* name;
};
static int test_exec( struct test const* test ) {
int const err = test->func();
if ( err ) {
fprintf( stderr, "%s%s%s%d%s", "Failed test: '", test->name, "' Line: ", err, ".\n" );
return 1;
}
return 0;
}
static struct test const tests[] = {
{ empty, "Empty object and array" },
{ primitive, "Primitive properties" },
{ text, "Text" },
{ array, "Array" },
{ badformat, "Bad format" },
{ goodformats, "Formats" },
};
// --------------------------------------------------------- Execute tests: ---
int main( void ) {
int failed = 0;
unsigned int const qty = sizeof tests / sizeof *tests;
for( unsigned int i = 0; i < qty; ++i )
failed += test_exec( tests + i );
unsigned int const percent = 100.0 * ( qty - failed ) / qty;
printf( "%d%s%d%s", percent, "%. ", checkqty, " checks.\n" );
return failed;
static struct test const tests[] = {
{ empty, "Empty object and array" },
{ primitive, "Primitive properties" },
{ text, "Text" },
{ array, "Array" },
{ badformat, "Bad format" },
{ goodformats, "Formats" },
};
return test_suit( tests, sizeof tests / sizeof *tests );
}

View File

@ -5,7 +5,7 @@
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
SPDX-License-Identifier: MIT
Copyright (c) 2013-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Copyright (c) 2016-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -5,7 +5,7 @@
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
SPDX-License-Identifier: MIT
Copyright (c) 2013-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Copyright (c) 2016-2018 Rafa Garcia <rafagarcia77@gmail.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal