Offline Messages: Testing message delivery reliability related to stream resumption and resource conflict - #4262

Test duration: 70.190s

Passed Tests
tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout
testMessageDeliveryReliabilityChatWithResumptionAndWithFullJid 1.177s
2019-11-24 18:57:56 |

2019-11-24 18:57:56 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:57:56 | ------------------------------------

2019-11-24 18:57:56 | [Mutex] waiting for: [message:c5a74836-5199-4a64-bde8-89cad6fa1c20]

2019-11-24 18:57:56 | [Mutex] received everything.

2019-11-24 18:57:56 |


===== simulation of connection failure


2019-11-24 18:57:56 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:57:56 |


===== sending message to look for


2019-11-24 18:57:57 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:57:57 |


===== broadcasting presence


2019-11-24 18:57:57 | [Mutex] waiting for: [message:3676e9f8-2adf-4ffa-a05f-544c2c1103e0]

2019-11-24 18:57:57 | [Mutex] received everything.

2019-11-24 18:57:57 | [Mutex] isItemNotified: message:3676e9f8-2adf-4ffa-a05f-544c2c1103e0 :: true

testMessageDeliveryReliabilityChatWithResumptionAndWithFullJidAndDelay 3.072s
2019-11-24 18:57:58 |

2019-11-24 18:57:58 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:57:58 | ------------------------------------

2019-11-24 18:57:58 | [Mutex] waiting for: [message:9e6fe063-b114-4979-95fd-2a5ff907b181]

2019-11-24 18:57:58 | [Mutex] received everything.

2019-11-24 18:57:58 |


===== simulation of connection failure


2019-11-24 18:57:58 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:57:58 |


===== sending message to look for


2019-11-24 18:57:59 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:01 |


===== broadcasting presence


2019-11-24 18:58:01 | [Mutex] received everything.

2019-11-24 18:58:01 | [Mutex] isItemNotified: message:5d69bbb8-37b3-448b-8827-559ef93ab3d0 :: true

testMessageDeliveryReliabilityChatWithResumptionAndWithoutFullJid 1.250s
2019-11-24 18:58:02 |

2019-11-24 18:58:02 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:02 | ------------------------------------

2019-11-24 18:58:02 | [Mutex] waiting for: [message:bf4c679a-5426-48e2-bd6b-b87ee7b5ed18]

2019-11-24 18:58:02 | [Mutex] received everything.

2019-11-24 18:58:02 |


===== simulation of connection failure


2019-11-24 18:58:02 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:02 |


===== sending message to look for


2019-11-24 18:58:03 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:03 |


===== broadcasting presence


2019-11-24 18:58:03 | [Mutex] waiting for: [message:c972330b-5890-4e8b-adf6-fb2f1655b273]

2019-11-24 18:58:03 | [Mutex] received everything.

2019-11-24 18:58:03 | [Mutex] isItemNotified: message:c972330b-5890-4e8b-adf6-fb2f1655b273 :: true

testMessageDeliveryReliabilityChatWithResumptionAndWithoutFullJidAndDelay 3.038s
2019-11-24 18:58:04 |

2019-11-24 18:58:04 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:04 | ------------------------------------

2019-11-24 18:58:04 | [Mutex] waiting for: [message:311d3250-8f22-4847-b40e-c8ba773aa55b]

2019-11-24 18:58:04 | [Mutex] received everything.

2019-11-24 18:58:04 |


===== simulation of connection failure


2019-11-24 18:58:04 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:04 |


===== sending message to look for


2019-11-24 18:58:05 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:07 |


===== broadcasting presence


2019-11-24 18:58:07 | [Mutex] received everything.

2019-11-24 18:58:07 | [Mutex] isItemNotified: message:14f19f9d-f8f1-4b08-94e4-e820cd0ac160 :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithFullJid 1.267s
2019-11-24 18:58:08 |

2019-11-24 18:58:08 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:08 | ------------------------------------

2019-11-24 18:58:08 | [Mutex] waiting for: [message:4e2ef597-f8f6-4e32-b694-be7068fd4c73]

2019-11-24 18:58:08 | [Mutex] received everything.

2019-11-24 18:58:08 |


===== simulation of connection failure


2019-11-24 18:58:08 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:08 |


===== sending message to look for


2019-11-24 18:58:09 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:09 |


===== broadcasting presence


2019-11-24 18:58:09 | [Mutex] waiting for: [message:cd67b2f9-f863-4bfd-8960-5d40b6e4d077]

2019-11-24 18:58:09 | [Mutex] received everything.

2019-11-24 18:58:09 | [Mutex] isItemNotified: message:cd67b2f9-f863-4bfd-8960-5d40b6e4d077 :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithFullJidAndDelay 3.225s
2019-11-24 18:58:10 |

2019-11-24 18:58:10 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:10 | ------------------------------------

2019-11-24 18:58:10 | [Mutex] waiting for: [message:140d9cb2-1d2d-43d0-b5a5-128237b20465]

2019-11-24 18:58:10 | [Mutex] received everything.

2019-11-24 18:58:10 |


===== simulation of connection failure


2019-11-24 18:58:10 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:10 |


===== sending message to look for


2019-11-24 18:58:11 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:13 |


===== broadcasting presence


2019-11-24 18:58:13 | [Mutex] received everything.

2019-11-24 18:58:13 | [Mutex] isItemNotified: message:6605ec1a-e8d9-4640-b967-2953c886089d :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithFullJidAndDelayWithDelayedBinding 5.242s
2019-11-24 18:58:14 |

2019-11-24 18:58:14 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:14 | ------------------------------------

2019-11-24 18:58:14 | [Mutex] waiting for: [message:7f88fa25-a9be-4b78-bf95-2648c938ecb3]

2019-11-24 18:58:14 | [Mutex] received everything.

2019-11-24 18:58:14 |


===== simulation of connection failure


2019-11-24 18:58:14 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:15 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:19 |


===== broadcasting presence


2019-11-24 18:58:19 | [Mutex] received everything.

2019-11-24 18:58:19 | [Mutex] isItemNotified: message:9e957778-51ab-4fa6-be27-995f9b5eec58 :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithFullJidWithDelayedBinding 3.222s
2019-11-24 18:58:20 |

2019-11-24 18:58:20 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:20 | ------------------------------------

2019-11-24 18:58:20 | [Mutex] waiting for: [message:20179e12-5213-44b3-bf9d-dac3c622fa39]

2019-11-24 18:58:20 | [Mutex] received everything.

2019-11-24 18:58:20 |


===== simulation of connection failure


2019-11-24 18:58:20 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:21 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:23 |


===== broadcasting presence


2019-11-24 18:58:23 | [Mutex] received everything.

2019-11-24 18:58:23 | [Mutex] isItemNotified: message:4ccf424d-e192-4567-aabb-09a0165266df :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithoutFullJid 1.284s
2019-11-24 18:58:24 |

2019-11-24 18:58:24 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:24 | ------------------------------------

2019-11-24 18:58:24 | [Mutex] waiting for: [message:d2c13e98-7cbd-4723-8f5d-d796cc50b317]

2019-11-24 18:58:24 | [Mutex] received everything.

2019-11-24 18:58:24 |


===== simulation of connection failure


2019-11-24 18:58:24 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:24 |


===== sending message to look for


2019-11-24 18:58:25 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:25 |


===== broadcasting presence


2019-11-24 18:58:25 | [Mutex] waiting for: [message:02eb65de-5722-45bf-b110-48b49cfa0a10]

2019-11-24 18:58:25 | [Mutex] received everything.

2019-11-24 18:58:25 | [Mutex] isItemNotified: message:02eb65de-5722-45bf-b110-48b49cfa0a10 :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithoutFullJidAndDelay 3.234s
2019-11-24 18:58:26 |

2019-11-24 18:58:26 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:26 | ------------------------------------

2019-11-24 18:58:26 | [Mutex] waiting for: [message:6826762a-d478-4605-964b-b317c17a2096]

2019-11-24 18:58:26 | [Mutex] received everything.

2019-11-24 18:58:26 |


===== simulation of connection failure


2019-11-24 18:58:26 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:26 |


===== sending message to look for


2019-11-24 18:58:27 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:29 |


===== broadcasting presence


2019-11-24 18:58:29 | [Mutex] waiting for: [message:a870ae6e-5109-4c9e-b6c2-df842d3cd3cf]

2019-11-24 18:58:29 | [Mutex] waiting for: [message:a870ae6e-5109-4c9e-b6c2-df842d3cd3cf]

2019-11-24 18:58:29 | [Mutex] received everything.

2019-11-24 18:58:29 | [Mutex] isItemNotified: message:a870ae6e-5109-4c9e-b6c2-df842d3cd3cf :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithoutFullJidAndDelayWithDelayedBinding 5.259s
2019-11-24 18:58:30 |

2019-11-24 18:58:30 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:30 | ------------------------------------

2019-11-24 18:58:30 | [Mutex] waiting for: [message:5e77f72d-13b6-4ab0-8725-356ddb46eab9]

2019-11-24 18:58:30 | [Mutex] received everything.

2019-11-24 18:58:30 |


===== simulation of connection failure


2019-11-24 18:58:30 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:31 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:35 |


===== broadcasting presence


2019-11-24 18:58:35 | [Mutex] waiting for: [message:a153b3ce-9311-4d94-860e-55bd03369791]

2019-11-24 18:58:35 | [Mutex] waiting for: [message:a153b3ce-9311-4d94-860e-55bd03369791]

2019-11-24 18:58:35 | [Mutex] received everything.

2019-11-24 18:58:35 | [Mutex] isItemNotified: message:a153b3ce-9311-4d94-860e-55bd03369791 :: true

testMessageDeliveryReliabilityChatWithoutResumptionAndWithoutFullJidWithDelayedBinding 3.276s
2019-11-24 18:58:36 |

2019-11-24 18:58:36 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:36 | ------------------------------------

2019-11-24 18:58:36 | [Mutex] waiting for: [message:fd51a2af-b2fe-49d8-8020-18f1474fb7a0]

2019-11-24 18:58:36 | [Mutex] received everything.

2019-11-24 18:58:36 |


===== simulation of connection failure


2019-11-24 18:58:36 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:37 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:40 |


===== broadcasting presence


2019-11-24 18:58:40 | [Mutex] waiting for: [message:4d94029e-4db2-4a14-8b58-66af98d7e24b]

2019-11-24 18:58:40 | [Mutex] waiting for: [message:4d94029e-4db2-4a14-8b58-66af98d7e24b]

2019-11-24 18:58:40 | [Mutex] received everything.

2019-11-24 18:58:40 | [Mutex] isItemNotified: message:4d94029e-4db2-4a14-8b58-66af98d7e24b :: true

testMessageDeliveryReliabilityWithResumptionAndWithFullJid 1.217s
2019-11-24 18:58:40 |

2019-11-24 18:58:40 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:40 | ------------------------------------

2019-11-24 18:58:40 | [Mutex] waiting for: [message:e8af6c2a-3b93-4958-999e-2d2d70bf2c7f]

2019-11-24 18:58:40 | [Mutex] received everything.

2019-11-24 18:58:40 |


===== simulation of connection failure


2019-11-24 18:58:40 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:40 |


===== sending message to look for


2019-11-24 18:58:41 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:42 |


===== broadcasting presence


2019-11-24 18:58:42 | [Mutex] waiting for: [message:401fa72b-59f5-48cc-875c-9dd26ee0a235]

2019-11-24 18:58:42 | [Mutex] received everything.

2019-11-24 18:58:42 | [Mutex] isItemNotified: message:401fa72b-59f5-48cc-875c-9dd26ee0a235 :: true

testMessageDeliveryReliabilityWithResumptionAndWithFullJidAndDelay 3.038s
2019-11-24 18:58:43 |

2019-11-24 18:58:43 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:43 | ------------------------------------

2019-11-24 18:58:43 | [Mutex] waiting for: [message:b46f4cf1-4c07-4726-a51b-aa949ae40a53]

2019-11-24 18:58:43 | [Mutex] received everything.

2019-11-24 18:58:43 |


===== simulation of connection failure


2019-11-24 18:58:43 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:43 |


===== sending message to look for


2019-11-24 18:58:44 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:46 |


===== broadcasting presence


2019-11-24 18:58:46 | [Mutex] received everything.

2019-11-24 18:58:46 | [Mutex] isItemNotified: message:32af4778-4fa5-455b-992d-8083a28e9be0 :: true

testMessageDeliveryReliabilityWithResumptionAndWithoutFullJid 1.207s
2019-11-24 18:58:47 |

2019-11-24 18:58:47 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:47 | ------------------------------------

2019-11-24 18:58:47 | [Mutex] waiting for: [message:a988512a-cd58-4743-badc-58b2149f166a]

2019-11-24 18:58:47 | [Mutex] received everything.

2019-11-24 18:58:47 |


===== simulation of connection failure


2019-11-24 18:58:47 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:47 |


===== sending message to look for


2019-11-24 18:58:48 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:48 |


===== broadcasting presence


2019-11-24 18:58:48 | [Mutex] waiting for: [message:11494328-d720-4ece-83d9-d7dcf6849405]

2019-11-24 18:58:48 | [Mutex] received everything.

2019-11-24 18:58:48 | [Mutex] isItemNotified: message:11494328-d720-4ece-83d9-d7dcf6849405 :: true

testMessageDeliveryReliabilityWithResumptionAndWithoutFullJidAndDelay 3.037s
2019-11-24 18:58:49 |

2019-11-24 18:58:49 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:49 | ------------------------------------

2019-11-24 18:58:49 | [Mutex] waiting for: [message:be600954-af30-4edc-87b6-45f1af105d03]

2019-11-24 18:58:49 | [Mutex] received everything.

2019-11-24 18:58:49 |


===== simulation of connection failure


2019-11-24 18:58:49 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:49 |


===== sending message to look for


2019-11-24 18:58:50 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:52 |


===== broadcasting presence


2019-11-24 18:58:52 | [Mutex] received everything.

2019-11-24 18:58:52 | [Mutex] isItemNotified: message:7bf0ff50-4626-4633-8980-b27e86939f4b :: true

testMessageDeliveryReliabilityWithoutResumptionAndWithFullJid 1.234s
2019-11-24 18:58:53 |

2019-11-24 18:58:53 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:53 | ------------------------------------

2019-11-24 18:58:53 | [Mutex] waiting for: [message:6d2b1ca1-44ad-4895-aae2-f8641a344703]

2019-11-24 18:58:53 | [Mutex] received everything.

2019-11-24 18:58:53 |


===== simulation of connection failure


2019-11-24 18:58:53 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:53 |


===== sending message to look for


2019-11-24 18:58:54 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:54 |


===== broadcasting presence


2019-11-24 18:58:54 | [Mutex] received everything.

2019-11-24 18:58:54 | [Mutex] isItemNotified: message:ffac1209-1a01-430f-abec-84ff6fb92ed6 :: true

testMessageDeliveryReliabilityWithoutResumptionAndWithFullJidAndDelay 3.229s
2019-11-24 18:58:55 |

2019-11-24 18:58:55 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:55 | ------------------------------------

2019-11-24 18:58:55 | [Mutex] waiting for: [message:eadd9dc1-7571-4748-ba11-343aa0d4a155]

2019-11-24 18:58:55 | [Mutex] received everything.

2019-11-24 18:58:55 |


===== simulation of connection failure


2019-11-24 18:58:55 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:55 |


===== sending message to look for


2019-11-24 18:58:56 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:58:58 |


===== broadcasting presence


2019-11-24 18:58:58 | [Mutex] received everything.

2019-11-24 18:58:58 | [Mutex] isItemNotified: message:65221d77-89fa-41db-8c76-d6b4fbb4de66 :: true

testMessageDeliveryReliabilityWithoutResumptionAndWithoutFullJid 1.282s
2019-11-24 18:58:59 |

2019-11-24 18:58:59 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:58:59 | ------------------------------------

2019-11-24 18:58:59 | [Mutex] waiting for: [message:f1f33519-1b91-4990-93c3-6a1c9ee40c23]

2019-11-24 18:58:59 | [Mutex] received everything.

2019-11-24 18:58:59 |


===== simulation of connection failure


2019-11-24 18:58:59 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:58:59 |


===== sending message to look for


2019-11-24 18:59:00 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:59:00 |


===== broadcasting presence


2019-11-24 18:59:00 | [Mutex] waiting for: [message:e17a0ead-84bc-46f9-8c79-c4a9f2710653]

2019-11-24 18:59:00 | [Mutex] waiting for: [message:e17a0ead-84bc-46f9-8c79-c4a9f2710653]

2019-11-24 18:59:00 | [Mutex] received everything.

2019-11-24 18:59:00 | [Mutex] isItemNotified: message:e17a0ead-84bc-46f9-8c79-c4a9f2710653 :: true

testMessageDeliveryReliabilityWithoutResumptionAndWithoutFullJidAndDelay 3.246s
2019-11-24 18:59:01 |

2019-11-24 18:59:01 | null / [TestClass name=class tigase.tests.server.offlinemsg.TestOfflineMessageDeliveryAfterSmResumptionTimeout]

2019-11-24 18:59:01 | ------------------------------------

2019-11-24 18:59:01 | [Mutex] waiting for: [message:0f36bec4-4ddc-48b7-8a50-4a8203fae1be]

2019-11-24 18:59:01 | [Mutex] received everything.

2019-11-24 18:59:01 |


===== simulation of connection failure


2019-11-24 18:59:01 |


===== sending dummy message so client will discover it is disconnected (workaround)


2019-11-24 18:59:01 |


===== sending message to look for


2019-11-24 18:59:02 |


===== reconnecting client (resumption of stream or binding using same resource)


2019-11-24 18:59:05 |


===== broadcasting presence


2019-11-24 18:59:05 | [Mutex] waiting for: [message:cfbfd130-74d9-467c-b7d9-1266eecdc3f9]

2019-11-24 18:59:05 | [Mutex] waiting for: [message:cfbfd130-74d9-467c-b7d9-1266eecdc3f9]

2019-11-24 18:59:05 | [Mutex] received everything.

2019-11-24 18:59:05 | [Mutex] isItemNotified: message:cfbfd130-74d9-467c-b7d9-1266eecdc3f9 :: true