def METHOD_NAME (filename, mustpass):
	results			= readTestLog(filename)
	messages			= []
	resultOrderOk	= True
	# Mustpass case names must be unique
	assert len(mustpass) == len(set(mustpass))
	# Verify number of results
	if len(results) != len(mustpass):
		messages.append(error(filename, "Wrong number of test results, expected %d, found %d" % (len(mustpass), len(results))))
	caseNameToResultNdx = {}
	for ndx in range(len(results)):
		result = results[ndx]
		if not result in caseNameToResultNdx:
			caseNameToResultNdx[result.name] = ndx
		else:
			messages.append(error(filename, "Multiple results for " + result.name))
	# Verify that all results are present and valid
	for ndx in range(len(mustpass)):
		caseName = mustpass[ndx]
		if caseName in caseNameToResultNdx:
			resultNdx	= caseNameToResultNdx[caseName]
			result		= results[resultNdx]
			if resultNdx != ndx:
				resultOrderOk = False
			if not result.statusCode in ALLOWED_STATUS_CODES:
				messages.append(error(filename, result.name + ": " + result.statusCode))
		else:
			messages.append(error(filename, "Missing result for " + caseName))
	if len(results) == len(mustpass) and not resultOrderOk:
		messages.append(error(filename, "Results are not in the expected order"))
	return messages