Mercurial > dovecot > core-2.2
annotate src/lib/test-ostream-multiplex.c @ 22955:812e5c961328
fts: Indexing virtual mailbox didn't always index the last mails
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 03 May 2018 18:33:00 +0300 |
parents | cb108f786fb4 |
children |
rev | line source |
---|---|
22713
cb108f786fb4
Updated copyright notices to include the year 2018.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents:
22596
diff
changeset
|
1 /* Copyright (c) 2017-2018 Dovecot authors, see the included COPYING file */ |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
2 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
3 #include "test-lib.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
4 #include "randgen.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
5 #include "ioloop.h" |
22577
c6c9c24d6182
lib: iostream-multiplex tests - Fix hangs by setting the pipe fds non-blocking
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
22553
diff
changeset
|
6 #include "fd-set-nonblock.h" |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
7 #include "str.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
8 #include "istream.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
9 #include "ostream-private.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
10 #include "ostream-multiplex.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
11 #include "ostream.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
12 #include <unistd.h> |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
13 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
14 #include "hex-binary.h" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
15 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
16 static void test_ostream_multiplex_simple(void) |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
17 { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
18 test_begin("ostream multiplex (simple)"); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
19 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
20 const unsigned char expected[] = { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
21 '\x00','\x00','\x00','\x00','\x05','\x68','\x65', |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
22 '\x6c','\x6c','\x6f','\x01','\x00','\x00','\x00', |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
23 '\x05','\x77','\x6f','\x72','\x6c','\x64' |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
24 }; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
25 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
26 buffer_t *result = t_str_new(64); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
27 struct ostream *os = test_ostream_create(result); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
28 struct ostream *os2 = o_stream_create_multiplex(os, (size_t)-1); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
29 struct ostream *os3 = o_stream_multiplex_add_channel(os2, 1); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
30 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
31 test_assert(o_stream_send_str(os2, "hello") == 5); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
32 test_assert(o_stream_send_str(os3, "world") == 5); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
33 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
34 o_stream_unref(&os3); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
35 o_stream_unref(&os2); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
36 o_stream_unref(&os); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
37 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
38 test_assert(sizeof(expected) == result->used); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
39 test_assert(memcmp(result->data, expected, I_MIN(sizeof(expected), |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
40 result->used)) == 0); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
41 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
42 test_end(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
43 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
44 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
45 static unsigned int channel_counter[2] = {0, 0}; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
46 static struct ostream *chan0, *chan1; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
47 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
48 static const char *msgs[] = { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
49 "", |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
50 "a", |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
51 "bb", |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
52 "ccc", |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
53 "dddd", |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
54 "eeeee", |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
55 "ffffff" |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
56 }; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
57 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
58 static void test_ostream_multiplex_stream_read(struct istream *is) |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
59 { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
60 uint8_t cid; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
61 const unsigned char *data; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
62 size_t siz,dlen=0,pos=0; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
63 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
64 if (i_stream_read_more(is, &data, &siz)>0) { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
65 /* parse stream */ |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
66 for(;pos<siz;) { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
67 if (dlen > 0) { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
68 if (dlen < N_ELEMENTS(msgs)) { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
69 test_assert_idx(memcmp(&data[pos], |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
70 msgs[dlen], dlen)==0, |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
71 channel_counter[data[0] % 2]); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
72 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
73 channel_counter[data[0] % 2]++; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
74 pos += dlen; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
75 dlen = 0; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
76 } else if (dlen == 0) { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
77 cid = data[pos] % 2; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
78 test_assert_idx(data[pos] < 2, channel_counter[cid]); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
79 pos++; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
80 dlen = be32_to_cpu_unaligned(&data[pos]); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
81 pos += 4; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
82 test_assert(dlen > 0 && dlen < N_ELEMENTS(msgs)); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
83 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
84 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
85 i_stream_skip(is, siz); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
86 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
87 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
88 if (channel_counter[0] > 100 && channel_counter[1] > 100) |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
89 io_loop_stop(current_ioloop); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
90 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
91 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
92 static void test_ostream_multiplex_stream_write(struct ostream *channel ATTR_UNUSED) |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
93 { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
94 size_t rounds = 1 + rand() % 10; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
95 for(size_t i = 0; i < rounds; i++) { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
96 if ((rand() % 2) != 0) |
22596
1a7bbda6284b
iostream-multiplex: Check return values in tests
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
22577
diff
changeset
|
97 o_stream_nsend_str(chan1, msgs[rand() % N_ELEMENTS(msgs)]); |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
98 else |
22596
1a7bbda6284b
iostream-multiplex: Check return values in tests
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
22577
diff
changeset
|
99 o_stream_nsend_str(chan0, msgs[rand() % N_ELEMENTS(msgs)]); |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
100 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
101 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
102 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
103 static void test_ostream_multiplex_stream(void) |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
104 { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
105 test_begin("ostream multiplex (stream)"); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
106 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
107 struct ioloop *ioloop = io_loop_create(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
108 io_loop_set_current(ioloop); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
109 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
110 int fds[2]; |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
111 test_assert(pipe(fds) == 0); |
22577
c6c9c24d6182
lib: iostream-multiplex tests - Fix hangs by setting the pipe fds non-blocking
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
22553
diff
changeset
|
112 fd_set_nonblock(fds[0], TRUE); |
c6c9c24d6182
lib: iostream-multiplex tests - Fix hangs by setting the pipe fds non-blocking
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
22553
diff
changeset
|
113 fd_set_nonblock(fds[1], TRUE); |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
114 struct ostream *os = o_stream_create_fd(fds[1], (size_t)-1, FALSE); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
115 struct istream *is = i_stream_create_fd(fds[0], (size_t)-1, FALSE); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
116 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
117 chan0 = o_stream_create_multiplex(os, (size_t)-1); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
118 chan1 = o_stream_multiplex_add_channel(chan0, 1); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
119 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
120 struct io *io0 = |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
121 io_add_istream(is, test_ostream_multiplex_stream_read, is); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
122 struct io *io1 = |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
123 io_add(fds[1], IO_WRITE, test_ostream_multiplex_stream_write, os); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
124 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
125 io_loop_run(current_ioloop); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
126 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
127 io_remove(&io0); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
128 io_remove(&io1); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
129 |
22596
1a7bbda6284b
iostream-multiplex: Check return values in tests
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
22577
diff
changeset
|
130 test_assert(o_stream_nfinish(chan1) == 0); |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
131 o_stream_unref(&chan1); |
22596
1a7bbda6284b
iostream-multiplex: Check return values in tests
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
22577
diff
changeset
|
132 test_assert(o_stream_nfinish(chan0) == 0); |
22553
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
133 o_stream_unref(&chan0); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
134 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
135 i_stream_unref(&is); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
136 o_stream_unref(&os); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
137 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
138 io_loop_destroy(&ioloop); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
139 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
140 i_close_fd(&fds[0]); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
141 i_close_fd(&fds[1]); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
142 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
143 test_end(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
144 } |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
145 |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
146 void test_ostream_multiplex(void) |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
147 { |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
148 random_init(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
149 test_ostream_multiplex_simple(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
150 test_ostream_multiplex_stream(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
151 random_deinit(); |
7db517071db5
lib: Add multiplex stream support
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
152 } |