Versions Compared

Key

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

...

Code Block
languagebash
sudo apt update
reboot
sudo apt install system-dtrace-tests build-essential oracle-java8-jdk perl testrunner python3 bc
Expand
titleУтилита SCREEN для запуска тестов DTRACE

Тесты DTRACE выполняются довольно долгое время. Поэтому есть способ, как запустить их на выполнение и отключить компьютер с последующим подключением к выполняемым тестам. Для этого нужно:

  • подключаться к VM с тестами по SSH

  • пользоваться для запуска тестов утилитой SCREEN

Её можно установить в этом месте командой:

Code Block
languagebash
sudo apt install screen

...

Expand
titleЗапуск при помощи утилиты SCREEN

Если Вы подключились по SSH и хотите отключиться от сессии SSH или отключить свой компьютер на время, то для запуска тестов выполните следующую команду:

Code Block
languagebash
screen /opt/SUNWdtrt/bin/dtest -d /var/tmp

Дальше в любой момент Вы можете нажать Ctrl-A d, после чего отключиться от сессии SSH.

Затем когда Вы захотите вернуться, залогиньтесь снова по SSH и введите команду:

Code Block
languagebash
screen -r

и Вы вернётесь к своим выполняющимся тестам.

Info

Note : Тесты можно запустить при помощи тестового скрипта. Его можно создать либо в текстовом редакторе, либо при помощи команды:

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 > /var/tmp/a.tmp\${LOG}

echo "" >> /var/tmp/a.tmpIP Address : \${ipa}" >> \${LOG}

START_TIME=\$(date +%s)

sudo /opt/SUNWdtrt/bin/dtest -d /var/tmp 2>&1 | /usr/bin/tee -a \${LOG}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))\$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 >> ${hour} \${min} \${LOG}echo "" >> sec} | /usr/bin/tee -a /var/tmp/a.tmp

echo "" >> \${LOG}

sed -n '/== TEST RESULTS ==/,/Running Time:/p' \${LOG} >> /var/tmp/a.tmp >> \${LOG}

echo "" >> /var/tmp/a.tmp\${LOG}

echo "------------------------ FAILED -------------------------" >> /var/tmp/a.tmp\${LOG}

grep 'ERROR:' \${LOG} >> /var/tmp/a.tmp >> \${LOG}

echo "" >> /var/tmp/a.tmp\${LOG}

echo "---------------------------------------------------------" >> \${LOG}

cat /var/tmp/a.tmp cat >> \${LOG} >> /var/tmp/a.tmpmv

sudo rm -f /var/tmp/a.tmp \${LOG}

EOT

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

Тогда после запуска этого скрипта в файле /var/tmp/dtrace-test.<ISO TIME>.txt Вы найдёте лог в формате, в котором он публикуется в Test Results.

Если Вы, как упоминалось выше, будете подключаться при помощи утилиты SCREEN, то Ваша команда будет выглядеть так:

ztest@zone:~# screen ./test-script.sh

Далее Вы сможете так же отключиться в любой момент по нажатию Ctrl-A d и подключиться обратно в новой сессии SSH по:

ztest@zone:~# screen -r

Если Вы не планируете использовать SCREEN, то запуск будет выглядеть проще:

ztest@zone:~# ./test-script.sh

...