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 18 Next »

1. Подготовьте VM со следующими параметрами:

  • CPU - 4

  • Память - 8GB

  • HDD - 100GB

  • Если есть дебажный макрос, используйте версию DEBUG

Процесс подготовки описан в этой инструкции.

Note : Если согласно инструкции Вы уже создали раньше на этой машине dilos_BASE, и не выходил ещё новый стабильный билд, то выполните команду:

beadm activate dilos_BASE

В противном случае если у Вас есть уже dilos_ISO_orig, то выполните команду:

beadm activate dilos_ISO_orig

Перезагрузитесь и начните выполнять инструкцию с пункта Шаг 6. Подготовка машины для запуска тестов:

reboot

Если же у Вас нет ни одного их этих двух BE, то инструкцию следует выполнять с самого начала.

Note : Если Вы забыли создать пользователя ztest согласно инструкции, создайте его сейчас:

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. Установите пакеты, необходимые для тестов DTRACE:

Note : Если Вы уже поставили их на предыдущем шаге в процессе подготовки машины к запуску, то можно перейти сразу к следующему шагу.

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

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

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

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

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

sudo apt install screen

3. Залогиньтесь под эккаунтом ztest и запустите тесты:

sudo /opt/SUNWdtrt/bin/dtest -d /var/tmp

Подождите минут 90, пока тесты закончатся, и Вы найдёте логи здесь:

/var/tmp/test_results/<ISO TIME>

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

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

screen /opt/SUNWdtrt/bin/dtest -d /var/tmp

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

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

screen -r

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

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

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

#!/bin/bash

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

uname -a > a.tmp

echo "" >> \${LOG}

START_TIME=\$(date +%s)

sudo /opt/SUNWdtrt/bin/dtest -d /var/tmp 2>&1 | /usr/bin/tee -a \${LOG}

END_TIME=\$(date +%s)

delta=\$((\$END_TIME - \$START_TIME))

sec=\$((\$delta % 60))

let "amin = \$delta / 60"

let "hour = \$amin / 60"

min=\$((\$amin%60))

printf "Running Time: %02d:%02d:%02d\n" \$hour \$min \$sec >> \${LOG}

echo "" >> a.tmp

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

echo "" >> a.tmp

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

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

echo "" >> a.tmp

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

cat \${LOG} >> a.tmp

mv -f a.tmp \${LOG}

EOT

ztest@zone:~# 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

Логи ошибок/отказов будут сохраняться здесь:

/var/tmp/failure.*

См. beadm, screen

  • No labels