@Test
	public void testPutBytesSplitsDynamicDataSameLength() throws CodeUnitInsertionException {
		try (Transaction tx = b.startTransaction()) {
			TraceData d0at4000 =
				b.addData(0, b.addr(0x4000), NoMaxStringDataType.dataType, b.buf("Hello"));
			assertEquals(b.addr(0x4005), d0at4000.getMaxAddress());
			assertEquals(Lifespan.nowOn(0), d0at4000.getLifespan());
			b.trace.getMemoryManager().putBytes(10, b.addr(0x4000), b.buf("World"));
			assertEquals(Lifespan.span(0, 9), d0at4000.getLifespan());
			TraceData d10at4000 =
				b.trace.getCodeManager().definedData().getContaining(10, b.addr(0x4000));
			assertEquals(b.addr(0x4005), d10at4000.getMaxAddress());
			assertEquals(Lifespan.nowOn(10), d10at4000.getLifespan());
		}
	}
A dorked string type which ignores the maxLength parameter
Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/listing/DBTraceCodeManagerTest.java