z_mirror/hare-fmm

git clone https://git.raiguard.me/z_mirror/hare-fmm

Caleb HeuerFix test compilationf8eea35

trunk
2.0 KiB87 linesraw
1use strconv;
2
3@test fn version_cmp() void = {
4	// Less than
5	assert(version_cmp(version_parse("1.3.1")!,
6		version_parse("2.0")!) == version_cmpres::LT);
7	// Greater than
8	assert(version_cmp(version_parse("1.5.3")!,
9		version_parse("1.5.2")!) == version_cmpres::GT);
10	// Equal
11	assert(version_cmp(version_parse("1.5")!,
12		version_parse("1.5.0.0")!) == version_cmpres::EQ);
13};
14
15@test fn version_parse() void = {
16	// PASS CASES
17	// Two parts
18	const ver = version_parse("1.0")!;
19	assert(ver[0] == 1);
20	assert(ver[1] == 0);
21	assert(ver[2] == 0);
22	assert(ver[3] == 0);
23	// Three parts
24	const ver = version_parse("1.1.15")!;
25	assert(ver[0] == 1);
26	assert(ver[1] == 1);
27	assert(ver[2] == 15);
28	assert(ver[3] == 0);
29	// Four parts
30	const ver = version_parse("2.3.4.5")!;
31	assert(ver[0] == 2);
32	assert(ver[1] == 3);
33	assert(ver[2] == 4);
34	assert(ver[3] == 5);
35	// Leading zeroes
36	const ver = version_parse("010.001.0100.0000001")!;
37	assert(ver[0] == 10);
38	assert(ver[1] == 1);
39	assert(ver[2] == 100);
40	assert(ver[3] == 1);
41
42	// ERROR CASES
43	// One part
44	const ver = version_parse("1");
45	assert(ver is version_invalid_len);
46	// Five parts
47	const ver = version_parse("1.2.3.4.5");
48	assert(ver is version_invalid_len);
49	// Invalid input
50	const ver = version_parse("foo.bar");
51	assert(ver is strconv::error);
52};
53
54@test fn version_str() void = {
55	// "Normal" version
56	const ver = version_parse("1.2.3.4")!;
57	// With build
58	const out = version_str(ver, true);
59	assert(out == "1.2.3.4");
60	free(out);
61	// Without build
62	const out = version_str(ver, false);
63	assert(out == "1.2.3");
64	free(out);
65
66	// Two parts
67	const ver = version_parse("1.2")!;
68	// With build
69	const out = version_str(ver, true);
70	assert(out == "1.2.0.0");
71	free(out);
72	// Without build
73	const out = version_str(ver, false);
74	assert(out == "1.2.0");
75	free(out);
76
77	// Leading zeroes
78	const ver = version_parse("001.0100.0000000001")!;
79	// With build
80	const out = version_str(ver, true);
81	assert(out == "1.100.1.0");
82	free(out);
83	// Without build
84	const out = version_str(ver, false);
85	assert(out == "1.100.1");
86	free(out);
87};