source: azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/test/unit/core/test_def.c@ 457

Last change on this file since 457 was 457, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-csrc;charset=UTF-8
File size: 2.1 KB
Line 
1#include "test_def.h"
2
3#include "lwip/def.h"
4
5#define MAGIC_UNTOUCHED_BYTE 0x7a
6#define TEST_BUFSIZE 32
7#define GUARD_SIZE 4
8
9/* Setups/teardown functions */
10
11static void
12def_setup(void)
13{
14}
15
16static void
17def_teardown(void)
18{
19}
20
21static void
22def_check_range_untouched(const char *buf, size_t len)
23{
24 size_t i;
25
26 for (i = 0; i < len; i++) {
27 fail_unless(buf[i] == (char)MAGIC_UNTOUCHED_BYTE);
28 }
29}
30
31static void test_def_itoa(int number, const char *expected)
32{
33 char buf[TEST_BUFSIZE];
34 char *test_buf = &buf[GUARD_SIZE];
35
36 size_t exp_len = strlen(expected);
37 fail_unless(exp_len + 4 < (TEST_BUFSIZE - (2 * GUARD_SIZE)));
38
39 memset(buf, MAGIC_UNTOUCHED_BYTE, sizeof(buf));
40 lwip_itoa(test_buf, exp_len + 1, number);
41 def_check_range_untouched(buf, GUARD_SIZE);
42 fail_unless(test_buf[exp_len] == 0);
43 fail_unless(!memcmp(test_buf, expected, exp_len));
44 def_check_range_untouched(&test_buf[exp_len + 1], TEST_BUFSIZE - GUARD_SIZE - exp_len - 1);
45
46 /* check with too small buffer */
47 memset(buf, MAGIC_UNTOUCHED_BYTE, sizeof(buf));
48 lwip_itoa(test_buf, exp_len, number);
49 def_check_range_untouched(buf, GUARD_SIZE);
50 def_check_range_untouched(&test_buf[exp_len + 1], TEST_BUFSIZE - GUARD_SIZE - exp_len - 1);
51
52 /* check with too large buffer */
53 memset(buf, MAGIC_UNTOUCHED_BYTE, sizeof(buf));
54 lwip_itoa(test_buf, exp_len + 4, number);
55 def_check_range_untouched(buf, GUARD_SIZE);
56 fail_unless(test_buf[exp_len] == 0);
57 fail_unless(!memcmp(test_buf, expected, exp_len));
58 def_check_range_untouched(&test_buf[exp_len + 4], TEST_BUFSIZE - GUARD_SIZE - exp_len - 4);
59}
60
61START_TEST(test_def_lwip_itoa)
62{
63 LWIP_UNUSED_ARG(_i);
64
65 test_def_itoa(0, "0");
66 test_def_itoa(1, "1");
67 test_def_itoa(-1, "-1");
68 test_def_itoa(15, "15");
69 test_def_itoa(-15, "-15");
70 test_def_itoa(156, "156");
71 test_def_itoa(1192, "1192");
72 test_def_itoa(-156, "-156");
73}
74END_TEST
75
76/** Create the suite including all tests for this module */
77Suite *
78def_suite(void)
79{
80 testfunc tests[] = {
81 TESTFUNC(test_def_lwip_itoa)
82 };
83 return create_suite("DEF", tests, sizeof(tests)/sizeof(testfunc), def_setup, def_teardown);
84}
Note: See TracBrowser for help on using the repository browser.