BIND 10 trac2121, updated. 5255dd6b43a8469d9614ff86adb38dee3b8d630b [2121] Fix member variable names
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Jul 10 05:56:31 UTC 2012
The branch, trac2121 has been updated
via 5255dd6b43a8469d9614ff86adb38dee3b8d630b (commit)
via b1507181e9176e068e58dc863395870f562c5c36 (commit)
via 42674a0354067c011d2c8915ff71d8ccf9a15340 (commit)
via 90792ad4ddb26af360ca65a690020d07c21d2d20 (commit)
from d4748711299a76785c434dacbab8e8445cd3b4da (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5255dd6b43a8469d9614ff86adb38dee3b8d630b
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Jul 10 11:25:26 2012 +0530
[2121] Fix member variable names
commit b1507181e9176e068e58dc863395870f562c5c36
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Jul 10 11:25:03 2012 +0530
[2121] Strip output of hostname so it doesn't contain newlines
commit 42674a0354067c011d2c8915ff71d8ccf9a15340
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Jul 10 11:24:23 2012 +0530
[2121] Add testcases for OpenBSD implementation of SysInfo
commit 90792ad4ddb26af360ca65a690020d07c21d2d20
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Jul 10 10:41:49 2012 +0530
[2121] Rename class
-----------------------------------------------------------------------
Summary of changes:
src/lib/python/isc/sysinfo/sysinfo.py | 6 +-
src/lib/python/isc/sysinfo/tests/sysinfo_test.py | 86 +++++++++++++++++++++-
2 files changed, 87 insertions(+), 5 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/python/isc/sysinfo/sysinfo.py b/src/lib/python/isc/sysinfo/sysinfo.py
index 11301f4..0695318 100644
--- a/src/lib/python/isc/sysinfo/sysinfo.py
+++ b/src/lib/python/isc/sysinfo/sysinfo.py
@@ -288,7 +288,7 @@ class SysInfoBSD(SysInfoPOSIX):
try:
s = subprocess.check_output(['hostname'])
- self._hostname = s.decode('utf-8')
+ self._hostname = s.decode('utf-8').strip()
except (subprocess.CalledProcessError, OSError):
pass
@@ -345,8 +345,8 @@ class SysInfoOpenBSD(SysInfoBSD):
l = s.decode('utf-8').strip()
r = re.match('^total: (\d+) 1K-blocks allocated, (\d+) used, (\d+) available', l)
if r:
- self._swap_total = int(r.group(1).strip()) * 1024
- self._swap_free = int(r.group(3).strip()) * 1024
+ self._mem_swap_total = int(r.group(1).strip()) * 1024
+ self._mem_swap_free = int(r.group(3).strip()) * 1024
except (subprocess.CalledProcessError, OSError):
pass
diff --git a/src/lib/python/isc/sysinfo/tests/sysinfo_test.py b/src/lib/python/isc/sysinfo/tests/sysinfo_test.py
index 93985c7..4a7d3e8 100644
--- a/src/lib/python/isc/sysinfo/tests/sysinfo_test.py
+++ b/src/lib/python/isc/sysinfo/tests/sysinfo_test.py
@@ -18,6 +18,7 @@ import os
import unittest
import platform
import subprocess
+import time
def _my_testcase_platform_system():
return 'BIND10Testcase'
@@ -30,7 +31,7 @@ def _my_linux_os_sysconf(key):
return 42
assert False, 'Unhandled key'
-class MyFile:
+class MyLinuxFile:
def __init__(self, filename):
self._filename = filename
@@ -67,7 +68,7 @@ class MyFile:
return
def _my_linux_open(filename):
- return MyFile(filename)
+ return MyLinuxFile(filename)
def _my_linux_subprocess_check_output(command):
assert type(command) == list, 'command argument is not a list'
@@ -86,6 +87,39 @@ def _my_linux_subprocess_check_output(command):
else:
assert False, 'Unhandled command'
+def _my_openbsd_platform_system():
+ return 'OpenBSD'
+
+def _my_openbsd_os_sysconf(key):
+ if key == 'SC_NPROCESSORS_CONF':
+ return 53
+ assert False, 'Unhandled key'
+
+def _my_openbsd_subprocess_check_output(command):
+ assert type(command) == list, 'command argument is not a list'
+ if command == ['hostname']:
+ return b'blowfish.example.com\n'
+ elif command == ['sysctl', '-n', 'kern.boottime']:
+ return bytes(str(int(time.time() - 76632)), 'utf-8')
+ elif command == ['sysctl', '-n', 'vm.loadavg']:
+ return b'0.7 0.9 0.8'
+ elif command == ['sysctl', '-n', 'hw.physmem']:
+ return b'543214321'
+ elif command == ['vmstat']:
+ return b' procs memory page disks traps cpu\n r b w avm fre flt re pi po fr sr wd0 cd0 int sys cs us sy id\n 0 0 0 121212 123456 47 0 0 0 0 0 2 0 2 80 14 0 1 99\n'
+ elif command == ['swapctl', '-s', '-k']:
+ return b'total: 553507 1K-blocks allocated, 2 used, 553505 available'
+ elif command == ['ifconfig']:
+ return b'qB2osV6vUOjqm3P/+tQ4d92xoYz8/U8P9v3KWRpNwlI=\n'
+ elif command == ['route', '-n', 'show']:
+ return b'XfizswwNA9NkXz6K36ZExpjV08Y5IXkHI8jjDSV+5Nc=\n'
+ elif command == ['netstat', '-s']:
+ return b'osuxbrcc1g9VgaF4yf3FrtfodrfATrbSnjhqhuQSAs8=\n'
+ elif command == ['netstat', '-an']:
+ return b'Z+w0lwa02/T+5+EIio84rrst/Dtizoz/aL9Im7J7ESA=\n'
+ else:
+ assert False, 'Unhandled command'
+
class SysInfoTest(unittest.TestCase):
def test_sysinfo(self):
"""Test that the various methods on SysInfo exist and return data."""
@@ -193,5 +227,53 @@ class SysInfoTest(unittest.TestCase):
__builtins__.open = old_open
subprocess.check_output = old_subprocess_check_output
+ def test_sysinfo_openbsd(self):
+ """Tests the OpenBSD implementation of SysInfo. Note that this
+ tests deep into the implementation, and not just the
+ interfaces."""
+
+ # Don't run this test on platform other than Openbsd as some
+ # system calls may not even be available.
+ osname = platform.system()
+ if osname != 'OpenBSD':
+ return
+
+ # Save and replace existing implementations of library functions
+ # with mock ones for testing.
+ old_platform_system = platform.system
+ platform.system = _my_openbsd_platform_system
+ old_os_sysconf = os.sysconf
+ os.sysconf = _my_openbsd_os_sysconf
+ old_subprocess_check_output = subprocess.check_output
+ subprocess.check_output = _my_openbsd_subprocess_check_output
+
+ s = SysInfoFromFactory()
+ self.assertEqual(53, s.get_num_processors())
+ self.assertEqual('blowfish.example.com', s.get_platform_hostname())
+ self.assertFalse(s.get_platform_is_smp())
+
+ self.assertLess(abs(76632 - s.get_uptime()), 4)
+ self.assertEqual([0.7, 0.9, 0.8], s.get_loadavg())
+ self.assertEqual(543214321, s.get_mem_total())
+ self.assertEqual(543214321 - (121212 * 1024), s.get_mem_free())
+ self.assertEqual(-1, s.get_mem_cached())
+ self.assertEqual(-1, s.get_mem_buffers())
+ self.assertEqual(566791168, s.get_mem_swap_total())
+ self.assertEqual(566789120, s.get_mem_swap_free())
+ self.assertRegexpMatches(s.get_platform_distro(), '^OpenBSD\s+.*')
+
+ # These test that the corresponding tools are being called (and
+ # no further processing is done on this data). Please see the
+ # implementation functions at the top of this file.
+ self.assertEqual('qB2osV6vUOjqm3P/+tQ4d92xoYz8/U8P9v3KWRpNwlI=\n', s.get_net_interfaces())
+ self.assertEqual('XfizswwNA9NkXz6K36ZExpjV08Y5IXkHI8jjDSV+5Nc=\n', s.get_net_routing_table())
+ self.assertEqual('osuxbrcc1g9VgaF4yf3FrtfodrfATrbSnjhqhuQSAs8=\n', s.get_net_stats())
+ self.assertEqual('Z+w0lwa02/T+5+EIio84rrst/Dtizoz/aL9Im7J7ESA=\n', s.get_net_connections())
+
+ # Restore original implementations.
+ platform.system = old_platform_system
+ os.sysconf = old_os_sysconf
+ subprocess.check_output = old_subprocess_check_output
+
if __name__ == "__main__":
unittest.main()
More information about the bind10-changes
mailing list