summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-03-04 16:22:02 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-03-04 16:22:02 +0000
commitefb5c041e93d371e5f95b5a9cdee7f1e529c8c56 (patch)
treeb5786415960460a8b6065c5081515a16b5fbb6fe /test
parentfd5c4c6a496676d36f06b883a98aaa2678666246 (diff)
downloadrabbitmq-server-git-efb5c041e93d371e5f95b5a9cdee7f1e529c8c56.tar.gz
testing snippets from documentation
Diffstat (limited to 'test')
-rw-r--r--test/snippets.config670
-rw-r--r--test/src/rabbit_config_schema_test.erl33
2 files changed, 700 insertions, 3 deletions
diff --git a/test/snippets.config b/test/snippets.config
new file mode 100644
index 0000000000..cb98d49d51
--- /dev/null
+++ b/test/snippets.config
@@ -0,0 +1,670 @@
+[
+{1,
+"auth_backends.1 = internal",
+[{rabbit, [{auth_backends, [rabbit_auth_backend_internal]}]}],[]}
+,
+{2,
+"auth_backends.1 = ldap",
+[{rabbit, [{auth_backends, [rabbit_auth_backend_ldap]}]}],[]}
+,
+
+{3,
+"auth_backends.1 = ldap
+auth_backends.2 = internal",
+
+[{rabbit, [
+ {auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}
+ ]
+ }],[]}
+
+,
+
+{4,
+"auth_backends.1 = ldap
+# uses module name instead of a short alias, \"http\"
+auth_backends.2 = rabbit_auth_backend_http",
+
+[{rabbit, [{auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_http]}]}],[]}
+
+,
+
+{5,
+"auth_backends.1.authn = internal
+# uses module name because this backend is from a 3rd party
+auth_backends.1.authz = rabbit_auth_backend_ip_range",
+[{rabbit, [{auth_backends, [{rabbit_auth_backend_internal, rabbit_auth_backend_ip_range}]}]}],[]}
+,
+{6,
+"auth_backends.1.authn = ldap
+auth_backends.1.authz = internal",
+[{rabbit, [{auth_backends, [{rabbit_auth_backend_ldap, rabbit_auth_backend_internal}]}]}],[]}
+,
+
+{7,
+"auth_backends.1.authn = ldap
+auth_backends.1.authz = internal
+auth_backends.2 = internal",
+[{rabbit, [
+ {auth_backends, [{rabbit_auth_backend_ldap, rabbit_auth_backend_internal},
+ rabbit_auth_backend_internal]}
+ ]
+ }],[]}
+,
+
+
+{8,
+"ssl_options.cacertfile = /path/to/testca/cacert.pem
+ssl_options.certfile = /path/to/server/cert.pem
+ssl_options.keyfile = /path/to/server/key.pem
+ssl_options.verify = verify_peer
+ssl_options.fail_if_no_peer_cert = true",
+[
+ {rabbit, [{ssl_options, [{cacertfile, "/path/to/testca/cacert.pem"},
+ {certfile, "/path/to/server/cert.pem"},
+ {keyfile, "/path/to/server/key.pem"},
+ {verify, verify_peer},
+ {fail_if_no_peer_cert, true}]}
+ ]}],[]}
+,
+
+{9,
+"listeners.tcp.default = 5673",
+[{rabbit, [{tcp_listeners, [5673]}]}],[]}
+,
+
+{10,
+"listeners.ssl = none",
+[{rabbit, [{ssl_listeners, []}]}],[]}
+,
+{11,
+"num_acceptors.ssl = 1",
+[{rabbit, [{num_ssl_acceptors, 1}]}],[]}
+,
+{12,
+"default_user = guest
+default_pass = guest
+default_user_tags.administrator = true
+default_permissions.configure = .*
+default_permissions.read = .*
+default_permissions.write = .*",
+[{rabbit, [
+{default_user, <<"guest">>},
+{default_pass, <<"guest">>},
+{default_user_tags, [administrator]},
+{default_permissions, [<<".*">>, <<".*">>, <<".*">>]}]}],[]}
+,
+{13,
+"cluster_nodes.disc.1 = rabbit@hostname1
+cluster_nodes.disc.2 = rabbit@hostname2",
+[{rabbit, [
+ {cluster_nodes, {[rabbit@hostname2,rabbit@hostname1], disc}}
+]}],[]}
+,
+{14,
+"tcp_listen_options.backlog = 128
+tcp_listen_options.nodelay = true
+tcp_listen_options.exit_on_close = false",
+[{rabbit, [{tcp_listen_options, [{backlog, 128},
+{nodelay, true},
+{exit_on_close, false}]}]}],[]}
+,
+{15,
+"auth_backends.1.authn = ldap
+auth_backends.1.authz = internal
+auth_backends.2 = internal",
+[{rabbit,[{auth_backends, [{rabbit_auth_backend_ldap, rabbit_auth_backend_internal},
+ rabbit_auth_backend_internal]}]}],[]}
+,
+{16,
+"ldap.servers.1 = some_server
+ ldap.servers.2 = some_other_server",
+[{rabbitmq_auth_backend_ldap, [{servers, ["some_server", "some_other_server"]}]}],
+[rabbitmq_auth_backend_ldap]}
+,
+{17,
+"ldap.dn_lookup_attribute = userPrincipalName
+ldap.dn_lookup_base = DC=gopivotal,DC=com
+ldap.dn_lookup_bind = as_user",
+[{rabbitmq_auth_backend_ldap, [{dn_lookup_attribute, "userPrincipalName"},
+{dn_lookup_base, "DC=gopivotal,DC=com"},
+{dn_lookup_bind, as_user}]}],
+[rabbitmq_auth_backend_ldap]}
+,
+{18,
+"ldap.dn_lookup_bind.user_dn = username
+ldap.dn_lookup_bind.password = password",
+[{rabbitmq_auth_backend_ldap, [
+{dn_lookup_bind, {"username", "password"}}]}],
+[rabbitmq_auth_backend_ldap]}
+,
+{19,
+"ldap.other_bind = anon",
+[{rabbitmq_auth_backend_ldap, [{other_bind, anon}]}],
+[rabbitmq_auth_backend_ldap]}
+,
+{20,
+"ldap.other_bind = as_user",
+[{rabbitmq_auth_backend_ldap, [{other_bind, as_user}]}],
+[rabbitmq_auth_backend_ldap]}
+,
+{21,
+"ldap.other_bind.user_dn = username
+ldap.other_bind.password = password",
+[{rabbitmq_auth_backend_ldap, [{other_bind, {"username", "password"}}]}],
+[rabbitmq_auth_backend_ldap]}
+,
+{22,
+"listeners.tcp.default = 5672
+collect_statistics_interval = 10000
+management.http_log_dir = /tmp/rabbit-mgmt
+management.rates_mode = basic",
+[{rabbit, [ {tcp_listeners, [5672]},
+ {collect_statistics_interval, 10000}]},
+ {rabbitmq_management, [ {http_log_dir, "/tmp/rabbit-mgmt"},
+ {rates_mode, basic}]}
+],
+[rabbitmq_management]}
+,
+{23,
+"management.listener.port = 12345",
+[{rabbitmq_management, [{listener, [{port, 12345}]}]}],
+[rabbitmq_management]}
+,
+{24,
+"management.listener.port = 15671
+management.listener.ssl = true
+management.listener.ssl_opts.cacertfile = /path/to/cacert.pem
+management.listener.ssl_opts.certfile = /path/to/cert.pem
+management.listener.ssl_opts.keyfile = /path/to/key.pem",
+[{rabbitmq_management,
+ [{listener, [{port, 15671},
+ {ssl, true},
+ {ssl_opts, [{cacertfile, "/path/to/cacert.pem"},
+ {certfile, "/path/to/cert.pem"},
+ {keyfile, "/path/to/key.pem"}]}
+ ]}
+ ]}
+],
+[rabbitmq_management]}
+,
+{25,
+"management.sample_retention_policies.global.minute = 5
+management.sample_retention_policies.global.hour = 60
+management.sample_retention_policies.global.day = 1200
+
+management.sample_retention_policies.basic.minute = 5
+management.sample_retention_policies.basic.hour = 60
+
+management.sample_retention_policies.detailed.10 = 5",
+[{rabbitmq_management,[
+ {sample_retention_policies,
+ %% List of {MaxAgeInSeconds, SampleEveryNSeconds}
+ [{global, [{60, 5}, {3600, 60}, {86400, 1200}]},
+ {basic, [{60, 5}, {3600, 60}]},
+ {detailed, [{10, 5}]}]}
+]}],
+[rabbitmq_management]}
+,
+{26,
+"vm_memory_high_watermark.absolute = 1073741824",
+[{rabbit, [{vm_memory_high_watermark, {absolute, 1073741824}}]}],[]}
+,
+{27,
+"vm_memory_high_watermark.absolute = 1024MB",
+[{rabbit, [{vm_memory_high_watermark, {absolute, "1024MB"}}]}],[]}
+,
+{28,
+"vm_memory_high_watermark_paging_ratio = 0.75
+vm_memory_high_watermark.relative = 0.4",
+[{rabbit, [{vm_memory_high_watermark_paging_ratio, 0.75},
+ {vm_memory_high_watermark, 0.4}]}],[]}
+,
+{29,
+"listeners.tcp.default = 5672
+mqtt.default_user = guest
+mqtt.default_pass = guest
+mqtt.allow_anonymous = true
+mqtt.vhost = /
+mqtt.exchange = amq.topic
+mqtt.subscription_ttl = 1800000
+mqtt.prefetch = 10
+mqtt.listeners.ssl = none
+## Default MQTT with TLS port is 8883
+# mqtt.listeners.ssl.default = 8883
+mqtt.listeners.tcp.default = 1883
+mqtt.tcp_listen_options.backlog = 128
+mqtt.tcp_listen_options.nodelay = true",
+[{rabbit, [{tcp_listeners, [5672]}]},
+ {rabbitmq_mqtt, [{default_user, <<"guest">>},
+ {default_pass, <<"guest">>},
+ {allow_anonymous, true},
+ {vhost, <<"/">>},
+ {exchange, <<"amq.topic">>},
+ {subscription_ttl, 1800000},
+ {prefetch, 10},
+ {ssl_listeners, []},
+ %% Default MQTT with TLS port is 8883
+ %% {ssl_listeners, [8883]}
+ {tcp_listeners, [1883]},
+ {tcp_listen_options, [{backlog, 128},
+ {nodelay, true}]}]}
+ ],
+[rabbitmq_mqtt]}
+,
+{30,
+"ssl_options.cacertfile = /path/to/tls/ca/cacert.pem
+ssl_options.certfile = /path/to/tls/server/cert.pem
+ssl_options.keyfile = /path/to/tls/server/key.pem
+ssl_options.verify = verify_peer
+ssl_options.fail_if_no_peer_cert = true
+
+mqtt.listeners.ssl.default = 8883
+mqtt.listeners.tcp.default = 1883",
+[{rabbit, [
+ {ssl_options, [{cacertfile, "/path/to/tls/ca/cacert.pem"},
+ {certfile, "/path/to/tls/server/cert.pem"},
+ {keyfile, "/path/to/tls/server/key.pem"},
+ {verify, verify_peer},
+ {fail_if_no_peer_cert, true}]}
+ ]},
+ {rabbitmq_mqtt, [
+ {ssl_listeners, [8883]},
+ {tcp_listeners, [1883]}
+ ]}
+ ],
+[rabbitmq_mqtt]}
+,
+{31,
+"mqtt.ssl_cert_login = true",
+[{rabbitmq_mqtt, [{ssl_cert_login, true}]}], [rabbitmq_mqtt]}
+,
+
+{32,
+"ssl_cert_login_from = common_name",
+[{rabbit, [{ssl_cert_login_from, common_name}]}], [rabbitmq_mqtt]}
+,
+
+
+{33,
+"listeners.tcp.default = 5672
+mqtt.default_user = guest
+mqtt.default_pass = guest
+mqtt.allow_anonymous = true
+mqtt.vhost = /
+mqtt.exchange = amq.topic
+mqtt.subscription_ttl = undefined
+mqtt.prefetch = 10",
+[{rabbit, [{tcp_listeners, [5672]}]},
+ {rabbitmq_mqtt, [{default_user, <<"guest">>},
+ {default_pass, <<"guest">>},
+ {allow_anonymous, true},
+ {vhost, <<"/">>},
+ {exchange, <<"amq.topic">>},
+ {subscription_ttl, undefined},
+ {prefetch, 10}]}
+ ],
+[rabbitmq_mqtt]}
+,
+{34,
+"mqtt.default_user = guest
+mqtt.default_pass = guest
+mqtt.allow_anonymous = true
+mqtt.vhost = /
+mqtt.exchange = amq.topic
+mqtt.subscription_ttl = 1800000
+mqtt.prefetch = 10
+## use DETS (disk-based) store for retained messages
+mqtt.retained_message_store = rabbit_mqtt_retained_msg_store_dets
+## only used by DETS store
+mqtt.retained_message_store_dets_sync_interval = 2000
+
+mqtt.listeners.ssl = none
+mqtt.listeners.tcp.default = 1883",
+[{rabbitmq_mqtt, [{default_user, <<"guest">>},
+ {default_pass, <<"guest">>},
+ {allow_anonymous, true},
+ {vhost, <<"/">>},
+ {exchange, <<"amq.topic">>},
+ {subscription_ttl, 1800000},
+ {prefetch, 10},
+ %% use DETS (disk-based) store for retained messages
+ {retained_message_store, rabbit_mqtt_retained_msg_store_dets},
+ %% only used by DETS store
+ {retained_message_store_dets_sync_interval, 2000},
+ {ssl_listeners, []},
+ {tcp_listeners, [1883]}]}
+ ],
+[rabbitmq_mqtt]}
+,
+
+{35,
+"listeners.tcp.1 = 192.168.1.99:5672",
+[
+ {rabbit, [
+ {tcp_listeners, [{"192.168.1.99", 5672}]}
+ ]}
+], []}
+,
+{36,
+"listeners.tcp.1 = 127.0.0.1:5672
+listeners.tcp.2 = ::1:5672",
+[
+ {rabbit, [
+ {tcp_listeners, [{"127.0.0.1", 5672},
+ {"::1", 5672}]}
+ ]}
+], []}
+,
+{37,
+"listeners.tcp.1 = :::5672",
+[
+ {rabbit, [
+ {tcp_listeners, [{"::", 5672}]}
+ ]}
+], []}
+,
+{38,
+"listeners.tcp.1 = 192.168.1.99:5672",
+[
+ {rabbit, [
+ {tcp_listeners, [{"192.168.1.99", 5672}]}
+ ]}
+], []}
+,
+{39,
+"listeners.tcp.1 = fe80::2acf:e9ff:fe17:f97b:5672",
+[
+ {rabbit, [
+ {tcp_listeners, [{"fe80::2acf:e9ff:fe17:f97b", 5672}]}
+ ]}
+], []}
+,
+{40,
+"tcp_listen_options.backlog = 128
+tcp_listen_options.nodelay = true
+tcp_listen_options.sndbuf = 196608
+tcp_listen_options.recbuf = 196608",
+[
+ {rabbit, [
+ {tcp_listen_options, [
+ {backlog, 128},
+ {nodelay, true},
+ {sndbuf, 196608},
+ {recbuf, 196608}
+ ]}
+ ]}
+], []}
+,
+
+{42,
+"tcp_listen_options.backlog = 4096
+tcp_listen_options.nodelay = true",
+[
+ {kernel, [
+ {inet_default_connect_options, [{nodelay, true}]},
+ {inet_default_listen_options, [{nodelay, true}]}
+ ]}]
+,
+[
+ {kernel, [
+ {inet_default_connect_options, [{nodelay, true}]},
+ {inet_default_listen_options, [{nodelay, true}]}
+ ]},
+ {rabbit, [
+ {tcp_listen_options, [
+ {backlog, 4096},
+ {nodelay, true}
+ ]}
+ ]}
+], []}
+,
+
+{43,
+"tcp_listen_options.backlog = 4096
+tcp_listen_options.nodelay = true",
+[
+ {rabbit, [
+ {tcp_listen_options, [
+ {backlog, 4096},
+ {nodelay, true}
+ ]}
+ ]}
+], []}
+,
+
+{44,
+"ssl_handshake_timeout = 10000",
+[
+ {rabbit, [
+ %% 10 seconds
+ {ssl_handshake_timeout, 10000}
+ ]}
+], []}
+,
+
+{45,
+"cluster_partition_handling = pause_if_all_down
+
+## Recover strategy. Can be either 'autoheal' or 'ignore'
+cluster_partition_handling.pause_if_all_down.recover = ignore
+
+## Node names to check
+cluster_partition_handling.pause_if_all_down.nodes.1 = rabbit@myhost1
+cluster_partition_handling.pause_if_all_down.nodes.2 = rabbit@myhost2",
+[{rabbit, [{cluster_partition_handling, {pause_if_all_down, [rabbit@myhost2, rabbit@myhost1], ignore}}]}], []}
+,
+{46,
+"cluster_partition_handling = autoheal",
+[{rabbit, [{cluster_partition_handling, autoheal}]}], []}
+,
+{47,
+"password_hashing_module = rabbit_password_hashing_sha512",
+[
+ {rabbit, [{password_hashing_module, rabbit_password_hashing_sha512}]}
+],[]}
+,
+
+{48,
+"listeners.ssl.1 = 5671
+ssl_options.cacertfile = /path/to/testca/cacert.pem
+ssl_options.certfile = /path/to/server/cert.pem
+ssl_options.keyfile = /path/to/server/key.pem
+ssl_options.verify = verify_peer
+ssl_options.fail_if_no_peer_cert = false"
+,
+[
+ {rabbit, [
+ {ssl_listeners, [5671]},
+ {ssl_options, [{cacertfile,"/path/to/testca/cacert.pem"},
+ {certfile,"/path/to/server/cert.pem"},
+ {keyfile,"/path/to/server/key.pem"},
+ {verify,verify_peer},
+ {fail_if_no_peer_cert,false}]}
+ ]}
+],[]}
+,
+
+
+{49,
+"listeners.ssl.1 = 5671
+ssl_options.cacertfile = /path/to/ca_certificate.pem
+ssl_options.certfile = /path/to/server_certificate.pem
+ssl_options.keyfile = /path/to/server_key.pem
+ssl_options.password = t0p$3kRe7",
+[
+ {rabbit, [
+ {ssl_listeners, [5671]},
+ {ssl_options, [{cacertfile,"/path/to/ca_certificate.pem"},
+ {certfile, "/path/to/server_certificate.pem"},
+ {keyfile, "/path/to/server_key.pem"},
+ {password, "t0p$3kRe7"}
+ ]}
+ ]}
+],[]}
+,
+
+{50,
+"listeners.ssl.1 = 5671
+ssl_options.cacertfile = /path/to/ca_certificate.pem
+ssl_options.certfile = /path/to/server_certificate.pem
+ssl_options.keyfile = /path/to/server_key.pem
+ssl_options.versions.tls1_2 = tlsv1.2
+ssl_options.versions.tls1_1 = tlsv1.1
+ssl_options.versions.tls1 = tlsv1",
+[{ssl, [{versions, ['tlsv1.2', 'tlsv1.1', tlsv1]}]}],
+[{ssl, [{versions, ['tlsv1.2', 'tlsv1.1', tlsv1]}]},
+ {rabbit, [
+ {ssl_listeners, [5671]},
+ {ssl_options, [{cacertfile,"/path/to/ca_certificate.pem"},
+ {certfile, "/path/to/server_certificate.pem"},
+ {keyfile, "/path/to/server_key.pem"},
+ {versions, ['tlsv1.2', 'tlsv1.1', tlsv1]}
+ ]}
+ ]}
+],[]}
+,
+{51,
+"listeners.ssl.1 = 5671
+ssl_options.cacertfile = /path/to/ca_certificate.pem
+ssl_options.certfile = /path/to/server_certificate.pem
+ssl_options.keyfile = /path/to/server_key.pem
+ssl_options.versions.tls1_2 = tlsv1.2
+ssl_options.versions.tls1_1 = tlsv1.1",
+[{ssl, [{versions, ['tlsv1.2', 'tlsv1.1']}]}],
+[
+ {ssl, [{versions, ['tlsv1.2', 'tlsv1.1']}]},
+ {rabbit, [
+ {ssl_listeners, [5671]},
+ {ssl_options, [{cacertfile,"/path/to/ca_certificate.pem"},
+ {certfile, "/path/to/server_certificate.pem"},
+ {keyfile, "/path/to/server_key.pem"},
+ {versions, ['tlsv1.2', 'tlsv1.1']}
+ ]}
+ ]}
+],[]}
+,
+{52,
+"listeners.ssl.1 = 5671
+ssl_allow_poodle_attack = true
+ssl_options.cacertfile = /path/to/testca/cacert.pem
+ssl_options.certfile = /path/to/server/cert.pem
+ssl_options.keyfile = /path/to/server/key.pem
+ssl_options.verify = verify_peer
+ssl_options.fail_if_no_peer_cert = false",
+[
+ {rabbit, [
+ {ssl_listeners, [5671]},
+ {ssl_allow_poodle_attack, true},
+ {ssl_options, [{cacertfile,"/path/to/testca/cacert.pem"},
+ {certfile,"/path/to/server/cert.pem"},
+ {keyfile,"/path/to/server/key.pem"},
+ {verify,verify_peer},
+ {fail_if_no_peer_cert,false}]}
+ ]}
+],[]}
+,
+{53,
+"listeners.ssl.1 = 5671
+ssl_options.cacertfile = /path/to/testca/cacert.pem
+ssl_options.certfile = /path/to/server/cert.pem
+ssl_options.keyfile = /path/to/server/key.pem
+ssl_options.depth = 2
+ssl_options.verify = verify_peer
+ssl_options.fail_if_no_peer_cert = false",
+[
+ {rabbit, [
+ {ssl_listeners, [5671]},
+ {ssl_options, [{cacertfile,"/path/to/testca/cacert.pem"},
+ {certfile,"/path/to/server/cert.pem"},
+ {keyfile,"/path/to/server/key.pem"},
+ {depth, 2},
+ {verify,verify_peer},
+ {fail_if_no_peer_cert,false}]}
+ ]}
+],[]}
+,
+{54,
+"stomp.listeners.tcp.1 = 12345",
+[{rabbitmq_stomp, [{tcp_listeners, [12345]}]}],[rabbitmq_stomp]}
+,
+{55,
+"stomp.listeners.tcp.1 = 127.0.0.1:61613
+stomp.listeners.tcp.2 = ::1:61613",
+[{rabbitmq_stomp, [{tcp_listeners, [{"127.0.0.1", 61613},
+ {"::1", 61613}]}]}],[rabbitmq_stomp]}
+,
+{56,
+"ssl_options.cacertfile = /path/to/tls/ca/cacert.pem
+ssl_options.certfile = /path/to/tls/server/cert.pem
+ssl_options.keyfile = /path/to/tls/server/key.pem
+ssl_options.verify = verify_peer
+ssl_options.fail_if_no_peer_cert = true
+
+stomp.listeners.tcp.1 = 61613
+stomp.listeners.ssl.1 = 61614",
+[{rabbit,[
+{ssl_options, [{cacertfile, "/path/to/tls/ca/cacert.pem"},
+ {certfile, "/path/to/tls/server/cert.pem"},
+ {keyfile, "/path/to/tls/server/key.pem"},
+ {verify, verify_peer},
+ {fail_if_no_peer_cert, true}]}]},
+{rabbitmq_stomp, [{tcp_listeners, [61613]},
+{ssl_listeners, [61614]}]}
+ ],[]}
+,
+
+{57,
+"stomp.default_user = guest
+stomp.default_pass = guest",
+[{rabbitmq_stomp, [{default_user, [{login, "guest"},{passcode, "guest"}]}]}],
+[rabbitmq_stomp]}
+,
+{58,
+"stomp.ssl_cert_login = true",
+[{rabbitmq_stomp, [{ssl_cert_login, true}]}],
+[rabbitmq_stomp]}
+,
+{59,
+"ssl_cert_login_from = common_name",
+[{rabbit, [{ssl_cert_login_from, common_name}]}], []}
+,
+{60,
+"stomp.default_user = guest
+stomp.default_pass = guest
+stomp.implicit_connect = true",
+[{rabbitmq_stomp, [{default_user,[{login, "guest"}, {passcode, "guest"}]},{implicit_connect, true}]}],
+[rabbitmq_stomp]}
+,
+{61,
+"stomp.default_vhost = /",
+[{rabbitmq_stomp, [{default_vhost, <<"/">>}]}],
+[rabbitmq_stomp]}
+,
+{62,
+"management.listener.port = 15672
+management.listener.ip = 127.0.0.1",
+[{rabbitmq_management,
+ [{listener, [{port, 15672},
+ {ip, "127.0.0.1"}
+ ]}
+ ]}
+],
+[rabbitmq_management]}
+,
+{63,
+"management.listener.port = 15672
+management.listener.ssl = true
+
+management.listener.ssl_opts.cacertfile = /path/to/cacert.pem
+management.listener.ssl_opts.certfile = /path/to/cert.pem
+management.listener.ssl_opts.keyfile = /path/to/key.pem",
+[{rabbitmq_management,
+ [{listener, [{port, 15672},
+ {ssl, true},
+ {ssl_opts, [{cacertfile, "/path/to/cacert.pem"},
+ {certfile, "/path/to/cert.pem"},
+ {keyfile, "/path/to/key.pem"}]}
+ ]}
+ ]}
+],
+[rabbitmq_management]}].
diff --git a/test/src/rabbit_config_schema_test.erl b/test/src/rabbit_config_schema_test.erl
index 306a02b780..54ddc696f7 100644
--- a/test/src/rabbit_config_schema_test.erl
+++ b/test/src/rabbit_config_schema_test.erl
@@ -3,6 +3,15 @@
-export([test_snippet/3]).
-compile(export_all).
+
+run_snippets(FileName) ->
+ {ok, [Snippets]} = file:consult(FileName),
+ lists:map(
+ fun({N,S,C,P}) -> test_snippet({integer_to_list(N),S,[]},C,P);
+ ({N,S,A,C,P}) -> test_snippet({integer_to_list(N),S,A},C,P)
+ end,
+ Snippets).
+
test_snippet(Snippet, Expected, Plugins) ->
{Conf, Advanced} = write_snippet(Snippet),
rabbit_file:recursive_delete("generated"),
@@ -10,7 +19,13 @@ test_snippet(Snippet, Expected, Plugins) ->
SchemaDir = rabbit_config:schema_dir(),
{ok, GeneratedFile} = generate_config(Conf, Advanced, SchemaDir),
{ok, [Generated]} = file:consult(GeneratedFile),
- Expected = Generated.
+ Gen = deepsort(Generated),
+ Exp = deepsort(Expected),
+ case Exp of
+ Gen -> ok;
+ _ ->
+ error({config_mismatch, Snippet, Exp, Gen})
+ end.
write_snippet({Name, Config, Advanced}) ->
rabbit_file:recursive_delete(filename:join(["examples", Name])),
@@ -38,6 +53,18 @@ prepare_schemas(Plugins) ->
+deepsort(List) ->
+ case is_proplist(List) of
+ true ->
+ lists:keysort(1, lists:map(fun({K,V}) -> {K, deepsort(V)};
+ (V) -> V end,
+ List));
+ false ->
+ case is_list(List) of
+ true -> lists:sort(List);
+ false -> List
+ end
+ end.
-
-
+is_proplist([{_K,_V}|_] = List) -> lists:all(fun({_K,_V}) -> true; (_) -> false end, List);
+is_proplist(_) -> false.