xml: Add test for existing fasm_mux metadata.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 17e79c3..32063e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,7 @@
 include("xsl_tests.cmake")
 # Test individual parts of the transform
 xsl_golden_test(NAME "attribute-cleanup")
+xsl_golden_test(NAME "composable-interconnect-existing-fasm-mux")
 xsl_golden_test(NAME "composable-interconnect-fasm-mux")
 xsl_golden_test(NAME "composable-interconnect-fasm-mux-levels")
 xsl_golden_test(NAME "composable-interconnect-implicit-parent")
diff --git a/composable-interconnect-existing-fasm-mux.golden.xml b/composable-interconnect-existing-fasm-mux.golden.xml
new file mode 100644
index 0000000..325e28a
--- /dev/null
+++ b/composable-interconnect-existing-fasm-mux.golden.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<xml>
+  <pb_type name="parent">
+    <input name="i0"/>
+    <input name="i1"/>
+    <output name="o"/>
+    <pb_type name="child">
+      <input name="i"/>
+      <output name="o"/>
+    </pb_type>
+    <interconnect>
+      <direct input="COMMON_SLICE.CIN" name="CIN_TO_CARRY0" output="CARRY4_VPR.CIN">
+        <pack_pattern in_port="COMMON_SLICE.CIN" name="CARRYCHAIN" out_port="CARRY4_VPR.CIN"/>
+        <metadata>
+          <meta name="fasm_mux">
+      COMMON_SLICE.CIN = PRECYINIT.CIN
+     </meta>
+        </metadata>
+      </direct>
+      <mux input="CARRY4_VPR.O3 CARRY4_VPR.CO_FABRIC3 COMMON_SLICE.DO6 COMMON_SLICE.DO5 COMMON_SLICE.DX" name="DFFMUX" output="SLICE_FF.D[3]">
+        <metadata>
+          <meta name="fasm_mux">
+      COMMON_SLICE.DX = DFFMUX.DX
+      COMMON_SLICE.DO5 = DFFMUX.O5
+      COMMON_SLICE.DO6 = DFFMUX.O6
+      CARRY4_VPR.CO_FABRIC3 = DFFMUX.CY
+      CARRY4_VPR.O3 = DFFMUX.XOR
+     </meta>
+        </metadata>
+      </mux>
+    </interconnect>
+  </pb_type>
+</xml>
diff --git a/composable-interconnect-existing-fasm-mux.xml b/composable-interconnect-existing-fasm-mux.xml
new file mode 100644
index 0000000..c2a333e
--- /dev/null
+++ b/composable-interconnect-existing-fasm-mux.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!-- Test the special handling around the fasm_mux metadata doesn't destroy
+     existing values.
+     -->
+<xml>
+ <pb_type name="parent">
+  <input name="i0" />
+  <input name="i1" />
+  <output name="o" />
+
+  <pb_type name="child">
+   <input name="i" />
+   <output name="o" />
+  </pb_type>
+
+  <interconnect>
+   <direct name="CIN_TO_CARRY0" input="COMMON_SLICE.CIN" output="CARRY4_VPR.CIN" >
+    <pack_pattern name="CARRYCHAIN"/>
+    <metadata>
+     <meta name="fasm_mux">
+      COMMON_SLICE.CIN = PRECYINIT.CIN
+     </meta>
+    </metadata>
+   </direct>
+   <mux name="DFFMUX"
+    input="CARRY4_VPR.O3 CARRY4_VPR.CO_FABRIC3 COMMON_SLICE.DO6 COMMON_SLICE.DO5 COMMON_SLICE.DX"
+    output="SLICE_FF.D[3]" >
+    <metadata>
+     <meta name="fasm_mux">
+      COMMON_SLICE.DX = DFFMUX.DX
+      COMMON_SLICE.DO5 = DFFMUX.O5
+      COMMON_SLICE.DO6 = DFFMUX.O6
+      CARRY4_VPR.CO_FABRIC3 = DFFMUX.CY
+      CARRY4_VPR.O3 = DFFMUX.XOR
+     </meta>
+    </metadata>
+   </mux>
+  </interconnect>
+ </pb_type>
+</xml>
diff --git a/composable-interconnect-fasm-mux-levels.golden.xml b/composable-interconnect-fasm-mux-levels.golden.xml
index 58b70bc..36509f5 100644
--- a/composable-interconnect-fasm-mux-levels.golden.xml
+++ b/composable-interconnect-fasm-mux-levels.golden.xml
@@ -24,11 +24,11 @@
       <mux input="blocka.a blockb.b blockc[0].c blockc[1].c" name="outmux" output="blocko.i">
         <metadata>
           <meta name="fasm_mux">
-                blocka.a : a1
-                blockb.b : b1.l1
-                blockc[0].c : c0.l1
-                blockc[1].c : c1
-            </meta>
+blocka.a : a1
+blockb.b : b1.l1
+blockc[0].c : c0.l1
+blockc[1].c : c1
+</meta>
           <meta name="fasm_name">fasm_name</meta>
         </metadata>
       </mux>
diff --git a/composable-interconnect-fasm-mux.golden.xml b/composable-interconnect-fasm-mux.golden.xml
index 3e72333..cb3f7e1 100644
--- a/composable-interconnect-fasm-mux.golden.xml
+++ b/composable-interconnect-fasm-mux.golden.xml
@@ -13,9 +13,9 @@
       <mux input="parent.i0 parent.i1" name="mux1" output="child.i">
         <metadata>
           <meta name="fasm_mux">
-                parent.i0 : a1
-                parent.i1 : b1
-            </meta>
+parent.i0 : a1
+parent.i1 : b1
+</meta>
           <meta name="fasm_name">fasm_name</meta>
         </metadata>
       </mux>