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 DTRACE 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-dtrace-tests build-essential oracle-java8-jdk perl testrunner python3 bc
3. Login by user ztest and run tests:
sudo /opt/SUNWdtrt/bin/dtest -d /var/tmp
Wait for about 90 minutes.
Fault logs will be saved 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
ipa=\$(sudo ifconfig | grep -A 1 vmxnet3s0 | sed '1d; s/^[ \\t]*inet[ \\t]*//; s/[ \\t]*netmask.*\$//')
LOG="/var/tmp/dtrace-test.\$(date +%F-%T).txt"
uname -a > \${LOG}
echo "IP Address : \${ipa}" >> \${LOG}
START_TIME=\$(date +%s)
sudo /opt/SUNWdtrt/bin/dtest -d /var/tmp 2>&1 | /usr/bin/tee -a /var/tmp/a.tmp
END_TIME=\$(date +%s)
delta=\$((\$END_TIME - \$START_TIME))
sec=\$((\$delta % 60))
let "amin = \$delta / 60"
let "hour = \$amin / 60"
min=\$((\$amin % 60))
total=\$(grep 'total:' /var/tmp/a.tmp | sed 's/^[ \\t]*total:[ \\t]*//;s/[ \\t]*\$//')
passed=\$(grep 'passed:' /var/tmp/a.tmp | sed 's/^[ \\t]*passed:[ \\t]*//;s/[ \\t]*\$//')
result=\$(echo "scale=1; \${passed}*100.0/\${total}" | bc)
echo "Percent Passed: \${result}%" | /usr/bin/tee -a /var/tmp/a.tmp
printf "Running Time: %02d:%02d:%02d\n" \${hour} \${min} \${sec} | /usr/bin/tee -a /var/tmp/a.tmp
echo "" >> \${LOG}
sed -n '/== TEST RESULTS ==/,/Running Time:/p' /var/tmp/a.tmp >> \${LOG}
echo "" >> \${LOG}
echo "------------------------ FAILED -------------------------" >> \${LOG}
grep 'ERROR:' /var/tmp/a.tmp >> \${LOG}
echo "" >> \${LOG}
echo "---------------------------------------------------------" >> \${LOG}
cat /var/tmp/a.tmp >> \${LOG}
sudo rm -f /var/tmp/a.tmp
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/dtrace-test.<ISO TIME>.txt file. It will contain information in the format that is used in Test Results.
If you use the SCREEN utility (how it was described earlier), your command will look like this:
ztest@zone:~# screen ./test-script.sh
Then you can disconnect in any time by pressing Ctrl-A d and connect back in the new SSH session by the command:
ztest@zone:~# screen -r
If you do NOT want to use the SCREEN utility, your command will be just:
ztest@zone:~# ./test-script.sh
Fault logs will be saved at:
/var/tmp/failure.*