@@ -40,12 +40,74 @@ $ps->autoflush(1);
4040$t -> set_c($ps );
4141
4242{
43+ test_res();
4344 test_basics();
4445 test_fetch_extstore();
4546 test_pipe_extstore();
4647 test_etc();
4748}
4849
50+ # ensure the result objects still function for internal RES.
51+ # NOTE: could cuddle the mode with P or L flags but I wanted to seed the item
52+ # for each individual test.
53+ sub test_res {
54+ subtest ' response/hit' => sub {
55+ $t -> c_send(" mg response/hit v t\r\n " );
56+ $t -> c_recv(" SERVER_ERROR res:hit = false\r\n " );
57+
58+ $t -> c_send(" ms response/hit 2\r\n hi\r\n " );
59+ $t -> c_recv(" HD\r\n " , " seeding hit response" );
60+
61+ $t -> c_send(" mg response/hit v t\r\n " );
62+ $t -> c_recv(" SERVER_ERROR res:hit = true\r\n " );
63+
64+ $t -> clear();
65+ };
66+
67+ # NOTE: if this test fails it may be because MCMC_CODE numbers changed
68+ subtest ' response/code' => sub {
69+ $t -> c_send(" mg response/code v t\r\n " );
70+ $t -> c_recv(" SERVER_ERROR res:code = 17\r\n " );
71+
72+ $t -> c_send(" ms response/code 2\r\n hi\r\n " );
73+ $t -> c_recv(" HD\r\n " , " seeding response" );
74+
75+ $t -> c_send(" mg response/code v t\r\n " );
76+ $t -> c_recv(" SERVER_ERROR res:code = 15\r\n " );
77+
78+ $t -> clear();
79+ };
80+
81+ subtest ' response/line' => sub {
82+ $t -> c_send(" mg response/line v t\r\n " );
83+ $t -> c_recv(" SERVER_ERROR res:line = nil\r\n " );
84+
85+ $t -> c_send(" ms response/line 2\r\n hi\r\n " );
86+ $t -> c_recv(" HD\r\n " , " seeding response" );
87+
88+ $t -> c_send(" mg response/line v t s h\r\n " );
89+ $t -> c_recv(" SERVER_ERROR res:line = \" t-1 s2 h0\"\r\n " );
90+
91+ $t -> clear();
92+ };
93+
94+ subtest ' response/line' => sub {
95+ $t -> c_send(" mg response/vlen v t\r\n " );
96+ $t -> c_recv(" SERVER_ERROR res:vlen = 0\r\n " );
97+
98+ $t -> c_send(" ms response/vlen 5\r\n hello\r\n " );
99+ $t -> c_recv(" HD\r\n " , " seeding response" );
100+
101+ $t -> c_send(" mg response/vlen v t\r\n " );
102+ $t -> c_recv(" SERVER_ERROR res:vlen = 5\r\n " );
103+
104+ $t -> clear();
105+ };
106+
107+ # TODO: test quiet and noreply.
108+
109+ }
110+
49111sub test_basics {
50112 subtest ' ms/mg' => sub {
51113 $t -> c_send(" ms /b/a 2\r\n hi\r\n " );
0 commit comments