@Test
	public void testGetCodeUnits() throws Exception {

		CodeUnitIterator it = listing.getCodeUnits(true);

		for (int i = 0; i < 7; i++) {
			CodeUnit cu = it.next();
			assertEquals(addr(0x3e8 + i), cu.getMinAddress());
			assertTrue(cu instanceof Data);
		}
		CodeUnit cu = it.next();
		assertEquals(addr(0x3ef), cu.getMinAddress());
		assertTrue(cu instanceof Instruction);

		cu = it.next();
		assertEquals(addr(0x3f1), cu.getMinAddress());
		assertTrue(cu instanceof Data);

		for (int i = 0; i < 3; i++) {
			cu = it.next();
			assertEquals(addr(0x3f2 + (2 * i)), cu.getMinAddress());
			assertTrue(cu instanceof Instruction);
		}

		for (int i = 0; i < 3; i++) {
			cu = it.next();
			assertEquals(addr(0x3f8 + i), cu.getMinAddress());
			assertTrue(cu instanceof Data);
		}

		cu = it.next();
		assertEquals(addr(0x3fb), cu.getMinAddress());
		assertTrue(cu instanceof Data);

		for (int i = 0; i < 3; i++) {
			cu = it.next();
			assertEquals(addr(0x3ff + i), cu.getMinAddress());
			assertTrue(cu instanceof Data);
		}

		cu = it.next();
		assertEquals(addr(0x402), cu.getMinAddress());
		assertTrue(cu instanceof Instruction);

		cu = it.next();
		assertEquals(addr(0x404), cu.getMinAddress());
		assertTrue(cu instanceof Data);

		cu = it.next();
		assertEquals(addr(0x405), cu.getMinAddress());
		assertTrue(cu instanceof Instruction);

		for (int i = 0; i < 617; i++) {
			cu = it.next();
			assertEquals(addr(0x407 + i), cu.getMinAddress());
			assertTrue(cu instanceof Data);
		}

		// still more in iterator...
		assertTrue(it.hasNext());
		assertNotNull(it.next());

	}
** Diagnostic Aid ** Open program in tool
@throws Exception
Ghidra/Features/Base/src/test.slow/java/ghidra/program/database/code/CodeUnitIteratorTest.java