1#!/bin/bash
2
3TFTP_EXEC_DIR="$(pwd)/build/test"
4TFTP_WORK_DIR="${TFTP_EXEC_DIR}/tmp"
5TFTP_WORK_SUBDIR="${TFTP_WORK_DIR}/subdir"
6TFTP_WORK_FILE="test.img"
7
8
9
10function tftp_setup() {
11    dd if=/dev/urandom bs=1000 count=10 of=${1}/$TFTP_WORK_FILE
12}
13
14function tftp_cleanup() {
15	echo CLEANUP
16	pwd;ls
17	killall -wq picoapp.elf
18	rm -rf $TFTP_WORK_DIR
19	if [ $1 ]; then
20		exit $1
21	fi
22}
23
24if ! [ -x "$(command -v vde_switch)" ]; then
25      echo 'VDE Switch is not installed.' >&2
26fi
27
28if [ ! -e test/vde_sock_start_user.sh ]; then
29   echo "VDE SOCK START FILE NOT FOUND. NO VDE SETUP. EXITING"
30   exit 1
31else
32   echo "VDE SOCK START SCRIPT STARTED."
33   ./test/vde_sock_start_user.sh
34fi
35
36rm -f /tmp/pico-mem-report-*
37sleep 2
38ulimit -c unlimited
39killall -wq picoapp.elf
40killall -wq picoapp6.elf
41
42
43echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
44echo "~~~ 6LoWPAN PING 1HOP   (1500B) ~~~"
45echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
46(build/test/picoapp6.elf -6 0,0,0) &
47pids="$! "
48sleep 1
49(build/test/picoapp6.elf -6 1,2,1 -a noop) &
50pids+="$! "
51sleep 1
52build/test/picoapp6.elf -6 2,1,0 -a ping,2aaa:abcd:0000:0000:0200:00aa:ab00:0001,1500,0,1 || exit 1
53#TODO roll out this check for all "daemon" processes
54for pid in $pids; do ps -o pid= -p $pid || exit 1; done # check whether daemon processes didn't die from e.g. ASAN
55killall -w picoapp6.elf -s SIGQUIT
56
57echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
58echo "~~~ 6LoWPAN UDP 1HOP   (1400B) ~~~"
59echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
60#TODO are these "daemon" processes that need to be killed, or are they intended to halt on their own, giving a status code?
61(build/test/picoapp6.elf -6 0,0,0) &
62sleep 1
63(build/test/picoapp6.elf -6 1,2,1 -a udpecho,::0,6667,) &
64sleep 1
65build/test/picoapp6.elf -6 2,1,0 -a udpclient,2aaa:abcd:0000:0000:0200:00aa:ab00:0001,6667,6667,1400,10,1, || exit 1
66killall -w picoapp6.elf -s SIGQUIT
67
68echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
69echo "~~~ MULTICAST6 TEST ~~~"
70echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
71(./build/test/picoapp6.elf --vde pic1,/tmp/pic0.ctl,aaaa::2,ffff::, -a mcastreceive_ipv6,aaaa::2,ff00::e007:707,6667,6667,) &
72(./build/test/picoapp6.elf --vde pic2,/tmp/pic0.ctl,aaaa::3,ffff::, -a mcastreceive_ipv6,aaaa::3,ff00::e007:707,6667,6667,) &
73(./build/test/picoapp6.elf --vde pic3,/tmp/pic0.ctl,aaaa::4,ffff::, -a mcastreceive_ipv6,aaaa::4,ff00::e007:707,6667,6667,) &
74sleep 2
75 ./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::, -a  mcastsend_ipv6,aaaa::1,ff00::e007:707,6667,6667,|| exit 1
76killall -w picoapp6.elf -s SIGQUIT
77
78echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
79echo "~~~ PING6 LOCALHOST TEST ~~~"
80echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
81./build/test/picoapp6.elf --loop -a ping,::1,,,, || exit 1
82killall -w picoapp6.elf
83
84echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
85echo "~~~ PING6 TEST ~~~"
86echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
87(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::,,,,) &
88./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::2,ffff::,,, -a ping,aaaa::1,,,, || exit 1
89killall -w picoapp6.elf
90
91echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
92echo "~~~ PING6 TEST (aborted in 4 seconds...) ~~~"
93echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
94(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::,,,,) &
95(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::2,ffff::,,, -a ping,aaaa::1,64,4,,) &
96sleep 7
97killall -w picoapp6.elf
98
99echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
100echo "~~~ TCP6 TEST ~~~"
101echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
102(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::,,, -a tcpbench,r,6667,,) &
103./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::2,ffff::,,, -a tcpbench,t,aaaa::1,6667,, || exit 1
104killall -w picoapp6.elf
105
106echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
107echo "~~~ TCP6 TEST (with 2% packet loss on both directions) ~~~"
108echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
109(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::,,2,2, -a tcpbench,r,6667,,) &
110./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::2,ffff::,,, -a tcpbench,t,aaaa::1,6667,, || exit 1
111killall -w picoapp6.elf
112
113echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
114echo "~~~ TCP6 TEST (nagle) ~~~"
115echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
116(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::,,, -a tcpbench,r,6667,n,) &
117./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::2,ffff::,,, -a tcpbench,t,aaaa::1,6667,n, || exit 1
118killall -w picoapp6.elf
119
120echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
121echo "~~~ UDP6 TEST ~~~"
122echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
123(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::1,ffff::,,, -a udpecho,::0,6667,) &
124pids="$! "
125./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,aaaa::2,ffff::,,, -a udpclient,aaaa::1,6667,6667,1400,100,10, || exit 1
126wait $pids || exit 1
127killall -w picoapp6.elf
128
129echo
130echo
131echo
132echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
133echo "~~~ IPV6 FWD TCP TEST ~~~"
134echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
135(./build/test/picoapp6.elf --vde pic0,/tmp/pic1.ctl,2001:aabb::2,ffff:ffff::,2001:aabb::ff,, -a tcpbench,r,6667,,) &
136(./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,2001:aaaa::ff,ffff:ffff::,,, --vde pic1,/tmp/pic1.ctl,2001:aabb::ff,ffff:ffff::,,, -a noop,) &
137./build/test/picoapp6.elf --vde pic0,/tmp/pic0.ctl,2001:aaaa::1,ffff:ffff::,2001:aaaa::ff,, -a tcpbench,t,2001:aabb::2,6667,, || exit 1
138sleep 2
139killall -w picoapp6.elf
140
141
142echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
143echo "~~~ MULTICAST TEST ~~~"
144echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
145(./build/test/picoapp.elf --vde pic1:/tmp/pic0.ctl:10.40.0.3:255.255.0.0: -a mcastreceive:10.40.0.3:224.7.7.7:6667:6667:) &
146(./build/test/picoapp.elf --vde pic2:/tmp/pic0.ctl:10.40.0.4:255.255.0.0: -a mcastreceive:10.40.0.4:224.7.7.7:6667:6667:) &
147(./build/test/picoapp.elf --vde pic3:/tmp/pic0.ctl:10.40.0.5:255.255.0.0: -a mcastreceive:10.40.0.5:224.7.7.7:6667:6667:) &
148sleep 2
149./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.2:255.255.0.0: -a mcastsend:10.40.0.2:224.7.7.7:6667:6667: || exit 1
150killall -w picoapp.elf
151
152echo
153echo
154echo
155echo
156echo
157
158echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
159echo "~~~ IPV4 tests! ~~~"
160echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
161
162echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
163echo "~~~ PING LOCALHOST TEST ~~~"
164echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
165./build/test/picoapp.elf --loop -a ping:127.0.0.1:::: || exit 1
166
167echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
168echo "~~~ PING TEST ~~~"
169echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
170(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0:::) &
171./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a ping:10.40.0.8:::: || exit 1
172killall -w picoapp.elf
173
174echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
175echo "~~~ PING TEST -- Aborted in 4 seconds ~~~"
176echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
177(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0:::) &
178(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a ping:10.40.0.8:64:4::) &
179sleep 7
180killall -w picoapp.elf
181
182echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
183echo "~~~ TCP TEST ~~~"
184echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
185(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0:::: -a tcpbench:r:6667::) &
186./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a tcpbench:t:10.40.0.8:6667:: || exit 1
187killall -w picoapp.elf
188
189echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
190echo "~~~ TCP TEST (with global route) ~~~"
191echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
192(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0:::: --vde pic1:/tmp/pic1.ctl:10.50.0.10:255.255.0.0:10.50.0.1: -a tcpbench:r:6667::) &
193./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a tcpbench:t:10.40.0.8:6667:: || exit 1
194killall -w picoapp.elf
195
196echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
197echo "~~~ TCP TEST (with 2% packet loss on both directions) ~~~"
198echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
199(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0::2:2: -a tcpbench:r:6667::) &
200./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a tcpbench:t:10.40.0.8:6667:: || exit 1
201killall -w picoapp.elf
202
203echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
204echo "~~~ TCP TEST (nagle) ~~~"
205echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
206(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0::: -a tcpbench:r:6667:n:) &
207./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a tcpbench:t:10.40.0.8:6667:n: || exit 1
208killall -w picoapp.elf
209
210echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
211echo "~~~ UDP TEST ~~~"
212echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
213(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0::: -a udpecho:10.40.0.8:6667:) &
214pids="$! "
215./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a udpclient:10.40.0.8:6667:6667:1400:100:10: || exit 1
216wait $pids || exit 1
217
218echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
219echo "~~~ UDP TEST with fragmentation ~~~"
220echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
221(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.8:255.255.0.0::: -a udpecho:10.40.0.8:6667:) &
222pids="$! "
223./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0::: -a udpclient:10.40.0.8:6667:6667:4500:100:10: || exit 1
224wait $pids || exit 1
225
226echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
227echo "~~~ NAT TCP TEST ~~~"
228echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
229(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.10:255.255.0.0::: --vde pic1:/tmp/pic1.ctl:10.50.0.10:255.255.0.0: -a natbox:10.50.0.10) &
230sleep 2
231(./build/test/picoapp.elf --vde pic0:/tmp/pic1.ctl:10.50.0.8:255.255.0.0::: -a tcpbench:r:6667:) &
232sleep 2
233./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0:10.40.0.10::: -a tcpbench:t:10.50.0.8:6667: || exit 1
234killall -w picoapp.elf
235
236echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
237echo "~~~ NAT UDP TEST ~~~"
238echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
239(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.10:255.255.0.0::: --vde pic1:/tmp/pic1.ctl:10.50.0.10:255.255.0.0::: -a natbox:10.50.0.10) &
240(./build/test/picoapp.elf --vde pic0:/tmp/pic1.ctl:10.50.0.8:255.255.0.0::: -a udpecho:10.50.0.8:6667:) &
241./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.9:255.255.0.0:10.40.0.10::: -a udpclient:10.50.0.8:6667:6667:1400:100:10: || exit 1
242#sometimes udpecho finishes before reaching wait %2
243#wait %2
244killall -w picoapp.elf
245
246echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
247echo "~~~ MULTICAST TEST ~~~"
248echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
249(./build/test/picoapp.elf --vde pic1:/tmp/pic0.ctl:10.40.0.3:255.255.0.0::: -a mcastreceive:10.40.0.3:224.7.7.7:6667:6667:) &
250(./build/test/picoapp.elf --vde pic2:/tmp/pic0.ctl:10.40.0.4:255.255.0.0::: -a mcastreceive:10.40.0.4:224.7.7.7:6667:6667:) &
251(./build/test/picoapp.elf --vde pic3:/tmp/pic0.ctl:10.40.0.5:255.255.0.0::: -a mcastreceive:10.40.0.5:224.7.7.7:6667:6667:) &
252sleep 2
253./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.2:255.255.0.0::: -a mcastsend:10.40.0.2:224.7.7.7:6667:6667: || exit 1
254killall -w picoapp.elf
255
256killall -w picoapp.elf
257
258echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
259echo "~~~ DHCP TEST ~~~"
260echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
261(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.1:255.255.0.0::: -a dhcpserver:pic0:10.40.0.1:255.255.255.0:64:128:) &
262./build/test/picoapp.elf --barevde pic0:/tmp/pic0.ctl: -a dhcpclient:pic0 || exit 1
263killall -w picoapp.elf
264
265echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
266echo "~~~ DHCP DUAL TEST ~~~"
267echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
268(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.2:255.255.0.0::: -a dhcpserver:pic0:10.40.0.2:255.255.255.0:64:128:) &
269(./build/test/picoapp.elf --vde pic1:/tmp/pic1.ctl:10.50.0.2:255.255.0.0::: -a dhcpserver:pic1:10.50.0.2:255.255.255.0:64:128:) &
270./build/test/picoapp.elf --barevde pic0:/tmp/pic0.ctl: --barevde pic1:/tmp/pic1.ctl: -a dhcpclient:pic0:pic1: || exit 1
271killall -w picoapp.elf
272
273#TO DO: the ping address 169.254.22.5 is hardcoded in the slaacv4 test. Nice to pass that by parameter
274echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
275echo "~~~ SLAACV4 TEST ~~~"
276echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
277(./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:169.254.22.5:255.255.0.0:::) &
278./build/test/picoapp.elf --barevde pic0:/tmp/pic0.ctl: -a slaacv4:pic0 || exit 1
279killall -w picoapp.elf
280
281
282./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.2:255.255.0.0:10.40.0.1::: -a udpdnsclient:www.google.be:173.194.67.94:: &
283./build/test/picoapp.elf --vde pic0:/tmp/pic0.ctl:10.40.0.2:255.255.0.0:10.40.0.1::: -a udpdnsclient:ipv6.google.be:doesntmatter:ipv6: &
284./build/test/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.2:255.255.0.0:10.50.0.1::: -a sntp:0.europe.pool.ntp.org &
285sleep 20
286killall -w picoapp.elf
287
288
289echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
290echo "~~~ MDNS TEST ~~~"
291echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
292#retrieve a local mdns host name from the host
293(./build/test/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.2:255.255.255.0:10.50.0.1: --app mdns:hostfoo.local:hostbar.local:) &
294(./build/test/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.3:255.255.255.0:10.50.0.1: --app mdns:hostbar.local:hostfoo.local:) &
295(./build/test/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.2:255.255.255.0:10.50.0.1: --app mdns:hostfoobar.local:nonexisting.local:) &
296sleep 10
297killall -w picoapp.elf
298
299echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
300echo "~~~ DNS_SD TEST ~~~"
301echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
302#register a service
303(./build/test/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.2:255.255.255.0:10.50.0.1: --app dns_sd:host.local:WebServer) &
304(./build/test/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.3:255.255.255.0:10.50.0.1: --app dns_sd:host.local:WebServer) &
305sleep 30
306killall -w picoapp.elf
307
308sleep 1
309sync
310
311
312# TFTP TEST BEGINS...
313
314if [ ! -d $TFTP_WORK_DIR ]; then
315        mkdir $TFTP_WORK_DIR || exit 1
316fi
317if [ ! -d ${TFTP_WORK_SUBDIR}/server ]; then
318        mkdir $TFTP_WORK_SUBDIR || exit 1
319fi
320
321pushd $TFTP_WORK_DIR
322
323echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
324echo "~~~ TFTP GET TEST ~~~"
325echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
326tftp_setup $TFTP_WORK_DIR
327(${TFTP_EXEC_DIR}/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.2:255.255.255.0:10.50.0.1: --app tftp:S:) &
328cd $TFTP_WORK_SUBDIR
329sleep 2
330${TFTP_EXEC_DIR}/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.3:255.255.255.0:10.50.0.1: --app tftp:R:${TFTP_WORK_FILE}:10.50.0.2: || tftp_cleanup 1
331sleep 3
332killall -w picoapp.elf
333
334sleep 1
335
336rm $TFTP_WORK_FILE
337
338echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
339echo "~~~ TFTP PUT TEST ~~~"
340echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
341(${TFTP_EXEC_DIR}/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.2:255.255.255.0:10.50.0.1: --app tftp:S:) &
342cd $TFTP_WORK_DIR
343tftp_setup $TFTP_WORK_DIR
344sleep 2
345${TFTP_EXEC_DIR}/picoapp.elf  --vde pic0:/tmp/pic0.ctl:10.50.0.3:255.255.255.0:10.50.0.1: --app tftp:T:${TFTP_WORK_FILE}:10.50.0.2: || tftp_cleanup 1
346sleep 3
347
348tftp_cleanup
349popd
350# TFTP TEST ENDS.
351
352MAXMEM=`cat /tmp/pico-mem-report-* | sort -r -n |head -1`
353echo
354echo
355echo
356echo "MAX memory used: $MAXMEM"
357rm -f /tmp/pico-mem-report-*
358
359./test/vde_sock_start_user.sh stop
360echo "SUCCESS!"
361