MailNews:Memory Bloat and Leak Tests: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (→‎Results: Prefix results names by Mail)
(→‎Pre-defined profile: Add IMAP & NNTP to future profile requirements.)
Line 71: Line 71:
* One Address Book where PAB has ~1000 entries
* One Address Book where PAB has ~1000 entries
* Large Message folders
* Large Message folders
* IMAP
* NNTP Server and subscribed newsgroup.


08/04/2008: prefs.js created via TB with the above settings, the first section is for preferences included in tinderbox, the second section is ones which don't currently get set.
08/04/2008: prefs.js created via TB with the above settings, the first section is for preferences included in tinderbox, the second section is ones which don't currently get set.

Revision as of 07:34, 9 April 2008

<< Back to MailNews:Performance Testing

Please do not edit this page unless you are on the Thunderbird or SeaMonkey MailNews team. Your feedback and comments are welcomed on the discussion page.


Note: MailNews here refers to either Thunderbird, or the Mail/Newsgroups/Address Book part of SeaMonkey

Aim

  • To provide a continuous check within Mailnews and its sub-components for the following items:
    1. Total memory leaks.
    2. Total memory usage (aka bloat).
  • Provide a consistent number from build to build where no source code has changed.
  • Provide reasonable coverage for the normal activities that a user performs.

Method

Initial Method:

  • Measure Leaks and Bloats, in a similar way to Firefox (using XPCOM_MEM_LEAK_LOG and --trace-malloc).
  • The method of testing memory bloat and leaks will be the same sequence of events, using the same set of test data.
    1. Startup Main Mail Window
    2. Open Address Book Window, close Address Book Window
    3. Open Message Compose Window, close Message Compose Window
    4. Close Main Mail Window

To be added at a later stage:

  • Large Message folders and selection thereof.
  • Large Address Books.
  • Sending/Receiving on different protocols (this would run best with local servers being setting up i.e. same physical hardware).

Results

Printed via standard tinderbox methods, these will consist of:

  • Mail RLk
    • Reference Count Leaks
  • Mail Lk
    • Total Bytes malloc'ed and not free'd
  • Mail MH
    • Maximum Heap size
  • Mail A
    • Allocations - number of calls to malloc and friends.

Code Locations

The existing tinderbox code will be used to drive the tests, this may require migrating to Buildbot at an appropriate stage.

The files specific to mailnews testing will be stored in:

/mozilla/testing/mailnews/bloat/

These files consist of:

  • An overlay (bloatTestOverlay.xul) which is used to overlay the main windows and loads bloatTestOverlay.js
  • An script (bloatTestOverlay.js) which is used to drive the actual tests.

Pre-defined profile

Initial Setup:

  • One POP3 account (Mails TBD)
  • One Identity
  • One SMTP server defined (not used)

Future requirements/possibilities:

  • One Address Book where PAB has ~1000 entries
  • Large Message folders
  • IMAP
  • NNTP Server and subscribed newsgroup.

08/04/2008: prefs.js created via TB with the above settings, the first section is for preferences included in tinderbox, the second section is ones which don't currently get set.

user_pref("mail.account.account1.server", "server1");
user_pref("mail.account.account2.identities", "id1");
user_pref("mail.account.account2.server", "server2");
user_pref("mail.accountmanager.accounts", "account1,account2");
user_pref("mail.accountmanager.defaultaccount", "account2");
user_pref("mail.accountmanager.localfoldersserver", "server1");
user_pref("mail.identity.id1.fullName", "Tinderbox");
user_pref("mail.identity.id1.smtpServer", "smtp1");
user_pref("mail.identity.id1.useremail", "tinderbox@invalid.com");
user_pref("mail.identity.id1.valid", true);
user_pref("mail.root.none-rel", "[ProfD]Mail");
user_pref("mail.root.pop3-rel", "[ProfD]Mail");
user_pref("mail.server.server1.directory-rel", "[ProfD]Mail/Local Folders");
user_pref("mail.server.server1.hostname", "Local Folders");
user_pref("mail.server.server1.name", "Local Folders");
user_pref("mail.server.server1.type", "none");
user_pref("mail.server.server1.userName", "nobody");
user_pref("mail.server.server2.check_new_mail", false);
user_pref("mail.server.server2.directory-rel", "[ProfD]Mail/tinderbox");
user_pref("mail.server.server2.download_on_biff", true);
user_pref("mail.server.server2.hostname", "tinderbox");
user_pref("mail.server.server2.login_at_startup", false);
user_pref("mail.server.server2.name", "tinderbox@invalid.com");
user_pref("mail.server.server2.type", "pop3");
user_pref("mail.server.server2.userName", "tinderbox");
user_pref("mail.smtp.defaultserver", "smtp1");
user_pref("mail.smtpserver.smtp1.hostname", "tinderbox");
user_pref("mail.smtpserver.smtp1.username", "tinderbox");
user_pref("mail.smtpservers", "smtp1");
user_pref("mail.startup.enabledMailCheckOnce", true);
user_pref("mailnews.start_page_override.mstone", "1.9pre");

Preferences in generated profile, but not set:

user_pref("mail.root.none", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail");
user_pref("mail.root.pop3", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail");
user_pref("mail.server.server1.directory", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail/Local Folders");
user_pref("mail.server.server2.directory", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail/tinderbox");
user_pref("mail.attachment.store.version", 1);
user_pref("mail.folder.views.version", 1);
user_pref("mail.spam.version", 1);
user_pref("mailnews.quotingPrefs.version", 1);
user_pref("mailnews.ui.threadpane.version", 6);