 
   setup do
     UARTTest.common_setup()
+  end
+
+  defp test_send_and_receive(uart1, uart2, options) do
+    all_options = [{:active, false} | options]
+
+    assert :ok = UART.open(uart1, UARTTest.port1(), all_options)
+    assert :ok = UART.open(uart2, UARTTest.port2(), all_options)
+
+    # uart1 -> uart2
+    assert :ok = UART.write(uart1, "A")
+    assert {:ok, "A"} = UART.read(uart2)
+
+    # uart2 -> uart1
+    assert :ok = UART.write(uart2, "B")
+    assert {:ok, "B"} = UART.read(uart1)
+
+    UART.close(uart1)
+    UART.close(uart2)
   end
 
   test "serial ports exist" do

    assert :ok = UART.open(uart1, UARTTest.port1(), active: false, speed: 192_000)
    UART.close(uart1)
  end
end

  end

  test "write and read", %{uart1: uart1, uart2: uart2} do
    test_send_and_receive(uart1, uart2, [])
  end

  test "write iodata", %{uart1: uart1, uart2: uart2} do
