Add super stream creation/deletion test
This commit is contained in:
		
							parent
							
								
									c352eed64a
								
							
						
					
					
						commit
						043ddcba95
					
				|  | @ -26,6 +26,8 @@ | |||
| -compile(nowarn_export_all). | ||||
| -compile(export_all). | ||||
| 
 | ||||
| -import(rabbit_stream_core, [frame/1]). | ||||
| 
 | ||||
| -define(WAIT, 5000). | ||||
| 
 | ||||
| all() -> | ||||
|  | @ -37,6 +39,7 @@ groups() -> | |||
|        test_stream, | ||||
|        test_stream_tls, | ||||
|        test_publish_v2, | ||||
|        test_super_stream_creation_deletion, | ||||
|        test_gc_consumers, | ||||
|        test_gc_publishers, | ||||
|        test_update_secret, | ||||
|  | @ -306,6 +309,54 @@ test_publish_v2(Config) -> | |||
|     closed = wait_for_socket_close(Transport, S, 10), | ||||
|     ok. | ||||
| 
 | ||||
| 
 | ||||
| test_super_stream_creation_deletion(Config) -> | ||||
|     T = gen_tcp, | ||||
|     Port = get_port(T, Config), | ||||
|     Opts = get_opts(T), | ||||
|     {ok, S} = T:connect("localhost", Port, Opts), | ||||
|     C = rabbit_stream_core:init(0), | ||||
|     test_peer_properties(T, S, C), | ||||
|     test_authenticate(T, S, C), | ||||
| 
 | ||||
|     Ss = atom_to_binary(?FUNCTION_NAME, utf8), | ||||
|     Partitions = [unicode:characters_to_binary([Ss, <<"-">>, integer_to_binary(N)]) || N <- lists:seq(0, 2)], | ||||
|     Rks = [integer_to_binary(N) || N <- lists:seq(0, 2)], | ||||
|     SsCreationFrame = frame({request, 1, {create_super_stream, Ss, Partitions, Rks, #{}}}), | ||||
|     ok = T:send(S, SsCreationFrame), | ||||
|     {Cmd1, _} = receive_commands(T, S, C), | ||||
|     ?assertMatch({response, 1, {create_super_stream, ?RESPONSE_CODE_OK}}, | ||||
|                  Cmd1), | ||||
| 
 | ||||
|     PartitionsFrame = frame({request, 1, {partitions, Ss}}), | ||||
|     ok = T:send(S, PartitionsFrame), | ||||
|     {Cmd2, _} = receive_commands(T, S, C), | ||||
|     ?assertMatch({response, 1, {partitions, ?RESPONSE_CODE_OK, Partitions}}, | ||||
|                   Cmd2), | ||||
|     [begin | ||||
|          RouteFrame = frame({request, 1, {route, Rk, Ss}}), | ||||
|          ok = T:send(S, RouteFrame), | ||||
|          {Command, _} = receive_commands(T, S, C), | ||||
|          ?assertMatch({response, 1, {route, ?RESPONSE_CODE_OK, _}}, Command), | ||||
|          {response, 1, {route, ?RESPONSE_CODE_OK, [P]}} = Command, | ||||
|          ?assertEqual(unicode:characters_to_binary([Ss, <<"-">>, Rk]), P) | ||||
|      end || Rk <- Rks], | ||||
| 
 | ||||
|     SsDeletionFrame = frame({request, 1, {delete_super_stream, Ss}}), | ||||
|     ok = T:send(S, SsDeletionFrame), | ||||
|     {Cmd3, _} = receive_commands(T, S, C), | ||||
|     ?assertMatch({response, 1, {delete_super_stream, ?RESPONSE_CODE_OK}}, | ||||
|                  Cmd3), | ||||
| 
 | ||||
|     ok = T:send(S, PartitionsFrame), | ||||
|     {Cmd4, _} = receive_commands(T, S, C), | ||||
|     ?assertMatch({response, 1, {partitions, ?RESPONSE_CODE_STREAM_DOES_NOT_EXIST, []}}, | ||||
|                   Cmd4), | ||||
| 
 | ||||
|     test_close(T, S, C), | ||||
|     closed = wait_for_socket_close(T, S, 10), | ||||
|     ok. | ||||
| 
 | ||||
| test_metadata(Config) -> | ||||
|     Stream = atom_to_binary(?FUNCTION_NAME, utf8), | ||||
|     Transport = gen_tcp, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue