-
Notifications
You must be signed in to change notification settings - Fork 0
/
int2fpstr_kunit.c
80 lines (69 loc) · 2.12 KB
/
int2fpstr_kunit.c
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <kunit/test.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/int2fpstr.h>
static void should_return_2345_without_errors(struct kunit *test)
{
char *dest = kmalloc(size_alloc(2345), GFP_KERNEL);
int2fpstr(2345, 2, dest);
int ret = strncmp(dest, "23.45", 5);
KUNIT_EXPECT_EQ(test, 0, ret);
kfree(dest);
}
static void should_return_2_without_errors_and_float_point(struct kunit *test)
{
char *dest = kmalloc(size_alloc(2), GFP_KERNEL);
int2fpstr(2, 0, dest);
int ret = strncmp(dest, "2", 1);
KUNIT_EXPECT_EQ(test, 0, ret);
kfree(dest);
}
static void should_return_0_without_errors(struct kunit *test)
{
char *dest = kmalloc(size_alloc(1), GFP_KERNEL);
int2fpstr(0, 0, dest);
int ret = strncmp(dest, "0", 1);
KUNIT_EXPECT_EQ(test, 0, ret);
kfree(dest);
}
static void should_return_12_without_errors_and_float_point(struct kunit *test)
{
char *dest = kmalloc(size_alloc(12), GFP_KERNEL);
int2fpstr(12, 0, dest);
int ret = strncmp(dest, "12", 2);
KUNIT_EXPECT_EQ(test, 0, ret);
kfree(dest);
}
static void should_return_12_without_errors(struct kunit *test)
{
char *dest = kmalloc(size_alloc(12) + 1, GFP_KERNEL);
int2fpstr(-12, 0, dest);
int ret = strncmp(dest, "-12", 3);
KUNIT_EXPECT_EQ(test, 0, ret);
kfree(dest);
}
static void should_return_125_without_errors(struct kunit *test)
{
char *dest = kmalloc(size_alloc(125), GFP_KERNEL);
int2fpstr(-125, 1, dest);
int ret = strncmp(dest, "-12.5", 5);
KUNIT_EXPECT_EQ(test, 0, ret);
kfree(dest);
}
static struct kunit_case int_to_fp_str_test_case[] = {
KUNIT_CASE(should_return_12_without_errors_and_float_point),
KUNIT_CASE(should_return_0_without_errors),
KUNIT_CASE(should_return_2_without_errors_and_float_point),
KUNIT_CASE(should_return_2345_without_errors),
KUNIT_CASE(should_return_12_without_errors),
KUNIT_CASE(should_return_125_without_errors),
{ /* sentinel */ }
};
static struct kunit_suite int_to_fp_str_test = {
.name = "int2fpstr",
.test_cases = int_to_fp_str_test_case
};
kunit_test_suite(int_to_fp_str_test);
MODULE_AUTHOR("Guilherme Giacomo Simoes <[email protected]>");
MODULE_LICENSE("GPL");