Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1. Setup VM with:

  • CPU - 4

  • Memory - 8GB

  • Hard disk - 100GB

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

Create user:

if you created a user at the vm preparation stage, then skip this step.

Code Block
sudo useradd -m -d /var/ztest -g staff -s /bin/bash ztest
# add password for remote ssh
sudo passwd ztest

Add user to sudo:

if you created a user at the vm preparation stage, then skip this step.

...

Setup process is described in this instruction.

Info

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.

Info

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

...

ELF tests:

Info

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.

Code Block
sudo apt update
reboot
sudo apt install system-test-elftest testrunner pythonpython3 build-essential

3. Login by user ztest and run tests:

Code Block
sudo /opt/elf-tests/bin/elftest

Test run script

bash
Code Block
language

Wait for several minutes and have found full logs at:

/var/tmp/test_results/<ISO TIME>

...

Info

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

ipa=\$(sudo ifconfig | grep -A 1 vmxnet3s0 | sed '1d; s/^[ \\t]*inet[ \\t]*//; s/[ \\t]*netmask.*\$//')

if [ -n "\$1" ]; then

CLOG="/var/tmp/

elftest.`date "

elf-stability.\$(date +%F-%T).txt"

echo "=== Stability elf tests \$(date +%F-%T

"`.txt" uname -a > ${LOG} sudo

) ===" > \${CLOG}

for (( i=1; i<=\$1; i++ ))

do

echo "------------------ Pass \${i} ---------------------" 2>&1 | /usr/bin/tee -a \${CLOG}

LOG="/var/tmp/elftest.\$i.txt"

uname -a > \${LOG}

echo "IP Address : \${ipa}" >> \${LOG}

sudo /opt/elf-tests/bin/elftest

/var/tmp 2>&1 |

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

percent="\$(grep 'Percent passed:' \${LOG} | sed 's/Percent passed:[ \\t]*//; s/[ \\t]*\$//')"

folder="\$(grep 'Log directory:' \${LOG} | sed 's/Log directory:[ \\t]*//; s/[ \\t]*\$//')"

rt="\$(grep 'Running Time:' \${LOG} | sed 's/Running Time:[ \\t]*//; s/[ \\t]*\$//')"

echo " Percent passed: \${percent}" >> \${CLOG}

echo " Running Time: \${rt}" >> \${CLOG}

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

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

echo "" >> a.tmp

cat \${LOG} >> a.tmp

mv -f a.tmp \${LOG}

if [ "\${percent}" == "100.0%" ]; then

sudo rm -f \${LOG}

sudo rm -f /var/tmp/*.o /var/tmp/*.c /var/tmp/*.le

sudo rm -r -f \${folder}

else

echo " PASS \${i} IS FAILED! (See \${LOG})" >> \${CLOG}

echo "Fault on \${i} pass! Just \${percent} are successfull. You can find logs in \${folder}." 2>&1 | /usr/bin/tee -a \${LOG}

exit 1

fi

done

else

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

uname -a > a.tmp

echo "IP Address : \${ipa}" >> a.tmp

echo "" >> a.tmp

sudo /opt/elf-tests/bin/elftest 2>&1 | /usr/bin/tee

-a

\${LOG}

Wait for several minutes and have found full logs at:

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=0

if [ "\${pass}" != "" ]; then

total=\$((\${total} + \${pass}))

fi

if [ "\${fail}" != "" ]; then

total=\$((\${total} + \${fail}))

fi

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

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

echo "" >> a.tmp

cat \${LOG} >> a.tmp

mv -f a.tmp \${LOG}

fi

EOT

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

You can run the test script in a single mode, i.e. all tests will be executed once (./test-script.sh - without parameters). After running of this script you will find the log in the /var/tmp/elftest.<ISO TIME>.txt file. It will contain information in the format that is used in Test Results.

...

Running in stability mode