]> diplodocus.org Git - nmh/blob - test/managed-folders/test-read-message
expect this commit to be force-replaced periodically
[nmh] / test / managed-folders / test-read-message
1 #!/bin/sh
2
3 if [ -z "$MH_OBJ_DIR" ]; then
4 srcdir=`dirname "$0"`/../..
5 MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
6 fi
7
8 . "$MH_OBJ_DIR/test/common.sh"
9
10 setup_test_without_data
11
12 expected="$MH_TEST_DIR/$$.expected"
13 actual="$MH_TEST_DIR/$$.actual"
14
15 start_test 'one 32-component message with initial vector size of 1'
16 cat > "$expected" <<EOF
17 msg0 size=66
18 len = 471
19 comp1 = value1
20 comp2 = value2
21 comp3 = value3
22 comp4 = value4
23 comp5 = value5
24 comp6 = value6
25 comp7 = value7
26 comp8 = value8
27 comp9 = value9
28 comp10 = value10
29 comp11 = value11
30 comp12 = value12
31 comp13 = value13
32 comp14 = value14
33 comp15 = value15
34 comp16 = value16
35 comp17 = value17
36 comp18 = value18
37 comp19 = value19
38 comp20 = value20
39 comp21 = value21
40 comp22 = value22
41 comp23 = value23
42 comp24 = value24
43 comp25 = value25
44 comp26 = value26
45 comp27 = value27
46 comp28 = value28
47 comp29 = value29
48 comp30 = value30
49 comp31 = value31
50 comp32 = value32
51 EOF
52 "$MH_OBJ_DIR/test/managed-folders/protocol-tester" read-message -initial-vector-size 1 -message-count 1 > "$actual" <<EOF
53 len:471
54 comp1:value1
55 comp2:value2
56 comp3:value3
57 comp4:value4
58 comp5:value5
59 comp6:value6
60 comp7:value7
61 comp8:value8
62 comp9:value9
63 comp10:value10
64 comp11:value11
65 comp12:value12
66 comp13:value13
67 comp14:value14
68 comp15:value15
69 comp16:value16
70 comp17:value17
71 comp18:value18
72 comp19:value19
73 comp20:value20
74 comp21:value21
75 comp22:value22
76 comp23:value23
77 comp24:value24
78 comp25:value25
79 comp26:value26
80 comp27:value27
81 comp28:value28
82 comp29:value29
83 comp30:value30
84 comp31:value31
85 comp32:value32
86 EOF
87 check "$expected" "$actual"
88
89 start_test 'two messages'
90 cat > "$expected" <<EOF
91 msg0 size=4
92 len = 19
93 cmp1 = value
94 msg1 size=4
95 len = 19
96 cmp2 = value
97 EOF
98 "$MH_OBJ_DIR/test/managed-folders/protocol-tester" read-message -initial-vector-size 16 -message-count 2 > "$actual" <<EOF
99 len:19
100 cmp1:value
101 len:19
102 cmp2:value
103 EOF
104 check "$expected" "$actual"
105
106 # TODO This is a limitation of using m_getfld2 to parse messages.
107 # Not sure we can fix it as long as we're using m_getfld2.
108 # But reuse of m_getfld2 is the entire reason for the protocol taking this particular form.
109 # The protocol is entirely internal so it doesn't really matter...
110 start_test 'two messages with no newline between them does not work'
111 cat > "$expected" <<EOF
112 we read 24 instead of 18
113 msg0 size=4 mh_folder_manager_protocol_read_message failed
114 EOF
115 ("$MH_OBJ_DIR/test/managed-folders/protocol-tester" read-message -initial-vector-size 16 -message-count 2 > "$actual" 2>&1 || :) <<EOF
116 len:18
117 cmp1:valuelen:19
118 cmp2:value
119 EOF
120 check "$expected" "$actual"
121
122 finish_test
123 exit $failed