File: test_def.c

package info (click to toggle)
lwip 2.2.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 10,008 kB
  • sloc: ansic: 109,524; cs: 6,714; sh: 115; makefile: 112; perl: 81
file content (84 lines) | stat: -rw-r--r-- 2,146 bytes parent folder | download | duplicates (3)
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
81
82
83
84
#include "test_def.h"

#include "lwip/def.h"

#define MAGIC_UNTOUCHED_BYTE  0x7a
#define TEST_BUFSIZE          32
#define GUARD_SIZE            4

/* Setups/teardown functions */

static void
def_setup(void)
{
}

static void
def_teardown(void)
{
}

static void
def_check_range_untouched(const char *buf, size_t len)
{
  size_t i;

  for (i = 0; i < len; i++) {
    fail_unless(buf[i] == (char)MAGIC_UNTOUCHED_BYTE);
  }
}

static void test_def_itoa(int number, const char *expected)
{
  char buf[TEST_BUFSIZE];
  char *test_buf = &buf[GUARD_SIZE];

  size_t exp_len = strlen(expected);
  fail_unless(exp_len + 4 < (TEST_BUFSIZE - (2 * GUARD_SIZE)));

  memset(buf, MAGIC_UNTOUCHED_BYTE, sizeof(buf));
  lwip_itoa(test_buf, exp_len + 1, number);
  def_check_range_untouched(buf, GUARD_SIZE);
  fail_unless(test_buf[exp_len] == 0);
  fail_unless(!memcmp(test_buf, expected, exp_len));
  def_check_range_untouched(&test_buf[exp_len + 1], TEST_BUFSIZE - GUARD_SIZE - exp_len - 1);

  /* check with too small buffer */
  memset(buf, MAGIC_UNTOUCHED_BYTE, sizeof(buf));
  lwip_itoa(test_buf, exp_len, number);
  def_check_range_untouched(buf, GUARD_SIZE);
  def_check_range_untouched(&test_buf[exp_len + 1], TEST_BUFSIZE - GUARD_SIZE - exp_len - 1);

  /* check with too large buffer */
  memset(buf, MAGIC_UNTOUCHED_BYTE, sizeof(buf));
  lwip_itoa(test_buf, exp_len + 4, number);
  def_check_range_untouched(buf, GUARD_SIZE);
  fail_unless(test_buf[exp_len] == 0);
  fail_unless(!memcmp(test_buf, expected, exp_len));
  def_check_range_untouched(&test_buf[exp_len + 4], TEST_BUFSIZE - GUARD_SIZE - exp_len - 4);
}

START_TEST(test_def_lwip_itoa)
{
  LWIP_UNUSED_ARG(_i);

  test_def_itoa(0, "0");
  test_def_itoa(1, "1");
  test_def_itoa(-1, "-1");
  test_def_itoa(15, "15");
  test_def_itoa(-15, "-15");
  test_def_itoa(156, "156");
  test_def_itoa(1192, "1192");
  test_def_itoa(-156, "-156");
}
END_TEST

/** Create the suite including all tests for this module */
Suite *
def_suite(void)
{
  testfunc tests[] = {
    TESTFUNC(test_def_lwip_itoa)
  };
  return create_suite("DEF", tests, sizeof(tests)/sizeof(testfunc), def_setup, def_teardown);
}