Do not send two responses to a single BYE or unSUBSCRIBE (SUBSCRIBE with
Expires header set to 0) message if the op is in the Terminated state
Restart or toggle network twice in the testers if a client is removed from a chatroom while offline. This is required as core restart or network toggles are very fast in the tests so the INVITE session is not allowed to expire
Rework chatroom search by avoiding to recreate a chatroom list on the fly. The search is now made up by two separate searches: the conference based chatrom search and the basic chatroom search. For conference servers the basic chatroom search is not performed as it will never deal with such objects. If the chatroom search function provides a valid peer and local address, then retrieve the chatroom from the map and finally compare the participants and the parameters against the chatroom ones should they be provided. Trim down logging to speed up SUBSCRIBE parsing and core startup when not in debug mode.
Add performance tests with databases created on the fly and preexisiting ones. As a benchmark, databases with 1k, 30k and 100k chatrooms are used. The following metrics are verified:
- parsing a SUBSCRIBE with a 100 addresses wide recipient list
- chatroom creation on the server side
- time needed to send a message to all recipients
- search of an inexisting chatroom in the core RAM
Preloaded databases are stored on https://download.linphone.org/files/liblinphone_tester_db and downloaded every time the project is configured if unit tests are enabled