#!/usr/bin/env zsh #vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 # Required for shunit2 to run correctly setopt shwordsplit SHUNIT_PARENT=$0 function setUp() { export TERM="xterm-256color" # Test specific P9K_HOME=$(pwd) FOLDER=/tmp/powerlevel9k-test mkdir -p $FOLDER mkdir $FOLDER/sbin } function tearDown() { # Go back to powerlevel9k folder cd "${P9K_HOME}" # Remove eventually created test-specific folder rm -fr "${FOLDER}" unset FOLDER unset P9K_HOME } function fakeIfconfig() { local INTERFACE1="${1}" [[ -z "${INTERFACE1}" ]] && INTERFACE1="eth0" local INTERFACE1_IP="1.2.3.4" local INTERFACE2="${2}" [[ -z "${INTERFACE2}" ]] && INTERFACE2="disabled-if2" local INTERFACE2_IP="5.6.7.8" # Fake ifconfig cat > $FOLDER/sbin/ifconfig < mtu 1500 inet ${INTERFACE1_IP} txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe8200000-e8220000 INNER exit 0 fi if [[ "\$*" =~ '${INTERFACE2}' ]]; then cat < mtu 1500 inet ${INTERFACE2_IP} txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe8200000-e8220000 INNER exit 0 fi # If neither INTERFACE1 nor INTERFACE2 is queried, fake a offline (DOWN) interface. # We assume if there is at least one argument, we queried for a specific interface. if [[ "\$#" -gt 0 ]]; then cat < mtu 1500 inet 5.5.5.5 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe8200000-e8220000 INNER exit 0 fi if [[ "\$#" -eq 0 ]]; then cat < mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:8f:5c:ed:51 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 tun1: flags=4099 mtu 1500 inet 10.20.30.40 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe8200000-e8220000 ${INTERFACE1}: flags=4099 mtu 1500 inet ${INTERFACE1_IP} txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe8200000-e8220000 ${INTERFACE2}: flags=4099 mtu 1500 inet ${INTERFACE2_IP} txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe8200000-e8220000 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 5136 bytes 328651 (320.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5136 bytes 328651 (320.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 INNER exit 0 fi EOF chmod +x $FOLDER/sbin/ifconfig } function fakeIp() { local INTERFACE1="${1}" [[ -z "${INTERFACE1}" ]] && INTERFACE1="eth0" local INTERFACE2="${2}" [[ -z "${INTERFACE2}" ]] && INTERFACE2="disabled-if2" cat > $FOLDER/sbin/ip < mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 valid_lft forever preferred_lft forever INNER fi if [[ "\$*" =~ 'show ${INTERFACE2}' ]]; then cat < mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 1.2.3.4 brd 10.0.2.255 scope global eth0 valid_lft forever preferred_lft forever INNER fi EOF chmod +x $FOLDER/sbin/ip } function testIpSegmentPrintsNothingOnOsxIfNotConnected() { cat > $FOLDER/sbin/ifconfig < $FOLDER/sbin/ip <