@Override
	public void logState(EmulatorTestRunner testRunner) {
		if (traceDisabled || traceLevel <= 0) {
			return;
		}
		if (traceLevel >= 1) {
			StringBuilder buf = new StringBuilder();
			Address curAddr = testRunner.getCurrentAddress();
			SymbolTable symbolTable = testRunner.getProgram().getSymbolTable();
			Symbol s = symbolTable.getPrimarySymbol(curAddr);
			if (s != null) {
				buf.append("<<");
				buf.append(s.getName());
			}
			Instruction instr = testRunner.getCurrentInstruction();
			buf.append(">> ");
			buf.append(curAddr.toString(true));
			buf.append(" ");
			if (instr != null) {

				if (parallelHelper != null) {
					String prefix = parallelHelper.getMnemonicPrefix(instr);
					if (prefix != null) {
						buf.append(prefix);
						buf.append(' ');
					}
				}

				buf.append(instr.toString());

				if (instr.getDelaySlotDepth() != 0) {
					buf.append(" (delay-slots not shown)");
				}
				if (instr.getFlowType().isCall()) {
					// output call reference
					Address callAddr = getCallAddress(instr);
					if (callAddr != null) {
						s = symbolTable.getPrimarySymbol(callAddr);
						if (s != null) {
							buf.append(" (call -> ");
							buf.append(s.getName());
							buf.append(")");
						}
					}
				}
			}
			log(testRunner.getTestGroup(), buf.toString());
		}
		if (traceLevel >= 2) {
			StringBuilder buf1 = new StringBuilder(" ");
			StringBuilder buf2 = new StringBuilder(" ");
			int width = 0;
			for (Register reg : regDumpSet) {
				String regName = reg.getName();
				int len = Math.max(regName.length(), (reg.getMinimumByteSize() * 2));
				width += len;
				if (width > MAX_REGDUMP_WIDTH) {
					log(testRunner.getTestGroup(), buf1.toString());
					log(testRunner.getTestGroup(), buf2.toString());
					buf1 = new StringBuilder(" ");
					buf2 = new StringBuilder(" ");
					width = len;
				}
				buf1.append(regName);
				buf1.append(' ');
				buf2.append(testRunner.getRegisterValueString(reg));
				buf2.append(' ');
				int diff = buf1.length() - buf2.length();
				for (int n = diff; n < 0; n++) {
					buf1.append(' ');
				}
				for (int n = diff; n > 0; n--) {
					buf2.append(' ');
				}
			}
			if (buf1.length() > 1) {
				log(testRunner.getTestGroup(), buf1.toString());
				log(testRunner.getTestGroup(), buf2.toString());
			}
		}
	}
Create TestSuite based upon available test groups contained within binary
test files associated with target processor.
@param emulatorTestClass test which extends <code>ProcessorEmulatorTestAdapter</code>
and whose name ends with "EmulatorTest".
@return test suite
Ghidra/Features/Base/src/main/java/ghidra/test/processors/support/ProcessorEmulatorTestAdapter.java