Summary Files Commits Branches @commit @diff @stats
path: root / fmt_test.c
blob: 7f3e0a28605e23aa40091311de45bfc2ba711a1d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser
// Copyright © 2019-2021 Badwolf Authors <https://hacktivis.me/projects/badwolf>
// SPDX-License-Identifier: BSD-3-Clause

#include "fmt.h"

#include <glib.h>

static void
fmt_context_id_test(void)
{
	struct
	{
		const char *expect;
		uint64_t context_id;
	} cases[] = {
	    //
	    {"A: ", 0},
	    {"B: ", 1},
	    {"Y: ", 24},
	    {"Z: ", 25},
	    {"AA: ", 26},
	    {"AB: ", 27},
	    {"AZ: ", 51},
	    {"BA: ", 52},
	    {"BB: ", 53},
	    {"QKWW: ", 4294967296},           // 2^32
	    {"JFHI: ", 9223372036854775808},  // 2^63
	    {"TLPO: ", 18446744073709551614}, // 2^64 -2
	    {"TLPP: ", 18446744073709551615}, // 2^64 -1 (aka UINT64_MAX)
	};

	for(size_t i = 0; i < sizeof(cases) / sizeof(cases[0]); i++)
	{
		g_info("fmt_context_id(%lu)", cases[i].context_id);
		/* flawfinder: ignore. bound checks are done */
		char got[BADWOLF_CTX_SIZ] = {0, 0, 0, 0, 0, 0, 0};

		fmt_context_id(cases[i].context_id, got);

		if(strncmp(got, cases[i].expect, BADWOLF_CTX_SIZ) != 0)
		{
			g_error("expected: \"%s\", got: \"%s\"", cases[i].expect, got);
		}
	}
}

int
main(int argc, char *argv[])
{
	g_test_init(&argc, &argv, NULL);

	g_test_add_func("/fmt_context_id/test", fmt_context_id_test);

	return g_test_run();
}