Main: examples/: Enable assertions in all examples

This commit is contained in:
Alex Kotov 2022-06-16 20:35:09 +03:00
parent 4740e6d00b
commit 08029c2df0
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
13 changed files with 41 additions and 52 deletions

View File

@ -18,7 +18,7 @@ assert_SOURCES = assert.c
if WITH_CMDLINE if WITH_CMDLINE
TESTS += cmdline TESTS += cmdline
cmdline_LDADD = $(top_builddir)/libkernaux.la cmdline_LDADD = $(top_builddir)/libkernaux.la
cmdline_SOURCES = cmdline.c cmdline_SOURCES = main.c cmdline.c
endif endif
########### ###########
@ -29,7 +29,7 @@ if WITH_PRINTF
if WITH_IO if WITH_IO
TESTS += fprintf TESTS += fprintf
fprintf_LDADD = $(top_builddir)/libkernaux.la fprintf_LDADD = $(top_builddir)/libkernaux.la
fprintf_SOURCES = fprintf.c fprintf_SOURCES = main.c fprintf.c
endif endif
endif endif
@ -41,7 +41,7 @@ if WITH_PRINTF
if WITH_IO if WITH_IO
TESTS += fprintf_va TESTS += fprintf_va
fprintf_va_LDADD = $(top_builddir)/libkernaux.la fprintf_va_LDADD = $(top_builddir)/libkernaux.la
fprintf_va_SOURCES = fprintf_va.c fprintf_va_SOURCES = main.c fprintf_va.c
endif endif
endif endif
@ -52,7 +52,7 @@ endif
if WITH_IO if WITH_IO
TESTS += io_memstore TESTS += io_memstore
io_memstore_LDADD = $(top_builddir)/libkernaux.la io_memstore_LDADD = $(top_builddir)/libkernaux.la
io_memstore_SOURCES = io_memstore.c io_memstore_SOURCES = main.c io_memstore.c
endif endif
########## ##########
@ -62,7 +62,7 @@ endif
if WITH_MEMMAP if WITH_MEMMAP
TESTS += memmap TESTS += memmap
memmap_LDADD = $(top_builddir)/libkernaux.la memmap_LDADD = $(top_builddir)/libkernaux.la
memmap_SOURCES = memmap.c memmap_SOURCES = main.c memmap.c
endif endif
######## ########
@ -72,7 +72,7 @@ endif
if WITH_NTOA if WITH_NTOA
TESTS += ntoa TESTS += ntoa
ntoa_LDADD = $(top_builddir)/libkernaux.la ntoa_LDADD = $(top_builddir)/libkernaux.la
ntoa_SOURCES = ntoa.c ntoa_SOURCES = main.c ntoa.c
endif endif
######### #########
@ -90,7 +90,7 @@ panic_SOURCES = panic.c
if WITH_PFA if WITH_PFA
TESTS += pfa TESTS += pfa
pfa_LDADD = $(top_builddir)/libkernaux.la pfa_LDADD = $(top_builddir)/libkernaux.la
pfa_SOURCES = pfa.c pfa_SOURCES = main.c pfa.c
endif endif
############## ##############
@ -100,7 +100,7 @@ endif
if WITH_PRINTF_FMT if WITH_PRINTF_FMT
TESTS += printf_fmt TESTS += printf_fmt
printf_fmt_LDADD = $(top_builddir)/libkernaux.la printf_fmt_LDADD = $(top_builddir)/libkernaux.la
printf_fmt_SOURCES = printf_fmt.c printf_fmt_SOURCES = main.c printf_fmt.c
endif endif
############ ############
@ -110,7 +110,7 @@ endif
if WITH_PRINTF if WITH_PRINTF
TESTS += snprintf TESTS += snprintf
snprintf_LDADD = $(top_builddir)/libkernaux.la snprintf_LDADD = $(top_builddir)/libkernaux.la
snprintf_SOURCES = snprintf.c snprintf_SOURCES = main.c snprintf.c
endif endif
############### ###############
@ -120,7 +120,7 @@ endif
if WITH_PRINTF if WITH_PRINTF
TESTS += snprintf_va TESTS += snprintf_va
snprintf_va_LDADD = $(top_builddir)/libkernaux.la snprintf_va_LDADD = $(top_builddir)/libkernaux.la
snprintf_va_SOURCES = snprintf_va.c snprintf_va_SOURCES = main.c snprintf_va.c
endif endif
############### ###############
@ -130,5 +130,5 @@ endif
if WITH_UNITS if WITH_UNITS
TESTS += units_human TESTS += units_human
units_human_LDADD = $(top_builddir)/libkernaux.la units_human_LDADD = $(top_builddir)/libkernaux.la
units_human_SOURCES = units_human.c units_human_SOURCES = main.c units_human.c
endif endif

View File

@ -8,7 +8,7 @@
static const char *const cmdline = "foo bar\\ baz \"car cdr\""; static const char *const cmdline = "foo bar\\ baz \"car cdr\"";
int main() void example_main()
{ {
char error_msg[KERNAUX_CMDLINE_ERROR_MSG_SIZE_MAX]; char error_msg[KERNAUX_CMDLINE_ERROR_MSG_SIZE_MAX];
size_t argc; size_t argc;
@ -30,6 +30,4 @@ int main()
assert(strcmp(argv[0], "foo") == 0); assert(strcmp(argv[0], "foo") == 0);
assert(strcmp(argv[1], "bar baz") == 0); assert(strcmp(argv[1], "bar baz") == 0);
assert(strcmp(argv[2], "car cdr") == 0); assert(strcmp(argv[2], "car cdr") == 0);
return 0;
} }

View File

@ -20,7 +20,7 @@ static void my_putchar(const char chr, void *arg)
buffer[buffer_index++] = chr; buffer[buffer_index++] = chr;
} }
int main() void example_main()
{ {
struct KernAux_File file = KernAux_File_create(my_putchar); struct KernAux_File file = KernAux_File_create(my_putchar);
const int result = kernaux_fprintf( const int result = kernaux_fprintf(
@ -32,5 +32,4 @@ int main()
); );
assert((size_t)result == strlen(buffer)); assert((size_t)result == strlen(buffer));
assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0); assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0);
return 0;
} }

View File

@ -30,10 +30,9 @@ static int my_printf(const char *const format, ...)
return result; return result;
} }
int main() void example_main()
{ {
const int result = my_printf("Hello, %s! Session ID: %u.", "Alex", 123); const int result = my_printf("Hello, %s! Session ID: %u.", "Alex", 123);
assert((size_t)result == strlen(buffer)); assert((size_t)result == strlen(buffer));
assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0); assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0);
return 0;
} }

View File

@ -1,26 +1,14 @@
#include <kernaux/assert.h>
#include <kernaux/io.h> #include <kernaux/io.h>
#include <assert.h> #include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h> #include <string.h>
#define BUFFER_SIZE 4096 #define BUFFER_SIZE 4096
static char buffer[BUFFER_SIZE]; static char buffer[BUFFER_SIZE];
static void assert_cb(const char *file, const int line, const char *msg) void example_main()
{ {
fprintf(stderr, "%s:%i:%s\n", file, line, msg);
abort();
}
int main()
{
kernaux_assert_cb = assert_cb;
struct KernAux_MemStore mem_store = struct KernAux_MemStore mem_store =
KernAux_MemStore_create(buffer, BUFFER_SIZE); KernAux_MemStore_create(buffer, BUFFER_SIZE);
@ -33,6 +21,4 @@ int main()
assert(KernAux_Store_put_char(&mem_store.store, '\0') == '\0'); assert(KernAux_Store_put_char(&mem_store.store, '\0') == '\0');
assert(strncmp(buffer, "Hello!", BUFFER_SIZE) == 0); assert(strncmp(buffer, "Hello!", BUFFER_SIZE) == 0);
return 0;
} }

19
examples/main.c Normal file
View File

@ -0,0 +1,19 @@
#include <kernaux/assert.h>
#include <stdio.h>
#include <stdlib.h>
void example_main();
static void assert_cb(const char *file, const int line, const char *msg)
{
fprintf(stderr, "%s:%i:%s\n", file, line, msg);
abort();
}
int main()
{
kernaux_assert_cb = assert_cb;
example_main();
exit(EXIT_SUCCESS);
}

View File

@ -9,7 +9,7 @@
#define SIZE_512MiB ( 512 * 1024 * 1024) #define SIZE_512MiB ( 512 * 1024 * 1024)
#define SIZE_1GiB (1024 * 1024 * 1024) #define SIZE_1GiB (1024 * 1024 * 1024)
int main() void example_main()
{ {
KernAux_MemMap memmap = { KernAux_MemMap_create(SIZE_1GiB) }; KernAux_MemMap memmap = { KernAux_MemMap_create(SIZE_1GiB) };
@ -42,6 +42,4 @@ int main()
assert( KernAux_MemMap_entry_by_addr(memmap, SIZE_1GiB - 3 )->size == SIZE_512MiB); assert( KernAux_MemMap_entry_by_addr(memmap, SIZE_1GiB - 3 )->size == SIZE_512MiB);
assert( KernAux_MemMap_entry_by_addr(memmap, SIZE_1GiB - 2 )->end == SIZE_1GiB - 1); assert( KernAux_MemMap_entry_by_addr(memmap, SIZE_1GiB - 2 )->end == SIZE_1GiB - 1);
assert( KernAux_MemMap_entry_by_addr(memmap, SIZE_1GiB - 1 )->limit == SIZE_1GiB); assert( KernAux_MemMap_entry_by_addr(memmap, SIZE_1GiB - 1 )->limit == SIZE_1GiB);
return 0;
} }

View File

@ -9,7 +9,7 @@ static const char *str_end(const char *str)
for (;; ++str) if (*str == '\0') return str; for (;; ++str) if (*str == '\0') return str;
} }
int main() void example_main()
{ {
// kernaux_utoa // kernaux_utoa
{ {
@ -278,6 +278,4 @@ int main()
assert(strcmp(buffer, "-0x123") == 0); assert(strcmp(buffer, "-0x123") == 0);
assert(end == str_end(buffer)); assert(end == str_end(buffer));
} }
return 0;
} }

View File

@ -6,7 +6,7 @@
// management in kernel without PFA. // management in kernel without PFA.
struct KernAux_PFA pfa; struct KernAux_PFA pfa;
int main() void example_main()
{ {
// In the earliest stage of kernel initialization mark all pages as // In the earliest stage of kernel initialization mark all pages as
// unavailable because you don't have memory map yet. // unavailable because you don't have memory map yet.
@ -68,6 +68,4 @@ int main()
KernAux_PFA_free_pages(&pfa, page_addr, 123); KernAux_PFA_free_pages(&pfa, page_addr, 123);
assert(KernAux_PFA_is_available(&pfa, page_addr)); assert(KernAux_PFA_is_available(&pfa, page_addr));
} }
return 0;
} }

View File

@ -2,7 +2,7 @@
#include <assert.h> #include <assert.h>
int main() void example_main()
{ {
{ {
const char *format = "s"; const char *format = "s";
@ -89,6 +89,4 @@ int main()
assert(spec.type == KERNAUX_PRINTF_FMT_TYPE_INT); assert(spec.type == KERNAUX_PRINTF_FMT_TYPE_INT);
assert(spec.base == 10); assert(spec.base == 10);
} }
return 0;
} }

View File

@ -7,7 +7,7 @@
static char buffer[BUFFER_SIZE]; static char buffer[BUFFER_SIZE];
int main() void example_main()
{ {
const int result = kernaux_snprintf( const int result = kernaux_snprintf(
buffer, buffer,
@ -18,5 +18,4 @@ int main()
); );
assert((size_t)result == strlen(buffer)); assert((size_t)result == strlen(buffer));
assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0); assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0);
return 0;
} }

View File

@ -16,10 +16,9 @@ static int my_snprintf(const char *const format, ...)
return result; return result;
} }
int main() void example_main()
{ {
const int result = my_snprintf("Hello, %s! Session ID: %u.", "Alex", 123); const int result = my_snprintf("Hello, %s! Session ID: %u.", "Alex", 123);
assert((size_t)result == strlen(buffer)); assert((size_t)result == strlen(buffer));
assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0); assert(strcmp(buffer, "Hello, Alex! Session ID: 123.") == 0);
return 0;
} }

View File

@ -3,7 +3,7 @@
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
int main() void example_main()
{ {
char buffer[256]; char buffer[256];
@ -42,6 +42,4 @@ int main()
assert(strcmp(buffer, "123 GB") == 0); assert(strcmp(buffer, "123 GB") == 0);
kernaux_units_human_bin(123, KERNAUX_UNIT_BYTE, KERNAUX_UNITPFX_GIBI, buffer, sizeof(buffer)); kernaux_units_human_bin(123, KERNAUX_UNIT_BYTE, KERNAUX_UNITPFX_GIBI, buffer, sizeof(buffer));
assert(strcmp(buffer, "123 GiB") == 0); assert(strcmp(buffer, "123 GiB") == 0);
return 0;
} }