@Test
    public void testFlowWithNoSaveIntoContextImpl() {

		// Simple context does not contain default values
		ProgramContext retainedContext = new ProgramContextImpl(program.getLanguage());

		Address addr = space.getAddress(0x0);

		// context register changes WILL NOT be saved into program context
		DisassemblerContextImpl context = new DisassemblerContextImpl(retainedContext);
		context.flowStart(addr);

		context.setValue(tmodeReg, ZERO);

		for (int i = 0; i < 20; i++) {
			addr = addr.next();
			context.flowToAddress(addr);
		}

		assertEquals(ZERO, context.getValue(tmodeReg, addr.previous(), false));

		// should catch that addr is currentAddr
		assertEquals(ZERO, context.getValue(tmodeReg, addr, false));
		assertEquals(ZERO, context.getValue(tmodeReg, false));

		// explicit set of future value before flow-to
		addr = addr.add(30);
		context.setValue(tmodeReg, addr, ONE);

		// Flow-to set-point and check it out
		context.flowToAddress(addr);

		assertNull(retainedContext.getValue(tmodeReg, addr.previous(), false));

		// original default value still present in program context
		assertNull(retainedContext.getValue(tmodeReg, addr, false));

		// current disassembler context - not yet stored to program context
		assertEquals(ONE, context.getValue(tmodeReg, false));
		assertEquals(ONE, context.getValue(tmodeReg, addr, false));

		// default context returned from address we have not yet flowed-to
		addr = addr.next();
		assertNull(context.getValue(tmodeReg, addr, false));

		// Indicate future flow - context should be copied
		Address futureFlowAddr = addr.add(50);
		context.copyToFutureFlowState(futureFlowAddr);

		// End flow causes current context to be written
		context.flowEnd(addr);

		// default value still intact
		assertNull(retainedContext.getValue(tmodeReg, addr, false));

		// Restart flow at futureFlowAddr
		context.flowStart(futureFlowAddr);
		addr = futureFlowAddr;

		// original default value still present in program context
		assertNull(retainedContext.getValue(tmodeReg, addr, false));

		// current disassembler context - not yet stored to program context
		assertEquals(ONE, context.getValue(tmodeReg, false));
		assertEquals(ONE, context.getValue(tmodeReg, addr, false));

		// default context returned from address we have not yet flowed-to
		addr = addr.next();
		assertNull(context.getValue(tmodeReg, addr, false));

		// End flow causes current context to be written
		context.flowEnd(addr);

		// default value still intact
		assertNull(retainedContext.getValue(tmodeReg, addr, false));
	}
Test for the {@link ghidra.app.cmd.label.CreateNamespacesCmd} class.


@since  Tracker Id 619
Ghidra/Features/Base/src/test.slow/java/ghidra/app/cmd/disassemble/DisassembleContextTest.java