LwIP的编译记录

1.准备好文件
[plh@localhost LwIP_v2]$ ls
contrib-2.1.0.zip lwip-2.1.2.zip
[plh@localhost LwIP_v2]$ unzip contrib-2.1.0.zip
[plh@localhost LwIP_v2]$ unzip lwip-2.1.2.zip
[plh@localhost LwIP_v2]$ mv lwip-2.1.2 lwip

2 调整好部分目录

2.1 创建LwIP测试例程的编译目录

1 [plh@localhost LwIP_v2]$ mkdir lwip_test_compile

2.2 [复制LwIP测试例程到目标目录]

1 [plh@localhost LwIP_v2]$ cp -r lwip/test/unit/ lwip_test_compile/

2.3[重命名无关的目录]

1 [plh@localhost LwIP_v2]$ mv lwip_test_compile/unit/arch/ lwip_test_compile/unit/arch.backup

3.修改相关的文件

3.1 修改 contrib-2.1.0/ports/unix/example_app/../../../examples/example_app/lwipopts.h

1 [修改 contrib-2.1.0/ports/unix/example_app/../../../examples/example_app/lwipopts.h]
2 #define PPP_SUPPORT             0  // 以前是1
3 #define NO_SYS                  1  // 以前是0

3.2 修改 lwip/src/include/lwip/snmp.h

1 [修改 lwip/src/include/lwip/snmp.h 以解决 sys_now() 未定义的声明 错误]
2 #ifndef MIB2_COPY_SYSUPTIME_TO
3 #if NO_SYS /*New Line*/
4 #define MIB2_COPY_SYSUPTIME_TO(ptrToVal) (*(ptrToVal) = (1 / 10)) /*New Line*/
5 #else /*New Line*/
6 #define MIB2_COPY_SYSUPTIME_TO(ptrToVal) (*(ptrToVal) = (sys_now() / 10))
7 #endif /*New Line*/
8 #endif

3.3 修改 lwip/src/core/timeouts.c

1 [修改 lwip/src/core/timeouts.c 以解决 sys_now() 未定义的声明 错误]
2 #if NO_SYS /*New Line*/
3 u32_t sys_now(void){ /*New Line*/
4     return 1; /*New Line*/
5 } /*New Line*/
6 #endif /*New Line*/

3.4 [修改lwip_test_compile/unit/lwip_check.h中关于tcase_add_named_test的定义]

1 /* Modified function from check.h, supplying function name */
2 /*
3 #define tcase_add_named_test(tc,tf) 
4    _tcase_add_test((tc),(tf).func,(tf).name,0, 0, 0, 1)
5 */
6 #define tcase_add_named_test(tc,tf)    // New Line
7    _tcase_add_test((tc),(tf).func,0, 0, 0, 1) // New Line

3.5 [修改lwip_test_compile/unit/lwip_check.h 增加如下行]

1 extern unsigned int lwip_sys_now;

3.6 [修改lwip_test_compile/unit/lwip_unittests.c 增加如下行]

1 unsigned int lwip_sys_now = 0;

3.7 [修改lwip_test_compile/unit/lwip_unittests.c, 屏蔽掉如下功能测试]

 1 suite_getter_fn* suites[] = {
 2 //  ip4_suite,
 3 //  ip6_suite,
 4     udp_suite,
 5 //  tcp_suite,
 6     tcp_oos_suite,
 7     def_suite,
 8 //  mem_suite,
 9     netif_suite,
10 //  pbuf_suite,
11 //  timers_suite,
12 //  etharp_suite,
13     dhcp_suite,
14     mdns_suite
15 //  mqtt_suite,
16 //  sockets_suite
17 };
18  

3.8 [修改 lwip_test_compile/unit/lwip_unittests.c ]

 1 void lwip_check_ensure_no_alloc(unsigned int skip)
 2 {
 3 #if 0 /*New Line*/
 4   int i;
 5   unsigned int mask;
 6 
 7   if (!(skip & SKIP_HEAP)) {
 8     fail_unless(lwip_stats.mem.used == 0);
 9   }
10   for (i = 0, mask = 1; i < MEMP_MAX; i++, mask <<= 1) {
11     if (!(skip & mask)) {
12       fail_unless(lwip_stats.memp[i]->used == 0);
13     }
14   }
15 #endif /*New Line*/
16 }

4. [重新编译lwip的静态库文件]

 1 /*屏蔽*/
 2 [plh@localhost LwIP_v2]$ vi contrib-2.1.0/ports/CMakeCommon.cmake
 3 ./ports/CMakeCommon.cmake:30:    -Werror 
 4 ./ports/CMakeCommon.cmake:48:    -Wlogical-not-parentheses 
 5 ./ports/CMakeCommon.cmake:65:    -Wc90-c99-compat 
 6 /*解决httpc_state_t的重定义问题*/
 7 [plh@localhost LwIP_v2]$ vi lwip/src/apps/http/http_client.c
 8 [plh@localhost LwIP_v2]$ vi lwip/src/include/lwip/apps/http_client.h
 9 /*解决找不到头文件"lwipcfg.h"的问题*/
10 [plh@localhost LwIP_v2]$ mv contrib-2.1.0/examples/example_app/lwipcfg.h.example contrib-2.1.0/examples/example_app/lwipcfg.h
11 /*开始编译*/
12 [plh@localhost LwIP_v2]$ mkdir contrib-2.1.0/ports/unix/example_app/build
13 [plh@localhost LwIP_v2]$ cd contrib-2.1.0/ports/unix/example_app/build
14 [plh@localhost build]$ cmake ..
15 [plh@localhost build]$ make
16 /*编译成功后的输出文件*/
17 [plh@localhost build]$ ls -al lib*
18 -rw-rw-r--. 1 plh plh  771470 12月 23 19:16 liblwipallapps.a
19 -rw-rw-r--. 1 plh plh   17648 12月 23 19:16 liblwipcontribaddons.a
20 -rw-rw-r--. 1 plh plh   73976 12月 23 19:16 liblwipcontribapps.a
21 -rw-rw-r--. 1 plh plh   75650 12月 23 19:16 liblwipcontribexamples.a
22 -rw-rw-r--. 1 plh plh   68446 12月 23 19:16 liblwipcontribportunix.a
23 -rw-rw-r--. 1 plh plh 1414320 12月 23 19:15 liblwipcore.a
24 [plh@localhost build]$ ls -al example_app
25 -rwxrwxr-x. 1 plh plh 523376 12月 23 19:16 example_app
26 [plh@localhost build]$ ls -al makefsdata
27 -rwxrwxr-x. 1 plh plh 58208 12月 23 19:16 makefsdata
LwIP的静态库编译

5. [创建好如下结构的目录 ]

1 [plh@localhost LwIP_v2]$ cd lwip_test_compile
2 [plh@localhost lwip_test_compile]$ mkdir lib
3 [plh@localhost lwip_test_compile]$ mkdir objs
4 [plh@localhost lwip_test_compile]$ touch Makefile

6. [把编译好的check头文件和库 lwip静态库复制到lib目录]

 1 [plh@localhost lwip_test_compile]$ ls -al lib/
 2 总用量 2760
 3 drwxrwxr-x. 2 plh plh    4096 12月 23 19:28 .
 4 drwxrwxr-x. 5 plh plh      57 12月 23 19:36 ..
 5 -rw-rw-r--. 1 plh plh   72791 12月 23 19:27 check.h
 6 -rw-rw-r--. 1 plh plh    1400 12月 23 19:27 check_stdint.h
 7 -rw-rw-r--. 1 plh plh   11048 12月 23 19:27 config.h
 8 -rw-rw-r--. 1 plh plh  181276 12月 23 19:27 libcheck.a
 9 lrwxrwxrwx. 1 plh plh      18 12月 23 19:28 libcheck.so -> libcheck.so.0.15.2
10 lrwxrwxrwx. 1 plh plh      18 12月 23 19:28 libcheck.so.0 -> libcheck.so.0.15.2
11 -rwxrwxr-x. 1 plh plh  107792 12月 23 19:27 libcheck.so.0.15.2
12 -rw-rw-r--. 1 plh plh  771470 12月 23 19:28 liblwipallapps.a
13 -rw-rw-r--. 1 plh plh   17648 12月 23 19:28 liblwipcontribaddons.a
14 -rw-rw-r--. 1 plh plh   73976 12月 23 19:28 liblwipcontribapps.a
15 -rw-rw-r--. 1 plh plh   75650 12月 23 19:28 liblwipcontribexamples.a
16 -rw-rw-r--. 1 plh plh   68446 12月 23 19:28 liblwipcontribportunix.a
17 -rw-rw-r--. 1 plh plh 1414320 12月 23 19:28 liblwipcore.a
lwIP静态库和check静态库

7. [编译]

1 [plh@localhost lwip_test_compile]$ make

8. [编译成功后的输出文件是]

 1 [plh@localhost lwip_test_compile]$ ls -al bin
 2 -rwxrwxr-x. 1 plh plh 723136 12月 23 19:38 bin
 3 [plh@localhost lwip_test_compile]$ sudo ./bin
 4 Running suite(s): UDP
 5  TCP_OOS
 6  DEF
 7  NETIF
 8  DHCP
 9 Assertion "overload in file/sname" failed at line 1617 in /tmp/LwIP_v2/lwip/src/core/ipv4/dhcp.c
10  MDNS
11 95%: Checks: 60, Failures: 2, Errors: 1
12 /tmp/LwIP_v2/lwip_test_compile/unit/tcp/test_tcp_oos.c:506:F:TCP_OOS:test_tcp_recv_ooseq_overrun_rxwin:0: Assertion 'count == k+1' failed
13 /tmp/LwIP_v2/lwip_test_compile/unit/tcp/test_tcp_oos.c:593:F:TCP_OOS:test_tcp_recv_ooseq_overrun_rxwin_edge:0: Assertion 'count == k+1' failed
14 /tmp/LwIP_v2/lwip_test_compile/unit/dhcp/test_dhcp.c:159:E:DHCP:test_dhcp_invalid_overload:0: (after this point) Received signal 6 (Aborted)
15 [plh@localhost lwip_test_compile]$ ls -al lwip_unittests.xml
16 -rw-r--r--. 1 root root 19205 12月 23 19:39 lwip_unittests.xml
编译成功后的输出文件

9.记录编译过程中自编写的其他文件

9.1.Makefile

 1 CC = /usr/bin/cc 
 2 FLAGS = -DLWIP_DEBUG 
 3 DIR = /tmp/LwIP_v2
 4 
 5 LWIP_TESTDIR = $(DIR)/lwip_test_compile/unit
 6 L_DIR = $(LWIP_TESTDIR)/../lib
 7 O_DIR = $(LWIP_TESTDIR)/../objs
 8 
 9 
10 H += -I$(DIR)/contrib-2.1.0/ports/unix/example_app/../../../../lwip/src/include 
11 H += -I$(DIR)/contrib-2.1.0/ports/unix/example_app/../../..
12 H += -I$(DIR)/contrib-2.1.0/ports/unix/example_app/../../../ports/unix/port/include 
13 H += -I$(DIR)/contrib-2.1.0/ports/unix/example_app/../../../examples/example_app  
14 H += -I$(L_DIR)
15 
16 
17 L += $(L_DIR)/liblwipcontribexamples.a 
18 L += $(L_DIR)/liblwipcontribapps.a 
19 L += $(L_DIR)/liblwipcontribaddons.a 
20 L += $(L_DIR)/liblwipallapps.a 
21 L += $(L_DIR)/liblwipcontribportunix.a 
22 L += $(L_DIR)/liblwipcore.a 
23 L += $(L_DIR)/libcheck.a
24 L += /usr/lib64/libutil.so 
25 L += /usr/lib64/librt.so
26 L += -lpthread 
27 L += -lm
28 
29 OBJS += $(O_DIR)/lwip_unittests.o
30 OBJS += $(O_DIR)/test_def.o
31 OBJS += $(O_DIR)/test_netif.o 
32 OBJS += $(O_DIR)/test_dhcp.o
33 OBJS += $(O_DIR)/test_mdns.o
34 OBJS += $(O_DIR)/tcp_helper.o
35 OBJS += $(O_DIR)/test_tcp_oos.o
36 OBJS += $(O_DIR)/test_udp.o 
37 
38 all: unit_objs
39     $(CC) -o bin $(OBJS) $(L) 
40 
41 unit_objs:
42     $(CC) $(H) $(FLAGS) -o $(O_DIR)/lwip_unittests.o -c $(LWIP_TESTDIR)/lwip_unittests.c
43 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_sockets.o -c $(LWIP_TESTDIR)/api/test_sockets.c
44 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/sys_arch.o -c $(LWIP_TESTDIR)/arch/sys_arch.c
45     $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_def.o -c $(LWIP_TESTDIR)/core/test_def.c
46 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_mem.o -c $(LWIP_TESTDIR)/core/test_mem.c
47     $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_netif.o -c $(LWIP_TESTDIR)/core/test_netif.c
48 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_pbuf.o -c $(LWIP_TESTDIR)/core/test_pbuf.c
49 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_timers.o -c $(LWIP_TESTDIR)/core/test_timers.c
50     $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_dhcp.o -c $(LWIP_TESTDIR)/dhcp/test_dhcp.c
51 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_etharp.o -c $(LWIP_TESTDIR)/etharp/test_etharp.c
52 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_ip4.o -c $(LWIP_TESTDIR)/ip4/test_ip4.c
53 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_ip6.o -c $(LWIP_TESTDIR)/ip6/test_ip6.c
54     $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_mdns.o -c $(LWIP_TESTDIR)/mdns/test_mdns.c
55 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_mqtt.o -c $(LWIP_TESTDIR)/mqtt/test_mqtt.c
56     $(CC) $(H) $(FLAGS) -o $(O_DIR)/tcp_helper.o -c $(LWIP_TESTDIR)/tcp/tcp_helper.c
57     $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_tcp_oos.o -c $(LWIP_TESTDIR)/tcp/test_tcp_oos.c
58 #    $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_tcp.o -c $(LWIP_TESTDIR)/tcp/test_tcp.c
59     $(CC) $(H) $(FLAGS) -o $(O_DIR)/test_udp.o -c $(LWIP_TESTDIR)/udp/test_udp.c
Makefile

9.2.lwip_unittests.xml

  1 <?xml version="1.0"?>
  2 <?xml-stylesheet type="text/xsl" href="http://check.sourceforge.net/xml/check_unittest.xslt"?>
  3 <testsuites xmlns="http://check.sourceforge.net/ns">
  4   <datetime>2020-12-23 19:39:08</datetime>
  5   <suite>
  6     <title>UDP</title>
  7     <test result="success">
  8       <path>/tmp/LwIP_v2/lwip_test_compile/unit/udp</path>
  9       <fn>test_udp.c:147</fn>
 10       <id>test_udp_new_remove</id>
 11       <iteration>0</iteration>
 12       <duration>0.000058</duration>
 13       <description>UDP</description>
 14       <message>Passed</message>
 15     </test>
 16     <test result="success">
 17       <path>/tmp/LwIP_v2/lwip_test_compile/unit/udp</path>
 18       <fn>test_udp.c:330</fn>
 19       <id>test_udp_broadcast_rx_with_2_netifs</id>
 20       <iteration>0</iteration>
 21       <duration>0.000518</duration>
 22       <description>UDP</description>
 23       <message>Passed</message>
 24     </test>
 25   </suite>
 26   <suite>
 27     <title>TCP_OOS</title>
 28     <test result="success">
 29       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 30       <fn>test_tcp_oos.c:282</fn>
 31       <id>test_tcp_recv_ooseq_FIN_OOSEQ</id>
 32       <iteration>0</iteration>
 33       <duration>0.000837</duration>
 34       <description>TCP_OOS</description>
 35       <message>Passed</message>
 36     </test>
 37     <test result="success">
 38       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 39       <fn>test_tcp_oos.c:452</fn>
 40       <id>test_tcp_recv_ooseq_FIN_INSEQ</id>
 41       <iteration>0</iteration>
 42       <duration>0.000953</duration>
 43       <description>TCP_OOS</description>
 44       <message>Passed</message>
 45     </test>
 46     <test result="failure">
 47       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 48       <fn>test_tcp_oos.c:506</fn>
 49       <id>test_tcp_recv_ooseq_overrun_rxwin</id>
 50       <iteration>0</iteration>
 51       <duration>-1.000000</duration>
 52       <description>TCP_OOS</description>
 53       <message>Assertion &apos;count == k+1&apos; failed</message>
 54     </test>
 55     <test result="failure">
 56       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 57       <fn>test_tcp_oos.c:593</fn>
 58       <id>test_tcp_recv_ooseq_overrun_rxwin_edge</id>
 59       <iteration>0</iteration>
 60       <duration>-1.000000</duration>
 61       <description>TCP_OOS</description>
 62       <message>Assertion &apos;count == k+1&apos; failed</message>
 63     </test>
 64     <test result="success">
 65       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 66       <fn>test_tcp_oos.c:633</fn>
 67       <id>test_tcp_recv_ooseq_max_bytes</id>
 68       <iteration>0</iteration>
 69       <duration>0.000021</duration>
 70       <description>TCP_OOS</description>
 71       <message>Passed</message>
 72     </test>
 73     <test result="success">
 74       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 75       <fn>test_tcp_oos.c:708</fn>
 76       <id>test_tcp_recv_ooseq_max_pbufs</id>
 77       <iteration>0</iteration>
 78       <duration>0.000021</duration>
 79       <description>TCP_OOS</description>
 80       <message>Passed</message>
 81     </test>
 82     <test result="success">
 83       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 84       <fn>test_tcp_oos.c:959</fn>
 85       <id>test_tcp_recv_ooseq_double_FIN_0</id>
 86       <iteration>0</iteration>
 87       <duration>0.006774</duration>
 88       <description>TCP_OOS</description>
 89       <message>Passed</message>
 90     </test>
 91     <test result="success">
 92       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
 93       <fn>test_tcp_oos.c:959</fn>
 94       <id>test_tcp_recv_ooseq_double_FIN_1</id>
 95       <iteration>0</iteration>
 96       <duration>0.007141</duration>
 97       <description>TCP_OOS</description>
 98       <message>Passed</message>
 99     </test>
100     <test result="success">
101       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
102       <fn>test_tcp_oos.c:959</fn>
103       <id>test_tcp_recv_ooseq_double_FIN_2</id>
104       <iteration>0</iteration>
105       <duration>0.007740</duration>
106       <description>TCP_OOS</description>
107       <message>Passed</message>
108     </test>
109     <test result="success">
110       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
111       <fn>test_tcp_oos.c:959</fn>
112       <id>test_tcp_recv_ooseq_double_FIN_3</id>
113       <iteration>0</iteration>
114       <duration>0.007709</duration>
115       <description>TCP_OOS</description>
116       <message>Passed</message>
117     </test>
118     <test result="success">
119       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
120       <fn>test_tcp_oos.c:959</fn>
121       <id>test_tcp_recv_ooseq_double_FIN_4</id>
122       <iteration>0</iteration>
123       <duration>0.006549</duration>
124       <description>TCP_OOS</description>
125       <message>Passed</message>
126     </test>
127     <test result="success">
128       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
129       <fn>test_tcp_oos.c:959</fn>
130       <id>test_tcp_recv_ooseq_double_FIN_5</id>
131       <iteration>0</iteration>
132       <duration>0.006794</duration>
133       <description>TCP_OOS</description>
134       <message>Passed</message>
135     </test>
136     <test result="success">
137       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
138       <fn>test_tcp_oos.c:959</fn>
139       <id>test_tcp_recv_ooseq_double_FIN_6</id>
140       <iteration>0</iteration>
141       <duration>0.006962</duration>
142       <description>TCP_OOS</description>
143       <message>Passed</message>
144     </test>
145     <test result="success">
146       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
147       <fn>test_tcp_oos.c:959</fn>
148       <id>test_tcp_recv_ooseq_double_FIN_7</id>
149       <iteration>0</iteration>
150       <duration>0.007116</duration>
151       <description>TCP_OOS</description>
152       <message>Passed</message>
153     </test>
154     <test result="success">
155       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
156       <fn>test_tcp_oos.c:959</fn>
157       <id>test_tcp_recv_ooseq_double_FIN_8</id>
158       <iteration>0</iteration>
159       <duration>0.006401</duration>
160       <description>TCP_OOS</description>
161       <message>Passed</message>
162     </test>
163     <test result="success">
164       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
165       <fn>test_tcp_oos.c:959</fn>
166       <id>test_tcp_recv_ooseq_double_FIN_9</id>
167       <iteration>0</iteration>
168       <duration>0.006557</duration>
169       <description>TCP_OOS</description>
170       <message>Passed</message>
171     </test>
172     <test result="success">
173       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
174       <fn>test_tcp_oos.c:959</fn>
175       <id>test_tcp_recv_ooseq_double_FIN_10</id>
176       <iteration>0</iteration>
177       <duration>0.006361</duration>
178       <description>TCP_OOS</description>
179       <message>Passed</message>
180     </test>
181     <test result="success">
182       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
183       <fn>test_tcp_oos.c:959</fn>
184       <id>test_tcp_recv_ooseq_double_FIN_11</id>
185       <iteration>0</iteration>
186       <duration>0.006632</duration>
187       <description>TCP_OOS</description>
188       <message>Passed</message>
189     </test>
190     <test result="success">
191       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
192       <fn>test_tcp_oos.c:959</fn>
193       <id>test_tcp_recv_ooseq_double_FIN_12</id>
194       <iteration>0</iteration>
195       <duration>0.006357</duration>
196       <description>TCP_OOS</description>
197       <message>Passed</message>
198     </test>
199     <test result="success">
200       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
201       <fn>test_tcp_oos.c:959</fn>
202       <id>test_tcp_recv_ooseq_double_FIN_13</id>
203       <iteration>0</iteration>
204       <duration>0.007017</duration>
205       <description>TCP_OOS</description>
206       <message>Passed</message>
207     </test>
208     <test result="success">
209       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
210       <fn>test_tcp_oos.c:959</fn>
211       <id>test_tcp_recv_ooseq_double_FIN_14</id>
212       <iteration>0</iteration>
213       <duration>0.007085</duration>
214       <description>TCP_OOS</description>
215       <message>Passed</message>
216     </test>
217     <test result="success">
218       <path>/tmp/LwIP_v2/lwip_test_compile/unit/tcp</path>
219       <fn>test_tcp_oos.c:959</fn>
220       <id>test_tcp_recv_ooseq_double_FIN_15</id>
221       <iteration>0</iteration>
222       <duration>0.007535</duration>
223       <description>TCP_OOS</description>
224       <message>Passed</message>
225     </test>
226   </suite>
227   <suite>
228     <title>DEF</title>
229     <test result="success">
230       <path>/tmp/LwIP_v2/lwip_test_compile/unit/core</path>
231       <fn>test_def.c:27</fn>
232       <id>test_def_lwip_itoa</id>
233       <iteration>0</iteration>
234       <duration>0.003787</duration>
235       <description>DEF</description>
236       <message>Passed</message>
237     </test>
238   </suite>
239   <suite>
240     <title>NETIF</title>
241     <test result="success">
242       <path>/tmp/LwIP_v2/lwip_test_compile/unit/core</path>
243       <fn>test_netif.c:207</fn>
244       <id>test_netif_extcallbacks</id>
245       <iteration>0</iteration>
246       <duration>0.000606</duration>
247       <description>NETIF</description>
248       <message>Passed</message>
249     </test>
250   </suite>
251   <suite>
252     <title>DHCP</title>
253     <test result="success">
254       <path>/tmp/LwIP_v2/lwip_test_compile/unit/dhcp</path>
255       <fn>test_dhcp.c:243</fn>
256       <id>test_dhcp</id>
257       <iteration>0</iteration>
258       <duration>0.001045</duration>
259       <description>DHCP</description>
260       <message>Passed</message>
261     </test>
262     <test result="success">
263       <path>/tmp/LwIP_v2/lwip_test_compile/unit/dhcp</path>
264       <fn>test_dhcp.c:561</fn>
265       <id>test_dhcp_nak</id>
266       <iteration>0</iteration>
267       <duration>0.001142</duration>
268       <description>DHCP</description>
269       <message>Passed</message>
270     </test>
271     <test result="success">
272       <path>/tmp/LwIP_v2/lwip_test_compile/unit/dhcp</path>
273       <fn>test_dhcp.c:243</fn>
274       <id>test_dhcp_relayed</id>
275       <iteration>0</iteration>
276       <duration>0.006705</duration>
277       <description>DHCP</description>
278       <message>Passed</message>
279     </test>
280     <test result="success">
281       <path>/tmp/LwIP_v2/lwip_test_compile/unit/dhcp</path>
282       <fn>test_dhcp.c:926</fn>
283       <id>test_dhcp_nak_no_endmarker</id>
284       <iteration>0</iteration>
285       <duration>0.000352</duration>
286       <description>DHCP</description>
287       <message>Passed</message>
288     </test>
289     <test result="error">
290       <path>/tmp/LwIP_v2/lwip_test_compile/unit/dhcp</path>
291       <fn>test_dhcp.c:159</fn>
292       <id>test_dhcp_invalid_overload</id>
293       <iteration>0</iteration>
294       <duration>-1.000000</duration>
295       <description>DHCP</description>
296       <message>Received signal 6 (Aborted)</message>
297     </test>
298   </suite>
299   <suite>
300     <title>MDNS</title>
301     <test result="success">
302       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
303       <fn>test_mdns.c:54</fn>
304       <id>readname_basic</id>
305       <iteration>0</iteration>
306       <duration>0.000147</duration>
307       <description>MDNS</description>
308       <message>Passed</message>
309     </test>
310     <test result="success">
311       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
312       <fn>test_mdns.c:73</fn>
313       <id>readname_anydata</id>
314       <iteration>0</iteration>
315       <duration>0.000143</duration>
316       <description>MDNS</description>
317       <message>Passed</message>
318     </test>
319     <test result="success">
320       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
321       <fn>test_mdns.c:90</fn>
322       <id>readname_short_buf</id>
323       <iteration>0</iteration>
324       <duration>0.000123</duration>
325       <description>MDNS</description>
326       <message>Passed</message>
327     </test>
328     <test result="success">
329       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
330       <fn>test_mdns.c:115</fn>
331       <id>readname_long_label</id>
332       <iteration>0</iteration>
333       <duration>0.000121</duration>
334       <description>MDNS</description>
335       <message>Passed</message>
336     </test>
337     <test result="success">
338       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
339       <fn>test_mdns.c:171</fn>
340       <id>readname_overflow</id>
341       <iteration>0</iteration>
342       <duration>0.000158</duration>
343       <description>MDNS</description>
344       <message>Passed</message>
345     </test>
346     <test result="success">
347       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
348       <fn>test_mdns.c:199</fn>
349       <id>readname_jump_earlier</id>
350       <iteration>0</iteration>
351       <duration>0.000245</duration>
352       <description>MDNS</description>
353       <message>Passed</message>
354     </test>
355     <test result="success">
356       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
357       <fn>test_mdns.c:228</fn>
358       <id>readname_jump_earlier_jump</id>
359       <iteration>0</iteration>
360       <duration>0.000216</duration>
361       <description>MDNS</description>
362       <message>Passed</message>
363     </test>
364     <test result="success">
365       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
366       <fn>test_mdns.c:262</fn>
367       <id>readname_jump_maxdepth</id>
368       <iteration>0</iteration>
369       <duration>0.000150</duration>
370       <description>MDNS</description>
371       <message>Passed</message>
372     </test>
373     <test result="success">
374       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
375       <fn>test_mdns.c:288</fn>
376       <id>readname_jump_later</id>
377       <iteration>0</iteration>
378       <duration>0.000144</duration>
379       <description>MDNS</description>
380       <message>Passed</message>
381     </test>
382     <test result="success">
383       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
384       <fn>test_mdns.c:307</fn>
385       <id>readname_half_jump</id>
386       <iteration>0</iteration>
387       <duration>0.000122</duration>
388       <description>MDNS</description>
389       <message>Passed</message>
390     </test>
391     <test result="success">
392       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
393       <fn>test_mdns.c:326</fn>
394       <id>readname_jump_toolong</id>
395       <iteration>0</iteration>
396       <duration>0.000121</duration>
397       <description>MDNS</description>
398       <message>Passed</message>
399     </test>
400     <test result="success">
401       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
402       <fn>test_mdns.c:346</fn>
403       <id>readname_jump_loop_label</id>
404       <iteration>0</iteration>
405       <duration>0.000129</duration>
406       <description>MDNS</description>
407       <message>Passed</message>
408     </test>
409     <test result="success">
410       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
411       <fn>test_mdns.c:366</fn>
412       <id>readname_jump_loop_jump</id>
413       <iteration>0</iteration>
414       <duration>0.000124</duration>
415       <description>MDNS</description>
416       <message>Passed</message>
417     </test>
418     <test result="success">
419       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
420       <fn>test_mdns.c:385</fn>
421       <id>add_label_basic</id>
422       <iteration>0</iteration>
423       <duration>0.000107</duration>
424       <description>MDNS</description>
425       <message>Passed</message>
426     </test>
427     <test result="success">
428       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
429       <fn>test_mdns.c:400</fn>
430       <id>add_label_long_label</id>
431       <iteration>0</iteration>
432       <duration>0.000129</duration>
433       <description>MDNS</description>
434       <message>Passed</message>
435     </test>
436     <test result="success">
437       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
438       <fn>test_mdns.c:450</fn>
439       <id>add_label_full</id>
440       <iteration>0</iteration>
441       <duration>0.000206</duration>
442       <description>MDNS</description>
443       <message>Passed</message>
444     </test>
445     <test result="success">
446       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
447       <fn>test_mdns.c:480</fn>
448       <id>domain_eq_basic</id>
449       <iteration>0</iteration>
450       <duration>0.000121</duration>
451       <description>MDNS</description>
452       <message>Passed</message>
453     </test>
454     <test result="success">
455       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
456       <fn>test_mdns.c:506</fn>
457       <id>domain_eq_diff</id>
458       <iteration>0</iteration>
459       <duration>0.000114</duration>
460       <description>MDNS</description>
461       <message>Passed</message>
462     </test>
463     <test result="success">
464       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
465       <fn>test_mdns.c:532</fn>
466       <id>domain_eq_case</id>
467       <iteration>0</iteration>
468       <duration>0.000107</duration>
469       <description>MDNS</description>
470       <message>Passed</message>
471     </test>
472     <test result="success">
473       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
474       <fn>test_mdns.c:564</fn>
475       <id>domain_eq_anydata</id>
476       <iteration>0</iteration>
477       <duration>0.000118</duration>
478       <description>MDNS</description>
479       <message>Passed</message>
480     </test>
481     <test result="success">
482       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
483       <fn>test_mdns.c:588</fn>
484       <id>domain_eq_length</id>
485       <iteration>0</iteration>
486       <duration>0.000309</duration>
487       <description>MDNS</description>
488       <message>Passed</message>
489     </test>
490     <test result="success">
491       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
492       <fn>test_mdns.c:621</fn>
493       <id>compress_full_match</id>
494       <iteration>0</iteration>
495       <duration>0.000155</duration>
496       <description>MDNS</description>
497       <message>Passed</message>
498     </test>
499     <test result="success">
500       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
501       <fn>test_mdns.c:656</fn>
502       <id>compress_full_match_subset</id>
503       <iteration>0</iteration>
504       <duration>0.000156</duration>
505       <description>MDNS</description>
506       <message>Passed</message>
507     </test>
508     <test result="success">
509       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
510       <fn>test_mdns.c:693</fn>
511       <id>compress_full_match_jump</id>
512       <iteration>0</iteration>
513       <duration>0.000170</duration>
514       <description>MDNS</description>
515       <message>Passed</message>
516     </test>
517     <test result="success">
518       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
519       <fn>test_mdns.c:727</fn>
520       <id>compress_no_match</id>
521       <iteration>0</iteration>
522       <duration>0.000150</duration>
523       <description>MDNS</description>
524       <message>Passed</message>
525     </test>
526     <test result="success">
527       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
528       <fn>test_mdns.c:762</fn>
529       <id>compress_2nd_label</id>
530       <iteration>0</iteration>
531       <duration>0.000153</duration>
532       <description>MDNS</description>
533       <message>Passed</message>
534     </test>
535     <test result="success">
536       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
537       <fn>test_mdns.c:797</fn>
538       <id>compress_2nd_label_short</id>
539       <iteration>0</iteration>
540       <duration>0.000192</duration>
541       <description>MDNS</description>
542       <message>Passed</message>
543     </test>
544     <test result="success">
545       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
546       <fn>test_mdns.c:839</fn>
547       <id>compress_jump_to_jump</id>
548       <iteration>0</iteration>
549       <duration>0.000167</duration>
550       <description>MDNS</description>
551       <message>Passed</message>
552     </test>
553     <test result="success">
554       <path>/tmp/LwIP_v2/lwip_test_compile/unit/mdns</path>
555       <fn>test_mdns.c:872</fn>
556       <id>compress_long_match</id>
557       <iteration>0</iteration>
558       <duration>0.000162</duration>
559       <description>MDNS</description>
560       <message>Passed</message>
561     </test>
562   </suite>
563   <duration>0.700371</duration>
564 </testsuites>
lwip_unittests.xml
原文地址:https://www.cnblogs.com/aimmiao/p/14181033.html