private int[] doWriteReadTest(LocalManagedBufferFile bf) throws IOException {

		DataBuffer buf = new DataBuffer(BUFFER_SIZE - 1);

		try {
			bf.get(buf, 0);
			Assert.fail("Expected EOFException getting non-exting buffer");
		}
		catch (EOFException e) {
			// expected
		}

		try {
			bf.put(buf, 0);
			Assert.fail("Expected IllegalArgumentException putting small buffer");
		}
		catch (IllegalArgumentException e) {
			// expected
		}

		byte[] data = new byte[BUFFER_SIZE];
		buf = new DataBuffer(data);

		Arrays.fill(data, (byte) 0xf0);
		buf.setId(10);
		bf.put(buf, 0);

		Arrays.fill(data, (byte) 0xf1);
		buf.setId(11);
		bf.put(buf, 1);

		Arrays.fill(data, (byte) 0xf2);
		buf.setId(12);
		bf.put(buf, 2);

		doReadTest1(bf);

		buf.setId(12);
		buf.setEmpty(true);
		bf.put(buf, 2);

		doReadTest2(bf);

		// Return static free list
		return new int[] { 2 };
	}
Test local update following a merge checkin scenario.  A new private file is created based upon version-1.
This private file is modified resulting in a file which is shorter than a new version-3.  This new private file
prior to update contains:
		Parms: TestParm1=0x320
		Buffers: 0[-1]=empty, 1[21]=0xff.., 2[12]=0xf2..
Following update the private file should match version-3 which contains:
		Parms: TestParm1=0x329, TestParm2=0x549, TestParm2=0x679
		Buffers: 0[-1]=empty, 1[11]=0xf1.., 2[12]=0xf2.., 3[13]=0xf3.., 4[14]=empty, 5[15]=0xf5.., 6[-1]=empty, 7[17]=0xf7.., 8[18]=0xf8.., 9[19]=0xf9..
@throws Exception
Ghidra/Framework/DB/src/test/java/db/buffers/VersionedLocalBufferFileTest.java