package edu.purdue.scjtck.tck; import edu.purdue.scjtck.MainSafelet; public abstract class TestCase extends MainSafelet { // private String _name = getClass().getName(); private String _name = "NYI"; private boolean _passed = true; private int _freeSlot; private final int _MAX_MESSAGES_PER_TESTCASE = 4; private String[] _errorMessages = new String[_MAX_MESSAGES_PER_TESTCASE + 1]; protected String getInfo() { String info = ""; info += "*********************************\n"; info += " " + _name + "\n"; info += " MissionMem: " + _prop._missionMemSize + "\n"; // info += " " + getLevel() + "\tPriority " + _prop._priority + "\n"; info += " Priority " + _prop._priority + "\n"; info += " Period " + _prop._period + "\tDuration " + _prop._duration + "\n"; info += "*********************************"; return info; } protected String report() { String result = ""; if (!_passed) { result += "Failed:\n"; for (int i = 0; i < _freeSlot; i++){ result += " [" + i + "] " + _errorMessages[i] + "\n"; } } return result; } void fail(final String why) { _passed = false; if (_freeSlot <= _MAX_MESSAGES_PER_TESTCASE) { if (_freeSlot == _MAX_MESSAGES_PER_TESTCASE) _errorMessages[_freeSlot++] = "No more error messages can be recorded"; else { int i; // do not record the same failure for (i = 0; i < _freeSlot; i++) if (_errorMessages[i].equals(why)) break; if (i == _freeSlot) _errorMessages[_freeSlot++] = why; } } } }