MPS issue job004036

TitleAssertion failure in RootCheck with root of type RootTHREAD
Statusclosed
Priorityessential
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionFilip Strömbäck reports [1]: "when I am creating a root using mps_root_create_thread_scanned(), I get an assertion in the RootCheck function in root.c caused by reaching the default part of the switch there (RootTHREAD is missing from there)."
AnalysisThis was missed because mps_root_create_thread_scanned has no test coverage. This should have been caught by guide.review.test [2] when branch 2015-09-04/stack was reviewed, but we missed because this group of functions was added after the initial review, and was not thoroughly re-reviewed.

Note that there is also no test coverage for mps_root_create_area, and poor coverage of mps_root_create_area_tagged.
How foundcustomer
Evidence[1] https://info.ravenbrook.com/mail/2016/08/10/14-52-12/0/
[2] http://www.ravenbrook.com/project/mps/master/design/guide.review
Created byGareth Rees
Created on2016-08-10 17:07:50
Last modified byGareth Rees
Last modified on2016-09-04 12:04:21
History2016-08-10 GDR Created.

Fixes

Change Effect Date User Description
192111 closed 2016-09-04 11:56:09 Gareth Rees Add a case for RootTHREAD to RootCheck.
Add test coverage for mps_root_create_thread_scanned and mps_root_create_area; improve coverage for mps_root_create_area_tagged, mps_scan_area_tagged, mps_scan_area.