@Test
	public void testDIEAggregateMulti() throws DWARFException, CancelledException, IOException {
//		DebugInfoEntry baseType =
//			new DIECreator(DWARFTag.DW_TAG_base_type).addString(DWARFAttribute.DW_AT_name,
//				"base_type_name").addInt(DWARFAttribute.DW_AT_byte_size, 4).addInt(
//					DWARFAttribute.DW_AT_encoding, DWARFEncoding.DW_ATE_unsigned).create(cu);
//
//		DebugInfoEntry td =
//			new DIECreator(DWARFTag.DW_TAG_typedef).addString(DWARFAttribute.DW_AT_name,
//				"mytypedef").addRef(DWARFAttribute.DW_AT_type, baseType).create(cu);

		DebugInfoEntry declStruct =
			new DIECreator(dwarfProg, DW_TAG_structure_type).addString(DW_AT_name, "mystruct")
					.addBoolean(DW_AT_declaration, true)
					.addString(DW_AT_const_value, "declConst")
					.addString(DW_AT_description, "declDesc")
					.create();

		DebugInfoEntry implStruct =
			new DIECreator(dwarfProg, DW_TAG_structure_type).addString(DW_AT_name, "mystruct")
					.addRef(DW_AT_specification, declStruct)
					.addString(DW_AT_const_value, "specConst")
					.addString(DW_AT_description, "declDesc")
					.create();

		DebugInfoEntry ao1Struct =
			new DIECreator(dwarfProg, DW_TAG_structure_type).addString(DW_AT_name, "mystruct")
					.addRef(DW_AT_abstract_origin, implStruct)
					.addString(DW_AT_description, "ao1Desc")
					.create();

		DebugInfoEntry ao2Struct =
			new DIECreator(dwarfProg, DW_TAG_structure_type).addString(DW_AT_name, "mystruct")
					.addRef(DW_AT_abstract_origin, implStruct)
					.addString(DW_AT_description, "ao2Desc")
					.create();

		buildMockDIEIndexes();

		DIEAggregate ao1 = dwarfProg.getAggregate(ao1Struct);
		DIEAggregate ao2 = dwarfProg.getAggregate(ao2Struct);

		assertEquals("Should have 3 fragments", 3, ao1.getOffsets().length);
		assertEquals("Should have 3 fragments", 3, ao2.getOffsets().length);
		assertEquals("Attr dw_at_const should be from spec", "specConst",
			ao1.getString(DW_AT_const_value, null));
		assertEquals("Attr dw_at_const should be from spec", "specConst",
			ao2.getString(DW_AT_const_value, null));
		assertEquals("Attr dw_at_description should be from ao1", "ao1Desc",
			ao1.getString(DW_AT_description, null));
		assertEquals("Attr dw_at_description should be from ao2", "ao2Desc",
			ao2.getString(DW_AT_description, null));
	}
Tests the creation of DIEAggregates when there is a many-to-one layout of
abstractorigin -> spec -> decl links.
<pre>
                                                  mystruct ao1
                                                /
  mystruct decl <------  mystruct spec  <------+
                                                \
                                                  mystruct ao2
</pre>
@throws DWARFException
@throws IOException
@throws CancelledException
Ghidra/Features/Base/src/test/java/ghidra/app/util/bin/format/dwarf/DIECreatorTest.java