Orion Poplawski 1896da9
From 3187de29336b4a01e4dcd20f98253e1db913ee7a Mon Sep 17 00:00:00 2001
Orion Poplawski 1896da9
From: Yaroslav Halchenko <debian@onerussian.com>
Orion Poplawski 1896da9
Date: Sat, 12 Sep 2015 14:15:10 -0400
Orion Poplawski 1896da9
Subject: [PATCH] BF(TST): allow exception and False for executeCmd due to
Orion Poplawski 1896da9
 inconsistent behavior across bash/dash
Orion Poplawski 1896da9
Orion Poplawski 1896da9
Temporary minimalistic fix to the test
Orion Poplawski 1896da9
---
Orion Poplawski 1896da9
 fail2ban/tests/actiontestcase.py | 23 +++++++++++++++++------
Orion Poplawski 1896da9
 1 file changed, 17 insertions(+), 6 deletions(-)
Orion Poplawski 1896da9
Orion Poplawski 1896da9
diff --git a/fail2ban/tests/actiontestcase.py b/fail2ban/tests/actiontestcase.py
Orion Poplawski 1896da9
index febbc61..73dee12 100644
Orion Poplawski 1896da9
--- a/fail2ban/tests/actiontestcase.py
Orion Poplawski 1896da9
+++ b/fail2ban/tests/actiontestcase.py
Orion Poplawski 1896da9
@@ -222,17 +222,28 @@ def getnastypid():
Orion Poplawski 1896da9
 				return int(f.read())
Orion Poplawski 1896da9
 
Orion Poplawski 1896da9
 		# First test if can kill the bastard
Orion Poplawski 1896da9
-		self.assertRaises(
Orion Poplawski 1896da9
-			RuntimeError, CommandAction.executeCmd, 'bash %s' % tmpFilename, timeout=.1)
Orion Poplawski 1896da9
+		try:
Orion Poplawski 1896da9
+			self.assertFalse(
Orion Poplawski 1896da9
+				CommandAction.executeCmd('bash %s' % tmpFilename, timeout=.1))
Orion Poplawski 1896da9
+		except RuntimeError:
Orion Poplawski 1896da9
+			# this one is expected behavior, see
Orion Poplawski 1896da9
+			# https://github.com/fail2ban/fail2ban/issues/1155#issuecomment-139799958
Orion Poplawski 1896da9
+			pass
Orion Poplawski 1896da9
 		# Verify that the proccess itself got killed
Orion Poplawski 1896da9
 		self.assertFalse(pid_exists(getnastypid()))  # process should have been killed
Orion Poplawski 1896da9
 		self.assertTrue(self._is_logged('timed out'))
Orion Poplawski 1896da9
-		self.assertTrue(self._is_logged('killed with SIGTERM'))
Orion Poplawski 1896da9
+		self.assertTrue(self._is_logged('Terminated'))
Orion Poplawski 1896da9
 
Orion Poplawski 1896da9
 		# A bit evolved case even though, previous test already tests killing children processes
Orion Poplawski 1896da9
-		self.assertRaises(
Orion Poplawski 1896da9
-			RuntimeError, CommandAction.executeCmd, 'out=`bash %s`; echo ALRIGHT' % tmpFilename,
Orion Poplawski 1896da9
-			timeout=.2)
Orion Poplawski 1896da9
+		try:
Orion Poplawski 1896da9
+			self.assertFalse(
Orion Poplawski 1896da9
+				CommandAction.executeCmd('out=`bash %s`; echo ALRIGHT' % tmpFilename,
Orion Poplawski 1896da9
+										 timeout=.2))
Orion Poplawski 1896da9
+		except RuntimeError:
Orion Poplawski 1896da9
+			# this one is expected behavior, see
Orion Poplawski 1896da9
+			# https://github.com/fail2ban/fail2ban/issues/1155#issuecomment-139799958
Orion Poplawski 1896da9
+			pass
Orion Poplawski 1896da9
+
Orion Poplawski 1896da9
 		# Verify that the proccess itself got killed
Orion Poplawski 1896da9
 		self.assertFalse(pid_exists(getnastypid()))
Orion Poplawski 1896da9
 		self.assertTrue(self._is_logged('timed out'))