Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

1. Setup VM with:

  • CPU - 4

  • Memory - 8GB

  • Hard disk - 100GB

  • Have to use DEBUG build, where we have debug macro

Setup process is described in this instruction.

Note : If you already created dilos_BASE BE according the instruction, and there is no any new tested stable version, just execute the following command:

beadm activate dilos_BASE

In other case if you have already the dilos_ISO_orig BE - make the command:

beadm activate dilos_ISO_orig

Then reboot and start the instruction from the section Step 6. Prepare VM for Tests Running:

reboot

If you have no one of these 2 BEs then start the instruction from the beginning.

Note : Create ztest user if you forgot to do it according the instruction:

sudo useradd -m -d /var/ztest -g staff -s /bin/bash ztest

sudo passwd ztest

echo "ztest ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/ztest

2. Install packages for net tests:

Note : If you already did it on the previous step when preparing VM to run, then you can skip this step and go to the next one.

sudo apt update
sudo apt install system-test-nettest testrunner python3

3. Login by user ztest and create zones:

Zones must be created according to the file:
/opt/net-tests/config/ip_forwarding.config
Currently accepted names: cz, sz, rz

Important! Zones must be placed to the /zones directory like dhcp zone.

Configure, install and boot zones. The following is the configuration for the cz zone:

ztest@dilos:~# cat > cz.cfg <<EOT
create
set zonepath=/zones/cz
set autoboot=false
set ip-type=exclusive
add net
set physical=int1
set global-nic="vsw0"
add property (name="ip",value="dhcp")
add property (name="primary",value="true")
end
commit
exit
EOT
ztest@dilos:~# sudo zonecfg -z cz -f cz.cfg
ztest@dilos:~# sudo zoneadm -z cz install && sudo zoneadm -z cz boot

For other zones settings will be the same. For the sz zone:

ztest@dilos:~# cat > sz.cfg <<EOT
create
set zonepath=/zones/sz
set autoboot=false
set ip-type=exclusive
add net
set physical=int2
set global-nic="vsw0"
add property (name="ip",value="dhcp")
add property (name="primary",value="true")
end
commit
exit
EOT
ztest@dilos:~# sudo zonecfg -z sz -f sz.cfg
ztest@dilos:~# sudo zoneadm -z sz install && sudo zoneadm -z sz boot

and for the rz zone:

ztest@dilos:~# cat > rz.cfg <<EOT
create
set zonepath=/zones/rz
set autoboot=false
set ip-type=exclusive
add net
set physical=int3
set global-nic="vsw0"
add property (name="ip",value="dhcp")
add property (name="primary",value="true")
end
commit
exit
EOT
ztest@dilos:~# sudo zonecfg -z rz -f rz.cfg
ztest@dilos:~# sudo zoneadm -z rz install && sudo zoneadm -z rz boot

4. Install the socat package for every zone

The zones have not configured net, need to install it from the global zone.

Download it in the global zone:

apt download socat

In the current version, the name of the downloaded file is socat_1.7.3.1-2+deb9u1+dilos2_solaris-i386.deb

Install into the zones:

sudo apt -y -o Dir=/zones/cz/root update
sudo apt -y -o Dir=/zones/cz/root upgrade
sudo dpkg -i --root=/zones/cz/root socat_1.7.3.1-2+deb9u1+dilos2_solaris-i386.deb

sudo apt -y -o Dir=/zones/sz/root update
sudo apt -y -o Dir=/zones/sz/root upgrade
sudo dpkg -i --root=/zones/sz/root socat_1.7.3.1-2+deb9u1+dilos2_solaris-i386.deb

sudo apt -y -o Dir=/zones/rz/root update
sudo apt -y -o Dir=/zones/rz/root upgrade
sudo dpkg -i --root=/zones/rz/root socat_1.7.3.1-2+deb9u1+dilos2_solaris-i386.deb

sudo reboot

5. Launch tests

Check that dhcp zone and server are running after reboot and run test zones and tests:

sudo zoneadm -z cz boot && sudo zoneadm -z sz boot && sudo zoneadm -z rz boot
sudo /opt/net-tests/bin/nettest

Wait for several minutes and have found full logs at:

/var/tmp/test_results/<ISO TIME>

Note : You can run the test using a shell script. It can be created with any text editor or by executing the following command:

ztest@zone:~# cat > test-script.sh <<EOT

#!/bin/bash

LOG="/var/tmp/nettest.\$(date +%F-%T).txt"

echo Booting zones...

sudo zoneadm -z cz boot && sudo zoneadm -z sz boot && sudo zoneadm -z rz boot

echo Done. Starting tests...

uname -a > a.tmp

echo "" >> a.tmp

echo ============================= IP Address ====================== 2>&1 | /usr/bin/tee -a \${LOG}

sudo ifconfig | grep -A 1 vmxnet3s0 2>&1 | /usr/bin/tee -a \${LOG}

echo =============================== Zones ========================= 2>&1 | /usr/bin/tee -a \${LOG}

sudo zoneadm list -v 2>&1 | /usr/bin/tee -a \${LOG}

echo ============================ DHCP Server ====================== 2>&1 | /usr/bin/tee -a \${LOG}

sudo svcs -z dhcp isc-dhcp-server 2>&1 | /usr/bin/tee -a \${LOG}

echo =============================== Tests ========================= 2>&1 | /usr/bin/tee -a \${LOG}

sudo /opt/net-tests/bin/nettest /var/tmp 2>&1 | /usr/bin/tee -a \${LOG}

sed -n '/Results Summary/,/Log directory:/p' \${LOG} >> a.tmp

fail=\$(sed -n '/^FAIL[ \\t]*/p' a.tmp | sed 's/^FAIL[ \\t]*//; s/[*\\t]*\$//')

pass=\$(sed -n '/^PASS[ \\t]*/p' a.tmp | sed 's/^PASS[ \\t]*//; s/[*\\t]*\$//')

total=\$((\$fail + \$pass))

echo "TOTAL TESTS: \$total" >> a.tmp

echo "---------------------------------------------------------" >> a.tmp

echo "" >> a.tmp

cat \${LOG} >> a.tmp

mv -f a.tmp \${LOG}

EOT

ztest@zone:~# sed -i '/./!d' test-script.sh && chmod 777 test-script.sh

After running of this script you will find the log in the /var/tmp/nettest.<ISO TIME>.txt file. It will contain information in the format that is used in Test Results.

 

  • No labels