9 //=============================================================================
10 //= ack_test type =============================================================
11 //=============================================================================
20 //=============================================================================
21 //= ack_test var ==============================================================
22 //=============================================================================
24 terrList
= []terrData
{
26 Headers
{HK_DESTINATION
, "/queue/a"},
29 Headers
{HK_DESTINATION
, "/queue/a"},
32 Headers
{HK_DESTINATION
, "/queue/a", HK_SUBSCRIPTION
, "sub11a"},
35 Headers
{HK_DESTINATION
, "/queue/a"},
40 //=============================================================================
41 //= ack_test const ============================================================
42 //=============================================================================
47 //=============================================================================
48 //= codec_test type ===========================================================
49 //=============================================================================
58 //=============================================================================
59 //= codec_test var ============================================================
60 //=============================================================================
64 {"stringa", "stringa"},
65 {"stringb", "stringb"},
66 {"stringc", "stringc"},
67 {"stringd", "stringd"},
68 {"stringe", "stringe"},
69 {"stringf", "stringf"},
70 {"stringg", "stringg"},
71 {"stringh", "stringh"},
75 {"\\\\\\n\\c", "\\\n:"},
76 {"\\c\\n\\\\", ":\n\\"},
83 //=============================================================================
84 //= codec_test const ==========================================================
85 //=============================================================================
90 //=============================================================================
91 //= connbv_test type ==========================================================
92 //=============================================================================
97 //=============================================================================
98 //= connbv_test var ===========================================================
99 //=============================================================================
104 //=============================================================================
105 //= connbv_test const =========================================================
106 //=============================================================================
111 //=============================================================================
112 //= conndisc_test type ========================================================
113 //=============================================================================
120 ch Headers
// Client headers
121 sh Headers
// Server headers
122 e error
// Expected error
126 //=============================================================================
127 //= conndisc_test var =========================================================
128 //=============================================================================
130 frames
= []frameData
{ // Many are possible but very unlikely
131 {"EBADFRM", EBADFRM
},
132 {"EUNKFRM\n\n\x00", EUNKFRM
},
133 {"ERROR\n\n\x00", nil},
134 {"ERROR\n\x00", EBADFRM
},
135 {"ERROR\n\n", EBADFRM
},
136 {"ERROR\nbadconhdr\n\n\x00", EUNKHDR
},
137 {"ERROR\nbadcon:badmsg\n\n\x00", nil},
138 {"ERROR\nbadcon:badmsg\n\nbad message\x00", nil},
139 {"CONNECTED\n\n\x00", nil},
140 {"CONNECTED\n\nconnbody\x00", EBDYDATA
},
141 {"CONNECTED\n\nconnbadbody", EBDYDATA
},
142 {"CONNECTED\nk1:v1\nk2:v2\n\nconnbody\x00", EBDYDATA
},
143 {"CONNECTED\nk1:v1\nk2:v2\n\nconnbody", EBDYDATA
},
144 {"CONNECTED\nk1:v1\nk2:v2\n\n\x00", nil},
146 verChecks
= []verData
{
147 {Headers
{HK_ACCEPT_VERSION
, SPL_11
}, Headers
{HK_VERSION
, SPL_11
}, nil},
148 {Headers
{}, Headers
{}, nil},
149 {Headers
{HK_ACCEPT_VERSION
, "1.0,1.1,1.2"}, Headers
{HK_VERSION
, SPL_12
}, nil},
150 {Headers
{HK_ACCEPT_VERSION
, "1.3"}, Headers
{HK_VERSION
, "1.3"}, EBADVERSVR
},
151 {Headers
{HK_ACCEPT_VERSION
, "1.3"}, Headers
{HK_VERSION
, "1.1"}, EBADVERCLI
},
152 {Headers
{HK_ACCEPT_VERSION
, "1.0,1.1,1.2"}, Headers
{}, nil},
156 //=============================================================================
157 //= conndisc_test const =======================================================
158 //=============================================================================
163 //=============================================================================
164 //= data_test type ============================================================
165 //=============================================================================
170 //=============================================================================
171 //= data_test var =============================================================
172 //=============================================================================
174 suptests
= []supdata
{
184 //=============================================================================
185 //= data_test const ===========================================================
186 //=============================================================================
191 //=============================================================================
192 //= hb_test type ==============================================================
193 //=============================================================================
196 testhbl
bool // Run long heartbeat tests
197 testhbvb
bool // Verbose long heartbeat tests
201 //=============================================================================
202 //= hb_test var ===============================================================
203 //=============================================================================
205 testhbrd
= hbrundata
{
211 //=============================================================================
212 //= hb_test const =============================================================
213 //=============================================================================
216 hbs
= 45 // Wait time (secs)
219 //=============================================================================
220 //= headers_test type =========================================================
221 //=============================================================================
226 //=============================================================================
227 //= headers_test var ==========================================================
228 //=============================================================================
233 //=============================================================================
234 //= headers_test const ========================================================
235 //=============================================================================
240 //=============================================================================
241 //= logger_test type ==========================================================
242 //=============================================================================
247 //=============================================================================
248 //= logger_test var ===========================================================
249 //=============================================================================
254 //=============================================================================
255 //= logger_test const =========================================================
256 //=============================================================================
261 //=============================================================================
262 //= misc_test type ============================================================
263 //=============================================================================
268 //=============================================================================
269 //= misc_test var =============================================================
270 //=============================================================================
275 //=============================================================================
276 //= misc_test const ===========================================================
277 //=============================================================================
282 //=============================================================================
283 //= nack_test type ============================================================
284 //=============================================================================
293 //=============================================================================
294 //= nack_test var =============================================================
295 //=============================================================================
297 nackList
= []nackData
{
299 Headers
{HK_DESTINATION
, "/queue/a"},
302 Headers
{HK_DESTINATION
, "/queue/a"},
305 Headers
{HK_DESTINATION
, "/queue/a", HK_SUBSCRIPTION
, "sub11a"},
308 Headers
{HK_DESTINATION
, "/queue/a"},
313 //=============================================================================
314 //= nack_test const ===========================================================
315 //=============================================================================
320 //=============================================================================
321 //= send_test type ============================================================
322 //=============================================================================
327 //=============================================================================
328 //= send_test var =============================================================
329 //=============================================================================
334 //=============================================================================
335 //= send_test const ===========================================================
336 //=============================================================================
342 // sendbytes_test BEGIN
344 //=============================================================================
345 //= sendbytes_test type =======================================================
346 //=============================================================================
351 //=============================================================================
352 //= sendbytes_test var ========================================================
353 //=============================================================================
358 //=============================================================================
359 //= sendbytes_test const ======================================================
360 //=============================================================================
365 //=============================================================================
366 //= sub_test type =============================================================
367 //=============================================================================
369 subNoHeaderData
struct {
380 subPlainData
struct {
388 subTwiceData
struct {
402 //=============================================================================
403 //= sub_test var ==============================================================
404 //=============================================================================
406 subNoHeaderDataList
= []subNoHeaderData
{
407 {SPL_10
, EREQDSTSUB
},
408 {SPL_11
, EREQDSTSUB
},
409 {SPL_12
, EREQDSTSUB
},
411 subNoIDDataList
= []subNoIDData
{
413 Headers
{HK_DESTINATION
, "/queue/subNoIDTest.10"},
416 Headers
{HK_DESTINATION
, "/queue/subNoIDTest.11"},
419 Headers
{HK_DESTINATION
, "/queue/subNoIDTest.12"},
422 subPlainDataList
= []subPlainData
{
424 Headers
{HK_DESTINATION
, "/queue/subPlainTest.10",
425 HK_ID
, "subPlainTest.10"},
426 Headers
{HK_DESTINATION
, "/queue/subPlainTest.10",
427 HK_ID
, "subPlainTest.10"},
430 Headers
{HK_DESTINATION
, "/queue/subPlainTest.11",
431 HK_ID
, "subPlainTest.11"},
432 Headers
{HK_DESTINATION
, "/queue/subPlainTest.11",
433 HK_ID
, "subPlainTest.11"},
436 Headers
{HK_DESTINATION
, "/queue/subPlainTest.12",
437 HK_ID
, "subPlainTest.11"},
438 Headers
{HK_DESTINATION
, "/queue/subPlainTest.12",
439 HK_ID
, "subPlainTest.11"},
443 subTwiceDataList
= []subTwiceData
{
445 Headers
{HK_DESTINATION
, "/queue/subTwiceTest.10",
446 HK_ID
, "subTwiceTest.10"},
449 Headers
{HK_DESTINATION
, "/queue/subTwiceTest.11",
450 HK_ID
, "subTwiceTest.11"},
453 Headers
{HK_DESTINATION
, "/queue/subTwiceTest.12",
454 HK_ID
, "subTwiceTest.11"},
458 subAckDataList
= []subAckData
{
461 Headers
{HK_DESTINATION
, "/queue/subAckTest.10.1"},
464 Headers
{HK_DESTINATION
, "/queue/subAckTest.10.2",
465 HK_ACK
, AckModeAuto
},
468 Headers
{HK_DESTINATION
, "/queue/subAckTest.10.3",
469 HK_ACK
, AckModeClient
},
472 Headers
{HK_DESTINATION
, "/queue/subAckTest.10.3",
473 HK_ACK
, AckModeClientIndividual
},
476 Headers
{HK_DESTINATION
, "/queue/subAckTest.10.4",
481 Headers
{HK_DESTINATION
, "/queue/subAckTest.11.1"},
484 Headers
{HK_DESTINATION
, "/queue/subAckTest.11.2",
485 HK_ACK
, AckModeAuto
},
488 Headers
{HK_DESTINATION
, "/queue/subAckTest.11.3",
489 HK_ACK
, AckModeClient
},
492 Headers
{HK_DESTINATION
, "/queue/subAckTest.11.4",
493 HK_ACK
, AckModeClientIndividual
},
496 Headers
{HK_DESTINATION
, "/queue/subAckTest.11.5",
501 Headers
{HK_DESTINATION
, "/queue/subAckTest.12.1"},
504 Headers
{HK_DESTINATION
, "/queue/subAckTest.12.2",
505 HK_ACK
, AckModeAuto
},
508 Headers
{HK_DESTINATION
, "/queue/subAckTest.12.3",
509 HK_ACK
, AckModeClient
},
512 Headers
{HK_DESTINATION
, "/queue/subAckTest.12.4",
513 HK_ACK
, AckModeClientIndividual
},
516 Headers
{HK_DESTINATION
, "/queue/subAckTest.12.5",
522 //=============================================================================
523 //= sub_test const ============================================================
524 //=============================================================================
529 //=============================================================================
530 //= suppress_test type ========================================================
531 //=============================================================================
536 //=============================================================================
537 //= suppress_test var =========================================================
538 //=============================================================================
540 tsclData
= []struct {
545 []uint8{0x61, 0x62, 0x63, 0x64, 0x65, 0x66},
549 []uint8{0x61, 0x62, 0x63, 0x00, 0x64, 0x65, 0x66},
553 []uint8{0x64, 0x65, 0x66, 0x00},
557 []uint8{0x00, 0x64, 0x65, 0x66, 0x00},
561 tsctData
= []struct {
579 //=============================================================================
580 //= suppress_test const =======================================================
581 //=============================================================================
586 //=============================================================================
587 //= testdata_test type ========================================================
588 //=============================================================================
591 sendRecvCodecData
struct {
593 sk
[]string // send keys
594 sv
[]string // send values
595 rv
map[string]string // expected receive value
599 s
bool // is supported
603 //=============================================================================
604 //= testdata_test var =========================================================
605 //=============================================================================
607 srcdList10
= []sendRecvCodecData
{
609 sk
: []string{"keya"},
610 sv
: []string{"valuea"},
611 rv
: map[string]string{"keya": "valuea"}},
613 sk
: []string{"key:one"},
614 sv
: []string{"value:a"},
615 rv
: map[string]string{"key": "one:value:a"}},
618 sv
: []string{"valuec"},
619 rv
: map[string]string{"key": "valuec"}},
622 srcdList1p
= []sendRecvCodecData
{
624 sk
: []string{"keya"},
625 sv
: []string{"valuea"},
626 rv
: map[string]string{"keya": "valuea"}},
628 sk
: []string{"key:one", "key/ntwo", "key:three/naaa\\bbb"},
629 sv
: []string{"value\\one", "value:two\\back:slash", "value\\three:aaa/nbbb"},
630 rv
: map[string]string{"key:one": "value\\one",
631 "key/ntwo": "value:two\\back:slash",
632 "key:three/naaa\\bbb": "value\\three:aaa/nbbb"}},
635 srcdmap
= map[string][]sendRecvCodecData
{SPL_10
: srcdList10
,
640 //=============================================================================
641 //= testdata_test const =======================================================
642 //=============================================================================
647 //=============================================================================
648 //= trans_test type ===========================================================
649 //=============================================================================
651 transBasicData
struct {
656 transSendCommitData
struct {
660 transSendAbortData
struct {
664 transMessageOrderData
struct {
670 //=============================================================================
671 //= trans_test var ============================================================
672 //=============================================================================
674 transBasicList
= []transBasicData
{
675 {BEGIN
, Headers
{}, EREQTIDBEG
},
676 {COMMIT
, Headers
{}, EREQTIDCOM
},
677 {ABORT
, Headers
{}, EREQTIDABT
},
678 {BEGIN
, Headers
{HK_TRANSACTION
, ""}, ETIDBEGEMT
},
679 {COMMIT
, Headers
{HK_TRANSACTION
, ""}, ETIDCOMEMT
},
680 {ABORT
, Headers
{HK_TRANSACTION
, ""}, ETIDABTEMT
},
682 transSendCommitList
= []transSendCommitData
{
683 {"trans.send.commit", nil},
686 transSendAbortList
= []transSendAbortData
{
687 {"trans.send.abort", nil},
689 transMessageOrderList
= []transMessageOrderData
{
690 {Headers
{HK_DESTINATION
, "/queue/tsrbdata.q"}, nil},
694 //=============================================================================
695 //= trans_test const ==========================================================
696 //=============================================================================
701 //=============================================================================
702 //= unsub_test type ===========================================================
703 //=============================================================================
705 unsubNoHeaderData
struct {
709 unsubNoIDData
struct {
714 unsubBoolData
struct {
724 //=============================================================================
725 //= unsub_test var ============================================================
726 //=============================================================================
728 unsubNoHeaderDataList
= []subNoHeaderData
{
733 unsubNoIDDataList
= []subNoIDData
{
739 Headers
{HK_DESTINATION
, "/queue/unsubIDTest.10.1"},
742 Headers
{HK_DESTINATION
, "/queue/unsubIDTest.10.2",
743 HK_ID
, "unsubIDTest.10.2"},
750 Headers
{HK_DESTINATION
, "/queue/unsubIDTest.11.1"},
753 Headers
{HK_DESTINATION
, "/queue/unsubIDTest.11.2",
754 HK_ID
, "unsubIDTest.11.2"},
761 Headers
{HK_DESTINATION
, "/queue/unsubIDTest.12.1"},
764 Headers
{HK_DESTINATION
, "/queue/unsubIDTest.12.2",
765 HK_ID
, "unsubIDTest.12.2"},
769 // REQIDUNS = Error("id required, UNSUBSCRIBE")
770 // REQDIUNS = Error("destination required, UNSUBSCRIBE")
772 unsubBoolDataList
= []unsubBoolData
{
781 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.10.1"},
782 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.10.1"},
786 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.10.2"},
787 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.10.2"},
797 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.11.1"},
798 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.11.1"},
802 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.11.2"},
803 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.11.2"},
813 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.12.1"},
814 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.12.1"},
818 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.10.1"},
819 Headers
{HK_DESTINATION
, "/queue/PlainDataTest.10.1"},
824 //=============================================================================
825 //= unsub_test const ==========================================================
826 //=============================================================================
831 //=============================================================================
832 //= utils_test type ===========================================================
833 //=============================================================================
835 multi_send_data
struct {
836 conn
*Connection
// this connection
837 dest
string // queue/topic name
838 mpref
string // message prefix
839 count
int // number of messages
843 //=============================================================================
844 //= utils_test var ============================================================
845 //=============================================================================
850 //=============================================================================
851 //= utils_test const ==========================================================
852 //=============================================================================
857 //=============================================================================
858 //= shovel_dup_headers_test type ==============================================
859 //=============================================================================
864 //=============================================================================
865 //= shovel_dup_headers_test var ===============================================
866 //=============================================================================
868 tsdhHeaders
= Headers
{
873 wantedDupeV1
= Headers
{
876 wantedDupeV2
= Headers
{
879 wantedDupeVAll
= Headers
{
885 //=============================================================================
886 //= shovel_dup_headers_test const =============================================
887 //=============================================================================
892 //=============================================================================
893 //= deadline_test type ========================================================
894 //=============================================================================
899 //=============================================================================
900 //= deadline_test var =========================================================
901 //=============================================================================
903 wdleInit
= false // Enabled just after init
906 //=============================================================================
907 //= deadline_test const =======================================================
908 //=============================================================================
913 //=============================================================================
914 //= for use by all type =======================================================
915 //=============================================================================
920 //=============================================================================
921 //= for use by all var ========================================================
922 //=============================================================================
924 TEST_HEADERS
= Headers
{HK_LOGIN
, "guest", HK_PASSCODE
, "guest"}
925 TEST_TDESTPREF
= "/queue/test.pref."
926 TEST_TRANID
= "TransactionA"
930 empty_headers
= Headers
{}
931 testuser
= "guest" // "guest" is required by some brokers
933 login_headers
= Headers
{HK_LOGIN
, testuser
, HK_PASSCODE
, testpw
}
934 rid
= "receipt-12345"
935 oneOnePlusProtos
= []string{SPL_11
, SPL_12
}
939 sc
<-chan MessageData
941 badam
= "AckModeInvalid"
943 tm
= "A Test Message."
944 tlg
= log
.New(os
.Stderr
, "TLG|", log
.Ldate|log
.Lmicroseconds
)
947 //=============================================================================
948 //= for use by all const ======================================================
949 //=============================================================================
951 TEST_ANYBROKER
= iota