Artifact
ad2b90ec831114bc4ef12d0e84c79bce1858b897 :
Executable file
tests/msg-test
— part of check-in
[43289f35a4]
at
2018-04-17 21:02:11
on branch trunk
— Stop reply tags firing if the original outgoing message has already been deleted
(user:
bernd
size: 4431)
0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 47 46 4f 52 #!/bin/bash.GFOR
0010: 54 48 3d 24 7b 47 46 4f 52 54 48 3a 2d 67 66 6f TH=${GFORTH:-gfo
0020: 72 74 68 7d 0a 63 6f 75 6e 74 3d 24 7b 63 6f 75 rth}.count=${cou
0030: 6e 74 3a 2d 31 30 30 7d 0a 77 68 69 6c 65 20 5b nt:-100}.while [
0040: 20 22 24 31 22 20 21 3d 20 22 24 7b 31 23 2b 7d "$1" != "${1#+}
0050: 22 20 5d 0a 64 6f 0a 20 20 20 20 64 65 62 75 67 " ].do. debug
0060: 73 3d 22 24 64 65 62 75 67 73 20 24 31 22 0a 20 s="$debugs $1".
0070: 20 20 20 73 68 69 66 74 0a 64 6f 6e 65 0a 72 6d shift.done.rm
0080: 20 2d 72 66 20 63 68 61 74 2d 74 65 73 74 2e 64 -rf chat-test.d
0090: 0a 6d 6b 64 69 72 20 2d 70 20 63 68 61 74 2d 74 .mkdir -p chat-t
00a0: 65 73 74 2e 64 2f 2e 6e 65 74 32 6f 0a 63 64 20 est.d/.net2o.cd
00b0: 63 68 61 74 2d 74 65 73 74 2e 64 0a 63 61 74 20 chat-test.d.cat
00c0: 3e 2e 6e 65 74 32 6f 2f 63 6f 6e 66 69 67 20 3c >.net2o/config <
00d0: 3c 45 4f 46 0a 2e 6e 65 74 32 6f 3d 22 24 50 57 <EOF..net2o="$PW
00e0: 44 2f 2e 6e 65 74 32 6f 22 0a 6b 65 79 73 3d 22 D/.net2o".keys="
00f0: 24 50 57 44 2f 2e 6e 65 74 32 6f 2f 6b 65 79 73 $PWD/.net2o/keys
0100: 22 0a 63 68 61 74 73 3d 22 24 50 57 44 2f 2e 6e ".chats="$PWD/.n
0110: 65 74 32 6f 2f 63 68 61 74 73 22 0a 6f 62 6a 65 et2o/chats".obje
0120: 63 74 73 3d 22 24 50 57 44 2f 2e 6e 65 74 32 6f cts="$PWD/.net2o
0130: 2f 6f 62 6a 65 63 74 73 22 0a 64 61 74 65 3d 5c /objects".date=\
0140: 24 37 35 0a 68 6f 73 74 3d 22 74 65 73 74 2d 68 $75.host="test-h
0150: 6f 73 74 22 0a 70 72 69 6f 3d 31 30 0a 72 6f 6f ost".prio=10.roo
0160: 74 64 69 72 73 3d 22 24 50 57 44 22 0a 45 4f 46 tdirs="$PWD".EOF
0170: 0a 65 78 70 6f 72 74 20 4e 45 54 32 4f 5f 43 4f .export NET2O_CO
0180: 4e 46 3d 24 50 57 44 2f 2e 6e 65 74 32 6f 2f 63 NF=$PWD/.net2o/c
0190: 6f 6e 66 69 67 0a 50 41 53 53 50 48 52 41 53 45 onfig.PASSPHRASE
01a0: 3d 31 32 33 34 20 24 47 46 4f 52 54 48 20 2e 2e =1234 $GFORTH ..
01b0: 2f 6e 32 6f 20 24 64 65 62 75 67 73 20 2d 79 65 /n2o $debugs -ye
01c0: 73 20 6b 65 79 67 65 6e 20 63 68 61 74 2d 74 65 s keygen chat-te
01d0: 73 74 31 0a 50 41 53 53 50 48 52 41 53 45 3d 32 st1.PASSPHRASE=2
01e0: 33 34 35 20 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 345 $GFORTH ../n
01f0: 32 6f 20 24 64 65 62 75 67 73 20 2d 79 65 73 20 2o $debugs -yes
0200: 6b 65 79 67 65 6e 20 63 68 61 74 2d 74 65 73 74 keygen chat-test
0210: 32 0a 50 41 53 53 50 48 52 41 53 45 3d 33 34 35 2.PASSPHRASE=345
0220: 36 20 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 6 $GFORTH ../n2o
0230: 20 24 64 65 62 75 67 73 20 2d 79 65 73 20 6b 65 $debugs -yes ke
0240: 79 67 65 6e 20 63 68 61 74 2d 74 65 73 74 33 0a ygen chat-test3.
0250: 50 41 53 53 50 48 52 41 53 45 3d 34 35 36 37 20 PASSPHRASE=4567
0260: 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 $GFORTH ../n2o $
0270: 64 65 62 75 67 73 20 2d 79 65 73 20 6b 65 79 67 debugs -yes keyg
0280: 65 6e 20 63 68 61 74 2d 74 65 73 74 34 0a 50 41 en chat-test4.PA
0290: 53 53 50 48 52 41 53 45 3d 34 33 32 31 20 24 47 SSPHRASE=4321 $G
02a0: 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 FORTH ../n2o $de
02b0: 62 75 67 73 20 2d 79 65 73 20 6b 65 79 67 65 6e bugs -yes keygen
02c0: 20 63 68 61 74 2d 74 65 73 74 35 0a 50 41 53 53 chat-test5.PASS
02d0: 50 48 52 41 53 45 3d 35 34 33 32 20 24 47 46 4f PHRASE=5432 $GFO
02e0: 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 RTH ../n2o $debu
02f0: 67 73 20 2d 79 65 73 20 6b 65 79 67 65 6e 20 63 gs -yes keygen c
0300: 68 61 74 2d 74 65 73 74 36 0a 50 41 53 53 50 48 hat-test6.PASSPH
0310: 52 41 53 45 3d 36 35 34 33 20 24 47 46 4f 52 54 RASE=6543 $GFORT
0320: 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 73 H ../n2o $debugs
0330: 20 2d 79 65 73 20 6b 65 79 67 65 6e 20 63 68 61 -yes keygen cha
0340: 74 2d 74 65 73 74 37 0a 50 41 53 53 50 48 52 41 t-test7.PASSPHRA
0350: 53 45 3d 37 36 35 34 20 24 47 46 4f 52 54 48 20 SE=7654 $GFORTH
0360: 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 73 20 2d ../n2o $debugs -
0370: 79 65 73 20 6b 65 79 67 65 6e 20 63 68 61 74 2d yes keygen chat-
0380: 74 65 73 74 38 0a 0a 50 41 53 53 50 48 52 41 53 test8..PASSPHRAS
0390: 45 3d 31 32 33 34 20 24 47 46 4f 52 54 48 20 2e E=1234 $GFORTH .
03a0: 2e 2f 6e 32 6f 20 24 64 65 62 75 67 73 20 6b 65 ./n2o $debugs ke
03b0: 79 69 6e 20 7e 2f 63 68 61 74 2d 74 65 73 74 5b yin ~/chat-test[
03c0: 32 2d 38 5d 2e 6e 32 6f 0a 50 41 53 53 50 48 52 2-8].n2o.PASSPHR
03d0: 41 53 45 3d 32 33 34 35 20 24 47 46 4f 52 54 48 ASE=2345 $GFORTH
03e0: 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 73 20 ../n2o $debugs
03f0: 6b 65 79 69 6e 20 7e 2f 63 68 61 74 2d 74 65 73 keyin ~/chat-tes
0400: 74 5b 31 33 2d 38 5d 2e 6e 32 6f 0a 50 41 53 53 t[13-8].n2o.PASS
0410: 50 48 52 41 53 45 3d 33 34 35 36 20 24 47 46 4f PHRASE=3456 $GFO
0420: 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 RTH ../n2o $debu
0430: 67 73 20 6b 65 79 69 6e 20 7e 2f 63 68 61 74 2d gs keyin ~/chat-
0440: 74 65 73 74 5b 31 32 34 2d 38 5d 2e 6e 32 6f 0a test[124-8].n2o.
0450: 50 41 53 53 50 48 52 41 53 45 3d 34 35 36 37 20 PASSPHRASE=4567
0460: 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 $GFORTH ../n2o $
0470: 64 65 62 75 67 73 20 6b 65 79 69 6e 20 7e 2f 63 debugs keyin ~/c
0480: 68 61 74 2d 74 65 73 74 5b 31 2d 33 35 2d 38 5d hat-test[1-35-8]
0490: 2e 6e 32 6f 0a 50 41 53 53 50 48 52 41 53 45 3d .n2o.PASSPHRASE=
04a0: 34 33 32 31 20 24 47 46 4f 52 54 48 20 2e 2e 2f 4321 $GFORTH ../
04b0: 6e 32 6f 20 24 64 65 62 75 67 73 20 6b 65 79 69 n2o $debugs keyi
04c0: 6e 20 7e 2f 63 68 61 74 2d 74 65 73 74 5b 31 2d n ~/chat-test[1-
04d0: 34 36 2d 38 5d 2e 6e 32 6f 0a 50 41 53 53 50 48 46-8].n2o.PASSPH
04e0: 52 41 53 45 3d 35 34 33 32 20 24 47 46 4f 52 54 RASE=5432 $GFORT
04f0: 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 73 H ../n2o $debugs
0500: 20 6b 65 79 69 6e 20 7e 2f 63 68 61 74 2d 74 65 keyin ~/chat-te
0510: 73 74 5b 31 2d 35 37 38 5d 2e 6e 32 6f 0a 50 41 st[1-578].n2o.PA
0520: 53 53 50 48 52 41 53 45 3d 36 35 34 33 20 24 47 SSPHRASE=6543 $G
0530: 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 FORTH ../n2o $de
0540: 62 75 67 73 20 6b 65 79 69 6e 20 7e 2f 63 68 61 bugs keyin ~/cha
0550: 74 2d 74 65 73 74 5b 31 2d 36 38 5d 2e 6e 32 6f t-test[1-68].n2o
0560: 0a 50 41 53 53 50 48 52 41 53 45 3d 37 36 35 34 .PASSPHRASE=7654
0570: 20 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 $GFORTH ../n2o
0580: 24 64 65 62 75 67 73 20 6b 65 79 69 6e 20 7e 2f $debugs keyin ~/
0590: 63 68 61 74 2d 74 65 73 74 5b 31 2d 37 5d 2e 6e chat-test[1-7].n
05a0: 32 6f 0a 0a 66 75 6e 63 74 69 6f 6e 20 6b 69 6c 2o..function kil
05b0: 6c 67 66 6f 72 74 68 20 7b 0a 20 20 20 20 6b 69 lgforth {. ki
05c0: 6c 6c 61 6c 6c 20 24 47 46 4f 52 54 48 0a 20 20 llall $GFORTH.
05d0: 20 20 75 73 6c 65 65 70 20 31 30 30 30 30 30 0a usleep 100000.
05e0: 20 20 20 20 6b 69 6c 6c 61 6c 6c 20 2d 39 20 24 killall -9 $
05f0: 47 46 4f 52 54 48 0a 7d 0a 74 72 61 70 20 6b 69 GFORTH.}.trap ki
0600: 6c 6c 67 66 6f 72 74 68 20 45 58 49 54 0a 0a 65 llgforth EXIT..e
0610: 78 70 6f 72 74 20 50 41 53 53 50 48 52 41 53 45 xport PASSPHRASE
0620: 3d 31 32 33 34 0a 65 78 65 63 20 33 3e 20 3e 28 =1234.exec 3> >(
0630: 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 $GFORTH ../n2o $
0640: 64 65 62 75 67 73 20 24 2a 20 63 68 61 74 20 74 debugs $* chat t
0650: 65 73 74 20 3e 6d 73 67 2d 74 65 73 74 2e 6f 75 est >msg-test.ou
0660: 74 2e 31 29 0a 65 78 70 6f 72 74 20 47 46 4f 52 t.1).export GFOR
0670: 54 48 50 49 44 31 3d 24 5b 24 21 2b 31 5d 0a 73 THPID1=$[$!+1].s
0680: 6c 65 65 70 20 35 0a 65 78 70 6f 72 74 20 50 41 leep 5.export PA
0690: 53 53 50 48 52 41 53 45 3d 32 33 34 35 0a 65 78 SSPHRASE=2345.ex
06a0: 65 63 20 34 3e 20 3e 28 24 47 46 4f 52 54 48 20 ec 4> >($GFORTH
06b0: 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 73 20 31 ../n2o $debugs 1
06c0: 30 25 20 24 2a 20 63 68 61 74 20 74 65 73 74 40 0% $* chat test@
06d0: 63 68 61 74 2d 74 65 73 74 31 20 3e 6d 73 67 2d chat-test1 >msg-
06e0: 74 65 73 74 2e 6f 75 74 2e 32 29 0a 65 78 70 6f test.out.2).expo
06f0: 72 74 20 47 46 4f 52 54 48 50 49 44 32 3d 24 5b rt GFORTHPID2=$[
0700: 24 21 2b 31 5d 0a 73 6c 65 65 70 20 32 0a 0a 78 $!+1].sleep 2..x
0710: 3d 22 22 0a 0a 66 6f 72 20 69 20 69 6e 20 24 28 =""..for i in $(
0720: 73 65 71 20 31 20 24 63 6f 75 6e 74 29 0a 64 6f seq 1 $count).do
0730: 0a 20 20 20 20 65 63 68 6f 20 22 50 68 61 73 65 . echo "Phase
0740: 20 31 3a 20 54 65 73 74 20 4d 65 73 73 61 67 65 1: Test Message
0750: 20 24 69 20 6f 6e 20 31 2f 32 20 24 78 22 20 3e $i on 1/2 $x" >
0760: 26 33 0a 20 20 20 20 75 73 6c 65 65 70 20 32 30 &3. usleep 20
0770: 30 30 30 0a 20 20 20 20 65 63 68 6f 20 22 50 68 000. echo "Ph
0780: 61 73 65 20 31 3a 20 54 65 73 74 20 4d 65 73 73 ase 1: Test Mess
0790: 61 67 65 20 24 69 20 6f 6e 20 32 2f 32 20 24 78 age $i on 2/2 $x
07a0: 22 20 3e 26 34 0a 20 20 20 20 75 73 6c 65 65 70 " >&4. usleep
07b0: 20 32 30 30 30 30 0a 20 20 20 20 78 3d 22 78 24 20000. x="x$
07c0: 78 22 0a 20 20 20 20 63 61 73 65 20 24 69 20 69 x". case $i i
07d0: 6e 0a 09 2a 30 29 0a 09 20 20 20 20 73 6c 65 65 n..*0).. slee
07e0: 70 20 32 0a 09 20 20 20 20 3b 3b 0a 20 20 20 20 p 2.. ;;.
07f0: 65 73 61 63 0a 64 6f 6e 65 0a 0a 65 78 65 63 20 esac.done..exec
0800: 35 3e 20 3e 28 50 41 53 53 50 48 52 41 53 45 3d 5> >(PASSPHRASE=
0810: 33 34 35 36 20 24 47 46 4f 52 54 48 20 2e 2e 2f 3456 $GFORTH ../
0820: 6e 32 6f 20 24 64 65 62 75 67 73 20 35 25 20 24 n2o $debugs 5% $
0830: 2a 20 63 68 61 74 20 74 65 73 74 40 63 68 61 74 * chat test@chat
0840: 2d 74 65 73 74 31 20 3e 6d 73 67 2d 74 65 73 74 -test1 >msg-test
0850: 2e 6f 75 74 2e 33 29 0a 65 78 70 6f 72 74 20 47 .out.3).export G
0860: 46 4f 52 54 48 50 49 44 33 3d 24 5b 24 21 2b 31 FORTHPID3=$[$!+1
0870: 5d 0a 65 78 65 63 20 36 3e 20 3e 28 50 41 53 53 ].exec 6> >(PASS
0880: 50 48 52 41 53 45 3d 34 35 36 37 20 24 47 46 4f PHRASE=4567 $GFO
0890: 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 RTH ../n2o $debu
08a0: 67 73 20 31 35 25 20 24 2a 20 63 68 61 74 20 74 gs 15% $* chat t
08b0: 65 73 74 40 63 68 61 74 2d 74 65 73 74 32 20 3e est@chat-test2 >
08c0: 6d 73 67 2d 74 65 73 74 2e 6f 75 74 2e 34 29 0a msg-test.out.4).
08d0: 65 78 70 6f 72 74 20 47 46 4f 52 54 48 50 49 44 export GFORTHPID
08e0: 34 3d 24 5b 24 21 2b 31 5d 0a 65 78 65 63 20 37 4=$[$!+1].exec 7
08f0: 3e 20 3e 28 50 41 53 53 50 48 52 41 53 45 3d 34 > >(PASSPHRASE=4
0900: 33 32 31 20 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 321 $GFORTH ../n
0910: 32 6f 20 24 64 65 62 75 67 73 20 35 25 20 24 2a 2o $debugs 5% $*
0920: 20 63 68 61 74 20 74 65 73 74 40 63 68 61 74 2d chat test@chat-
0930: 74 65 73 74 31 20 3e 6d 73 67 2d 74 65 73 74 2e test1 >msg-test.
0940: 6f 75 74 2e 35 29 0a 65 78 70 6f 72 74 20 47 46 out.5).export GF
0950: 4f 52 54 48 50 49 44 35 3d 24 5b 24 21 2b 31 5d ORTHPID5=$[$!+1]
0960: 0a 65 78 65 63 20 38 3e 20 3e 28 50 41 53 53 50 .exec 8> >(PASSP
0970: 48 52 41 53 45 3d 35 34 33 32 20 24 47 46 4f 52 HRASE=5432 $GFOR
0980: 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 TH ../n2o $debug
0990: 73 20 31 35 25 20 24 2a 20 63 68 61 74 20 74 65 s 15% $* chat te
09a0: 73 74 40 63 68 61 74 2d 74 65 73 74 32 20 3e 6d st@chat-test2 >m
09b0: 73 67 2d 74 65 73 74 2e 6f 75 74 2e 36 29 0a 65 sg-test.out.6).e
09c0: 78 70 6f 72 74 20 47 46 4f 52 54 48 50 49 44 36 xport GFORTHPID6
09d0: 3d 24 5b 24 21 2b 31 5d 0a 65 78 65 63 20 39 3e =$[$!+1].exec 9>
09e0: 20 3e 28 50 41 53 53 50 48 52 41 53 45 3d 36 35 >(PASSPHRASE=65
09f0: 34 33 20 24 47 46 4f 52 54 48 20 2e 2e 2f 6e 32 43 $GFORTH ../n2
0a00: 6f 20 24 64 65 62 75 67 73 20 35 25 20 24 2a 20 o $debugs 5% $*
0a10: 63 68 61 74 20 74 65 73 74 40 63 68 61 74 2d 74 chat test@chat-t
0a20: 65 73 74 31 20 3e 6d 73 67 2d 74 65 73 74 2e 6f est1 >msg-test.o
0a30: 75 74 2e 37 29 0a 65 78 70 6f 72 74 20 47 46 4f ut.7).export GFO
0a40: 52 54 48 50 49 44 37 3d 24 5b 24 21 2b 31 5d 0a RTHPID7=$[$!+1].
0a50: 65 78 65 63 20 31 30 3e 20 3e 28 50 41 53 53 50 exec 10> >(PASSP
0a60: 48 52 41 53 45 3d 37 36 35 34 20 24 47 46 4f 52 HRASE=7654 $GFOR
0a70: 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 75 67 TH ../n2o $debug
0a80: 73 20 31 35 25 20 24 2a 20 63 68 61 74 20 74 65 s 15% $* chat te
0a90: 73 74 40 63 68 61 74 2d 74 65 73 74 32 20 3e 6d st@chat-test2 >m
0aa0: 73 67 2d 74 65 73 74 2e 6f 75 74 2e 38 29 0a 65 sg-test.out.8).e
0ab0: 78 70 6f 72 74 20 47 46 4f 52 54 48 50 49 44 38 xport GFORTHPID8
0ac0: 3d 24 5b 24 21 2b 31 5d 0a 73 6c 65 65 70 20 32 =$[$!+1].sleep 2
0ad0: 0a 0a 23 65 63 68 6f 20 22 2f 73 79 6e 63 22 20 ..#echo "/sync"
0ae0: 3e 26 35 0a 0a 23 73 6c 65 65 70 20 31 0a 0a 66 >&5..#sleep 1..f
0af0: 6f 72 20 6a 20 69 6e 20 24 28 73 65 71 20 31 20 or j in $(seq 1
0b00: 34 29 0a 64 6f 0a 20 20 20 20 78 3d 22 22 0a 20 4).do. x="".
0b10: 20 20 20 0a 20 20 20 20 66 6f 72 20 69 20 69 6e . for i in
0b20: 20 24 28 73 65 71 20 31 20 24 63 6f 75 6e 74 29 $(seq 1 $count)
0b30: 0a 20 20 20 20 64 6f 0a 09 65 63 68 6f 20 22 50 . do..echo "P
0b40: 68 61 73 65 20 32 3a 20 54 65 73 74 20 4d 65 73 hase 2: Test Mes
0b50: 73 61 67 65 20 24 69 2f 24 6a 20 6f 6e 20 31 2f sage $i/$j on 1/
0b60: 34 20 24 78 22 20 3e 26 33 0a 09 75 73 6c 65 65 4 $x" >&3..uslee
0b70: 70 20 32 30 30 30 30 0a 09 65 63 68 6f 20 22 50 p 20000..echo "P
0b80: 68 61 73 65 20 32 3a 20 54 65 73 74 20 4d 65 73 hase 2: Test Mes
0b90: 73 61 67 65 20 24 69 2f 24 6a 20 6f 6e 20 32 2f sage $i/$j on 2/
0ba0: 34 20 24 78 22 20 3e 26 34 0a 09 75 73 6c 65 65 4 $x" >&4..uslee
0bb0: 70 20 32 30 30 30 30 0a 09 65 63 68 6f 20 22 50 p 20000..echo "P
0bc0: 68 61 73 65 20 32 3a 20 54 65 73 74 20 4d 65 73 hase 2: Test Mes
0bd0: 73 61 67 65 20 24 69 2f 24 6a 20 6f 6e 20 33 2f sage $i/$j on 3/
0be0: 34 20 24 78 22 20 3e 26 35 0a 09 75 73 6c 65 65 4 $x" >&5..uslee
0bf0: 70 20 32 30 30 30 30 0a 09 65 63 68 6f 20 22 50 p 20000..echo "P
0c00: 68 61 73 65 20 32 3a 20 54 65 73 74 20 4d 65 73 hase 2: Test Mes
0c10: 73 61 67 65 20 24 69 2f 24 6a 20 6f 6e 20 34 2f sage $i/$j on 4/
0c20: 34 20 24 78 22 20 3e 26 36 0a 09 75 73 6c 65 65 4 $x" >&6..uslee
0c30: 70 20 32 30 30 30 30 0a 09 78 3d 22 78 24 78 22 p 20000..x="x$x"
0c40: 0a 09 63 61 73 65 20 24 69 20 69 6e 0a 09 20 20 ..case $i in..
0c50: 20 20 2a 5b 30 35 5d 29 0a 09 09 73 6c 65 65 70 *[05])...sleep
0c60: 20 32 0a 09 09 3b 3b 0a 09 65 73 61 63 0a 20 20 2...;;..esac.
0c70: 20 20 64 6f 6e 65 0a 20 20 20 20 0a 20 20 20 20 done. .
0c80: 65 63 68 6f 20 22 2f 62 79 65 22 20 3e 26 36 0a echo "/bye" >&6.
0c90: 20 20 20 20 73 6c 65 65 70 20 33 0a 20 20 20 20 sleep 3.
0ca0: 0a 20 20 20 20 78 3d 22 22 0a 0a 20 20 20 20 66 . x="".. f
0cb0: 6f 72 20 69 20 69 6e 20 24 28 73 65 71 20 31 20 or i in $(seq 1
0cc0: 24 63 6f 75 6e 74 29 0a 20 20 20 20 64 6f 0a 09 $count). do..
0cd0: 65 63 68 6f 20 22 50 68 61 73 65 20 33 3a 20 54 echo "Phase 3: T
0ce0: 65 73 74 20 4d 65 73 73 61 67 65 20 24 69 2f 24 est Message $i/$
0cf0: 6a 20 6f 6e 20 31 2f 33 20 24 78 22 20 3e 26 33 j on 1/3 $x" >&3
0d00: 0a 09 75 73 6c 65 65 70 20 32 30 30 30 30 0a 09 ..usleep 20000..
0d10: 65 63 68 6f 20 22 50 68 61 73 65 20 33 3a 20 54 echo "Phase 3: T
0d20: 65 73 74 20 4d 65 73 73 61 67 65 20 24 69 2f 24 est Message $i/$
0d30: 6a 20 6f 6e 20 32 2f 33 20 24 78 22 20 3e 26 34 j on 2/3 $x" >&4
0d40: 0a 09 75 73 6c 65 65 70 20 32 30 30 30 30 0a 09 ..usleep 20000..
0d50: 65 63 68 6f 20 22 50 68 61 73 65 20 33 3a 20 54 echo "Phase 3: T
0d60: 65 73 74 20 4d 65 73 73 61 67 65 20 24 69 2f 24 est Message $i/$
0d70: 6a 20 6f 6e 20 33 2f 33 20 24 78 22 20 3e 26 35 j on 3/3 $x" >&5
0d80: 0a 09 75 73 6c 65 65 70 20 32 30 30 30 30 0a 09 ..usleep 20000..
0d90: 78 3d 22 79 24 78 22 0a 09 63 61 73 65 20 24 69 x="y$x"..case $i
0da0: 20 69 6e 0a 09 20 20 20 20 2a 5b 30 35 5d 29 0a in.. *[05]).
0db0: 09 09 73 6c 65 65 70 20 32 0a 09 09 3b 3b 0a 09 ..sleep 2...;;..
0dc0: 65 73 61 63 0a 20 20 20 20 64 6f 6e 65 0a 0a 20 esac. done..
0dd0: 20 20 20 65 78 65 63 20 36 3e 20 3e 28 24 47 46 exec 6> >($GF
0de0: 4f 52 54 48 20 2e 2e 2f 6e 32 6f 20 24 64 65 62 ORTH ../n2o $deb
0df0: 75 67 73 20 31 35 25 20 24 2a 20 63 68 61 74 20 ugs 15% $* chat
0e00: 74 65 73 74 40 63 68 61 74 2d 74 65 73 74 32 20 test@chat-test2
0e10: 3e 3e 6d 73 67 2d 74 65 73 74 2e 6f 75 74 2e 34 >>msg-test.out.4
0e20: 29 0a 20 20 20 20 65 78 70 6f 72 74 20 47 46 4f ). export GFO
0e30: 52 54 48 50 49 44 35 3d 24 5b 24 21 2b 31 5d 0a RTHPID5=$[$!+1].
0e40: 20 20 20 20 73 6c 65 65 70 20 35 0a 64 6f 6e 65 sleep 5.done
0e50: 0a 0a 65 63 68 6f 20 22 4c 61 73 74 20 4d 65 73 ..echo "Last Mes
0e60: 73 61 67 65 20 24 69 20 6f 6e 20 31 2f 38 20 24 sage $i on 1/8 $
0e70: 78 22 20 3e 26 33 0a 75 73 6c 65 65 70 20 32 30 x" >&3.usleep 20
0e80: 30 30 30 0a 65 63 68 6f 20 22 4c 61 73 74 20 4d 000.echo "Last M
0e90: 65 73 73 61 67 65 20 24 69 20 6f 6e 20 32 2f 38 essage $i on 2/8
0ea0: 20 24 78 22 20 3e 26 34 0a 75 73 6c 65 65 70 20 $x" >&4.usleep
0eb0: 32 30 30 30 30 0a 65 63 68 6f 20 22 4c 61 73 74 20000.echo "Last
0ec0: 20 4d 65 73 73 61 67 65 20 24 69 20 6f 6e 20 33 Message $i on 3
0ed0: 2f 38 20 24 78 22 20 3e 26 35 0a 75 73 6c 65 65 /8 $x" >&5.uslee
0ee0: 70 20 32 30 30 30 30 0a 65 63 68 6f 20 22 4c 61 p 20000.echo "La
0ef0: 73 74 20 4d 65 73 73 61 67 65 20 24 69 20 6f 6e st Message $i on
0f00: 20 34 2f 38 20 24 78 22 20 3e 26 36 0a 75 73 6c 4/8 $x" >&6.usl
0f10: 65 65 70 20 32 30 30 30 30 0a 65 63 68 6f 20 22 eep 20000.echo "
0f20: 4c 61 73 74 20 4d 65 73 73 61 67 65 20 24 69 20 Last Message $i
0f30: 6f 6e 20 35 2f 38 20 24 78 22 20 3e 26 37 0a 75 on 5/8 $x" >&7.u
0f40: 73 6c 65 65 70 20 32 30 30 30 30 0a 65 63 68 6f sleep 20000.echo
0f50: 20 22 4c 61 73 74 20 4d 65 73 73 61 67 65 20 24 "Last Message $
0f60: 69 20 6f 6e 20 36 2f 38 20 24 78 22 20 3e 26 38 i on 6/8 $x" >&8
0f70: 0a 75 73 6c 65 65 70 20 32 30 30 30 30 0a 65 63 .usleep 20000.ec
0f80: 68 6f 20 22 4c 61 73 74 20 4d 65 73 73 61 67 65 ho "Last Message
0f90: 20 24 69 20 6f 6e 20 37 2f 38 20 24 78 22 20 3e $i on 7/8 $x" >
0fa0: 26 39 0a 75 73 6c 65 65 70 20 32 30 30 30 30 0a &9.usleep 20000.
0fb0: 65 63 68 6f 20 22 4c 61 73 74 20 4d 65 73 73 61 echo "Last Messa
0fc0: 67 65 20 24 69 20 6f 6e 20 38 2f 38 20 24 78 22 ge $i on 8/8 $x"
0fd0: 20 3e 26 31 30 0a 75 73 6c 65 65 70 20 32 30 30 >&10.usleep 200
0fe0: 30 30 0a 0a 65 63 68 6f 20 22 2f 73 79 6e 63 22 00..echo "/sync"
0ff0: 20 3e 26 36 0a 65 63 68 6f 20 22 2f 63 68 61 74 >&6.echo "/chat
1000: 73 22 20 3e 26 31 30 0a 73 6c 65 65 70 20 33 0a s" >&10.sleep 3.
1010: 65 63 68 6f 20 22 2f 62 79 65 22 20 3e 26 31 30 echo "/bye" >&10
1020: 0a 65 63 68 6f 20 22 2f 63 68 61 74 73 22 20 3e .echo "/chats" >
1030: 26 39 0a 73 6c 65 65 70 20 33 0a 65 63 68 6f 20 &9.sleep 3.echo
1040: 22 2f 62 79 65 22 20 3e 26 39 0a 65 63 68 6f 20 "/bye" >&9.echo
1050: 22 2f 63 68 61 74 73 22 20 3e 26 38 0a 73 6c 65 "/chats" >&8.sle
1060: 65 70 20 33 0a 65 63 68 6f 20 22 2f 62 79 65 22 ep 3.echo "/bye"
1070: 20 3e 26 38 0a 65 63 68 6f 20 22 2f 63 68 61 74 >&8.echo "/chat
1080: 73 22 20 3e 26 37 0a 73 6c 65 65 70 20 33 0a 65 s" >&7.sleep 3.e
1090: 63 68 6f 20 22 2f 62 79 65 22 20 3e 26 37 0a 65 cho "/bye" >&7.e
10a0: 63 68 6f 20 22 2f 63 68 61 74 73 22 20 3e 26 35 cho "/chats" >&5
10b0: 0a 73 6c 65 65 70 20 33 0a 65 63 68 6f 20 22 2f .sleep 3.echo "/
10c0: 62 79 65 22 20 3e 26 35 0a 65 63 68 6f 20 22 2f bye" >&5.echo "/
10d0: 63 68 61 74 73 22 20 3e 26 34 0a 73 6c 65 65 70 chats" >&4.sleep
10e0: 20 33 0a 65 63 68 6f 20 22 2f 62 79 65 22 20 3e 3.echo "/bye" >
10f0: 26 34 0a 65 63 68 6f 20 22 2f 63 68 61 74 73 22 &4.echo "/chats"
1100: 20 3e 26 33 0a 73 6c 65 65 70 20 33 0a 65 63 68 >&3.sleep 3.ech
1110: 6f 20 22 2f 62 79 65 22 20 3e 26 33 0a 65 63 68 o "/bye" >&3.ech
1120: 6f 20 22 2f 63 68 61 74 73 22 20 3e 26 36 0a 73 o "/chats" >&6.s
1130: 6c 65 65 70 20 33 0a 65 63 68 6f 20 22 2f 62 79 leep 3.echo "/by
1140: 65 22 20 3e 26 36 0a 73 6c 65 65 70 20 35 0a e" >&6.sleep 5.