[asterisk-commits] mjordan: testsuite/asterisk/trunk r5627 - /asterisk/trunk/lib/python/asterisk/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Sep 20 19:50:24 CDT 2014


Author: mjordan
Date: Sat Sep 20 19:50:19 2014
New Revision: 5627

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5627
Log:
lib/python/asterisk: Fix comparison function for large size differences

In r5615, a comparison function was introduced that attempts to pick the
directory with the most space available, comaparing /tmp and /var/tmp.
Unfortunately, if the blocks available are substantially different, the
value computed by the comparison function is a long, which causes a run-time
exception. Comparison functions must return an integer.

As such, this patch updates the comparison function to always return -1, 0,
or 1. If those aren't integers, then we might as well pack it all up and go
home.

Modified:
    asterisk/trunk/lib/python/asterisk/asterisk.py

Modified: asterisk/trunk/lib/python/asterisk/asterisk.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/lib/python/asterisk/asterisk.py?view=diff&rev=5627&r1=5626&r2=5627
==============================================================================
--- asterisk/trunk/lib/python/asterisk/asterisk.py (original)
+++ asterisk/trunk/lib/python/asterisk/asterisk.py Sat Sep 20 19:50:19 2014
@@ -184,8 +184,17 @@
     Note that AST_TEST_ROOT has to be reasonably short (symlinked in /tmp?) so
     we're not running into the asterisk.ctl AF_UNIX limit.
     """
+
     def compare_free_space(x, y):
-        return os.statvfs(y).f_bavail - os.statvfs(x).f_bavail
+        # statvfs can return a long; comparison functions must return an
+        # int. Hence the checks that occur here.
+        blocks_avail = os.statvfs(y).f_bavail - os.statvfs(x).f_bavail
+        if (blocks_avail > 0):
+            return 1
+        elif (blocks_avail < 0):
+            return -1
+        else:
+            return 0
 
     localtest_root = os.getenv("AST_TEST_ROOT")
     if localtest_root:




More information about the asterisk-commits mailing list