From a60e8083de3a6cec3b610be54f6bef77ce18a36d Mon Sep 17 00:00:00 2001 From: Rohan Prinja
Date: Thu, 16 Jul 2015 13:27:34 +0530 Subject: [PATCH 5/5] tests/syscalls.scm: add getifaddrs tests --- tests/syscalls.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tests/syscalls.scm b/tests/syscalls.scm index bf4f604..3665575 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -213,6 +213,58 @@ For example, (4 2 2 2 2 1 3 3) => (4 2 1 3)." ;; We get EPERM with Linux 3.18ish and EACCES with 2.6.32. (memv (system-error-errno args) (list EPERM EACCES)))))) +(test-assert "getifaddrs" + (let* ((ifaddrs (getifaddrs)) + (names (map interface-address-name ifaddrs))) + (member "lo" names))) + +(test-assert "ifconfig-result-is-subset-of-getifaddrs-result" + (let* ((ifaddrs (getifaddrs)) + (names (map interface-address-name ifaddrs)) + (sorted-names (sort names string)) + (unique-names (remove-duplicates sorted-names)) + (ifconfig (ifconfig-find-all-interfaces))) + (prefix? + (sort (ifconfig-find-all-interfaces) string) + unique-names))) + +(test-assert "getifaddrs-address" + (let* ((is-eth-iface? (lambda (i) + (string-prefix? "eth" + (interface-address-name i)))) + (ifaddrs (getifaddrs)) + (eth-ifaces (filter is-eth-iface? ifaddrs)) + (getifaddrs-tmp (map interface-address-address eth-ifaces)) + (getifaddrs-result (remove not getifaddrs-tmp)) + (ifconfig-result (ifconfig-extract-addr-of "eth" 'address))) + (member ifconfig-result getifaddrs-result))) + +(test-assert "getifaddrs-broadcast-address" + (let* ((is-eth-iface? (lambda (i) + (string-prefix? "eth" + (interface-address-name i)))) + (ifaddrs (getifaddrs)) + (eth-ifaces (filter is-eth-iface? ifaddrs)) + (getifaddrs-tmp (map interface-address-broadcast-addr eth-ifaces)) + (getifaddrs-result (remove not getifaddrs-tmp)) + (ifconfig-result (ifconfig-extract-addr-of "eth" 'broadcast))) + (member ifconfig-result getifaddrs-result))) + +(test-assert "getifaddrs-netmask-address" + (let* ((is-eth-iface? (lambda (i) + (string-prefix? "eth" + (interface-address-name i)))) + (ifaddrs (getifaddrs)) + (eth-ifaces (filter is-eth-iface? ifaddrs)) + (getifaddrs-tmp (remove (lambda (i) + (null-pointer? + (interface-address-netmask i))) + eth-ifaces)) + (getifaddrs-tmp (map interface-address-netmask-addr getifaddrs-tmp)) + (getifaddrs-result (remove not getifaddrs-tmp)) + (ifconfig-result (ifconfig-extract-addr-of "eth" 'netmask))) + (member ifconfig-result getifaddrs-result))) + (test-end) -- 1.9.1