Commit Graph

289 Commits

Author SHA1 Message Date
terry-xiaoyu 94dbdffd59 New logger formatter with meta-data 2018-11-02 18:38:07 +08:00
spring2maz ae743ad1f0 Rewrite emqx_mqueue.erl
Fixed bugs:

- Priority queue lack of a `len + 1` logic in `in/2`

Changed behaviors:

- Topics not found in priority table (from config) will be treated with default priority,
  instead of hasing topic name to a priority number.
- Default priority is now configurable (it was always lower than all configured priorities)
- The dropped message due to reaching `max_len` is now returned from `in/2`,
  so the queue owner (`in/2` caller) can perform autopsy on it
2018-10-27 14:21:53 +02:00
tigercl 64cb920b3b
Merge branch 'emqx30' into improve_connect 2018-10-27 14:27:25 +08:00
turtleDeng 8788cb2158
Merge pull request #1921 from emqx/improve_test_cases
Improve test cases
2018-10-26 19:45:18 +08:00
周子博 92251d4a8a Make more normalize 2018-10-26 17:45:13 +08:00
tigercl abb2e5c918
Improve test cases, and fix some bugs (#1920)
* Improve emqx_banned, emqx_pqueue, emqx_router test cases

* Improve emqx_broker test case, and fix bug in emqx_broker

* Add emqx_hooks to CT_SUITES
2018-10-26 17:27:02 +08:00
Gilbert 0b44c1b75f
improve_test_cases 2018-10-26 17:25:31 +08:00
周子博 e56252dac6 Fix bugs in test cases 2018-10-26 14:34:22 +08:00
Gilbert 7544a21e25
Add test cases for emqx_bridge, emqx_mod_rewrite (#1914) 2018-10-26 14:04:33 +08:00
周子博 ffa220a87d Fix bug in test case 2018-10-26 10:46:56 +08:00
周子博 6675e3d496 Implement will message delay publish in session, add test case for clean start and will message in connect packet 2018-10-25 14:26:31 +08:00
Gilbert Wong a1092a6784 Add eunit cases and fix typo. 2018-10-24 15:59:22 +08:00
tigercl 873a08dc94
Improve coverage for emqx_hooks, and add test case for emqx_mod_sup (#1892)
Improve coverage for emqx_hooks, and add test case for emqx_mod_sup
2018-10-19 16:21:43 +08:00
tigercl 55a12c1ab4
Merge branch 'emqx30' into improve_connect 2018-10-19 16:03:17 +08:00
huangdan 73658b3953 Merged emqx_misc_SUITE to emqx_misc_tests (#1890)
* Merged emqx_misc_SUITE to emqx_misc_tests
2018-10-19 09:46:25 +02:00
Gilbert 4c40f75f4b Request & Response (broker and client) (#1819)
Add request & response support for CONNECT & CONNACK

Prior to this change, there is no validate and specified process for
Request-Response-Information and Response-Information

Also added basic Request/Response functionality to emqx_client implementation
2018-10-18 19:21:05 +02:00
spring2maz 7e7d99fbad Change more stats callbacks to full M:F/A
Including emqx_sm emqx_cm emqx_router_helper
2018-10-19 00:22:29 +08:00
spring2maz 4082f3ade2 Improve stats test
Before this change, the stats callback provided by emqx_broker_helper
was an anonymous function with module local context.
This commit changes it to a full fun M:F/A style callback for:
1. More robust to hot beam reload
2. Faster/smaller variable to construct
3. Easier test
2018-10-19 00:22:29 +08:00
周子博 6ffd0ac44f Increase coverage for emqx_protocol 2018-10-10 18:35:47 +08:00
周子博 12da230662 Increase coverage 2018-10-10 15:53:01 +08:00
spring2maz e3f2ae8db8 Change from customized total heap size check to set process flag
The `max_heap_size` process flag can be used to limit total
heap size of a process, and it gives much more detailed
crash log if the limit is hit.
2018-09-29 21:36:34 +08:00
周子博 a77f8d28f9 Improve coverage 2018-09-29 14:47:21 +08:00
周子博 2d354ca883 Improve topic alias maximum in connect packet 2018-09-29 14:47:21 +08:00
周子博 064db65206 improve receive maximum in connect packet 2018-09-29 14:47:21 +08:00
spring2maz 0b0ef9bd54 Fix default QoS in test cases 2018-09-25 22:09:13 +08:00
spring2maz 3b9247994d Refine emqx_mock_client
Before this change, eqmx_mock_client uses a shared ets table
to store last received message, this causes troulbe when we
want to start / stop two or more clients in one test case
the ets table gets owned by the first spanwed client and
gets closed when the owner client dies.

Now it keeps the last received message in process state
and a gen_server call is added to retrieve it for verification

Along with this change in emqx_mock_client, it made possible
to write test case to verify the actual subscriber pid
used in shared subscription strategy, so test cases were
added (and modified) to verify different strategies
2018-09-22 10:51:38 +02:00
spring2maz b35d37c92d Add new shared subscription dispatch strategy
'random' was already there before this change
Added two new strategies: 'sticky' and 'round_robin'
'sticky' is made default as it is the cheapest
2018-09-22 10:50:34 +02:00
tigercl 03f607c1b2 Fix issue#1833 and #1834 (#1845) 2018-09-22 16:10:24 +08:00
turtleDeng 8653732bae Revert "Calculate the 1.5 keep alive time exactly" 2018-09-22 14:52:31 +08:00
spring2maz b61615323b Move shutdown policy config to zone configs 2018-09-21 18:58:18 +02:00
spring2maz f70d16e387 Add a test case to cover timeout message flush in emqx_misc 2018-09-21 18:58:18 +02:00
spring2maz 6fca651a84 Add connection/session shutdown policy
The hibernation behaviour is also changed (implicitly) in this commit:
Prior to this change, connection/session always hibernates after
the stats timer expires regardless of messages in mailbox.
After this commit, connection/session process only goes to hibernate
when the timer expires AND there is nothing left in the mailbox to
process
2018-09-21 18:58:18 +02:00
spring2maz 721f237bc4 Rewrite emqx_gc.erl
The implementation prior to this commit supports
only one gc enforcement policy which is message count threshold.
The new implementation introduces 1 more: volume threshold based
2018-09-21 22:56:34 +08:00
周子博 b1d4ec750a Remove the same test cases as emqx_keepalive 2018-09-20 17:58:54 +08:00
周子博 2c350bf5fb Match test case for last change 2018-09-20 17:19:21 +08:00
HuangDan 3822ff987b Fix function args
Add test cases for emqx_pool module
2018-09-18 09:15:46 +08:00
周子博 5eb92e37cc Remove check for MQTT path, and normalize code 2018-09-14 11:49:17 +08:00
周子博 5465b015be Add test case for last change 2018-09-14 11:49:17 +08:00
Gilbert Wong 45b2686e1c Delete unnecessary code
Prior to this change, there are multiple deprecated functions.
2018-09-14 09:45:34 +08:00
HuangDan fde6a2a4c3 Fixed issue #1811
Add tests case for issue #1811
2018-09-13 22:55:15 +08:00
Gilbert Wong caedcee2de fix listerners and access suites
Prior to this change, listeners test suites did not start cowboy which
is responsible for websocket connections. and access suites start
duplicated processes and these actions are wrong

This change fix the problem states above.
2018-09-08 09:33:37 +02:00
周子博 08bab7efa4 Fix bugs in test cases 2018-09-08 11:49:20 +08:00
turtleDeng c0ddbba5db
Merge pull request #1794 from spring2maz/generate-temp-config-for-test
Generate a config file for testing
2018-09-07 21:50:35 +08:00
turtleDeng 0ec461484e
Merge pull request #1790 from emqx/emqx30-feng
Improve the Hooks' design
2018-09-07 21:46:30 +08:00
Gilbert 84e43c587d
Merge branch 'emqx30' into emqx30 2018-09-07 18:49:11 +08:00
turtleDeng cb058143a5
Merge pull request #1792 from huangdan/master
Add test cases for mqtt5 connect packet
2018-09-07 18:03:37 +08:00
turtleDeng ba176f2073
Merge pull request #1797 from terry-xiaoyu/banned_api_v2
Update for banned API
2018-09-07 17:50:30 +08:00
周子博 1c5615c957 Stop emqx_zone when emqx_mqtt_caps test over 2018-09-07 17:22:24 +08:00
terry-xiaoyu dd8513ad35 Update for banned API
Use `mnesia:foldl` to traverse mnesia rather than `mnesia:first` and
`mnesia:next`, as a badarg exception would occur if the record was
deleted while travering the whole table.
2018-09-07 14:10:16 +08:00
spring2maz 3a94d7ddae Generate a config file for testing
Prior to this change, the template file etc/emqx.conf is used
directly in testing, as a result, mustache style directories
are created e.g. `{{ platform_log_dir }}` which should have been
replaced with a config varialbe e.g. `log`

In this change, Makefile targets are added as `ct` dependency
to download bbmustach, load the template input, replace with
variableds defined in 'vars' file, finally to etc/gen.emqx.conf.
The direct usage of etc/emqx.conf in test code are replaced with
gen.emqx.conf
2018-09-07 07:04:04 +02:00
Feng Lee 304a24ca6a Code Review: Update the zone module
1. Add force_reload/0 management API
2. Change the reload interval to 5 minutes
2018-09-07 10:26:14 +08:00
Gilbert Wong 765ab5ad7b Add condition to handle when mqx_topic_alias do not exist 2018-09-06 19:09:29 +08:00
HuangDan 7c688a4839 Add test case for mqtt5 connect packet 2018-09-06 18:09:58 +08:00
Feng Lee edf654727c Rename emqx_mqtt_properties module to emqx_mqtt_props 2018-09-06 18:09:22 +08:00
Feng Lee 2a75105580 Improve the Hooks's design 2018-09-06 16:27:16 +08:00
Gilbert Wong 2f63b7a487 update broker suite for latest code 2018-08-31 20:21:28 +08:00
Gilbert Wong 14ba395c21 fix seesion and connectiong test suites 2018-08-31 19:15:17 +08:00
Gilbert Wong 748826bdee update access sutie and access control 2018-08-31 01:16:54 +08:00
Gilbert Wong 487fa6824d add emqx_protocol test suites 2018-08-31 00:42:55 +08:00
Gilbert Wong a7274b115d ignore dup cases 2018-08-31 00:15:45 +08:00
Gilbert Wong 809c516a2b delete client testcases duplicated with emqx_mqtt_compat 2018-08-31 00:04:01 +08:00
Feng Lee 674b55e6e7
Merge pull request #1773 from tigercl/emqx30
Add emqx_banned test suite, and fix bugs in emqx_banned
2018-08-30 23:35:15 +08:00
周子博 83e11b6e39 Add emqx_banned test suite, and fix bugs in emqx_banned 2018-08-30 22:45:08 +08:00
Gilbert Wong f229c16752 fix listener test case 2018-08-30 22:21:13 +08:00
Gilbert Wong d0eaa51928 add emqx listeners suite 2018-08-30 22:16:31 +08:00
Feng Lee ed6ffeda91
Merge pull request #1770 from tigercl/emqx30
Fix bugs in emqx_message, emqx_mqueue ct, and add emqx_message ct to Makefile
2018-08-30 21:28:22 +08:00
Gilbert Wong 8fcfcfb860 update compact test cases except keepalive 2018-08-30 21:12:41 +08:00
周子博 e6d0329663 Fix test suites bug, and add emqx_message ct to Makefile 2018-08-30 19:55:44 +08:00
Feng Lee 1207ec1819
Merge pull request #1768 from tigercl/emqx30
Add test case for emqx_connection:attrs/1
2018-08-30 18:55:16 +08:00
Feng Lee c49e5dfddc
Merge branch 'emqx30' into emqx30-feng 2018-08-30 18:42:29 +08:00
Feng Lee c52f5a8525 Update the emqx_mqueue SUITE 2018-08-30 18:32:43 +08:00
周子博 69b285aa3f Add test case for emqx_connection:attrs/1 2018-08-30 16:26:04 +08:00
周子博 c89f53f14d Add session, mountpoint test suites 2018-08-30 14:43:14 +08:00
Gilbert Wong db76177228 add router clean function before each case 2018-08-30 13:48:54 +08:00
Gilbert Wong e97c3a5c8c update frame suite for latest emqx_frame 2018-08-30 13:44:09 +08:00
HuangDan 18eee0f1b0 Fixed Conflicting files 2018-08-30 10:53:35 +08:00
HuangDan 9b06589eab Add SUBSCRIBER/PUBLISH Packet test cases 2018-08-30 10:35:04 +08:00
HuangDan 37c1570e94 Add mqtt connect tests cases 2018-08-30 10:35:04 +08:00
HuangDan 0fbf813ebf Add mqtt connect tests cases 2018-08-30 10:35:04 +08:00
Feng Lee b1dadf444f Comment 'TEST_DEPS = emqx_ct_helplers' 2018-08-30 00:22:43 +08:00
周子博 f4330b8af3 Add some test suites and fix bugs 2018-08-29 19:19:22 +08:00
Gilbert Wong 47232d0281 update emqx_lib_suite and delete duplicate test case 2018-08-29 14:52:35 +08:00
Gilbert Wong 84f241522f update frame suite and frame suite 2018-08-29 14:36:40 +08:00
Feng Lee 41d1f04659 Update copyright 2018-08-28 20:37:46 +08:00
Feng Lee 734de8bf85
Merge pull request #1755 from tigercl/emqx30
Add some test suites
2018-08-28 20:03:59 +08:00
周子博 545e80cd6b Add some test suites 2018-08-28 17:53:03 +08:00
Gilbert 4a1eaaba98
Merge pull request #1754 from Gilbert-Wong/emqx30
Update emqx_topic and emqx router suite
2018-08-28 16:47:47 +08:00
Gilbert Wong 3e4b15fd6d update emqx_router_SUITE 2018-08-28 13:03:54 +08:00
周子博 b59db00aeb Add sm test suite, and fix bug in stats test suite 2018-08-28 09:42:17 +08:00
Gilbert Wong 9d22fcb413 update emqx_topic_SUITE 2018-08-28 09:20:32 +08:00
Gilbert Wong ce3f2e4d9e fix emqx_broker test suite 2018-08-27 21:18:00 +08:00
Gilbert Wong 087bfe80c8 fix unsubscribe emqx_mock_client error 2018-08-27 15:24:40 +08:00
turtled 6478f811bf Fix conflicts 2018-08-27 10:29:22 +08:00
HuangDan e3fb147594 Fixed test case compilation error 2018-08-26 22:25:54 +08:00
terry-xiaoyu 9d29dd0e10 use config enable_acl_cache 2018-08-26 18:25:17 +08:00
terry-xiaoyu 9717f9b83e add module emqx_acl_cache 2018-08-26 15:46:22 +08:00
terry-xiaoyu 8cd20744be improve cache datastruct using keys-queue 2018-08-26 13:33:00 +08:00
terry-xiaoyu a904031979 acl cache using proc_dict 2018-08-26 13:30:18 +08:00
terry-xiaoyu 737fe19331 update acl test cases 2018-08-26 12:48:32 +08:00
周子博 6b45834de4 Add emqx_cm, emqx_metrics, emqx_stats test suites 2018-08-25 18:13:49 +08:00