Hi all,
I have been having issues doing solely boot and test with serial (specific issue(s) not diagnosed, but presumably something to do with telnet), but that's not the discussion here.
I want to be try booting the device with the serial method then deploying/running tests using ssh, since it seems like ssh can't power on and power off the DUT. If that is wrong then please let me know so I can try that.
I have two proposed ideas:
1) boot with serial -> deploy test (however works) -> run test with serial -> power off
2) boot with serial -> deploy test (however works) -> run test with ssh -> power off
I started with a multinode job (I still don't quite understand multinode yet) and this is my current job definition, if you could please help point out issues with it as it doesn't work:
#multinode job for controller deployment
job_name: controller deploy test
protocols:
lava-multinode:
roles:
host:
context:
lava_test_results_dir: /tmp/lava-%s
device_type: controller
timeout:
minutes: 10
count: 1
guest:
context:
lava_test_results_dir: /tmp/lava-%s
request: lava-start
count: 3
expect_role: host
timeout:
minutes: 10
connection: ssh
host_role: host
timeouts:
job:
minutes: 15
action:
minutes: 5
connection:
minutes: 2
priority: medium
visibility: public
actions:
- deploy:
role:
- host
timeout:
minutes: 10
to: tftp
authorize: ssh
kernel:
url: file:///kernel.img
type: uimage
ramdisk:
url: file:///ramdisk.gz
compression: gz
dtb:
url: file:///u-boot.dtb
- deploy:
role:
- guest
timeout:
minutes: 10
to: ssh
protocols:
lava-multinode:
- action: prepare-scp-overlay
request: lava-wait
messageID: ipv4
message:
ipaddr: $ipaddr
- boot:
role:
- host
timeout:
minutes: 5
method: minimal
prompts: ["# "]
auto_login:
login_prompt: "login: "
username: root
- boot:
role:
- guest
timeout:
minutes: 5
prompts: ["# $"]
parameters:
hostID: ipv4 # messageID
host_key: ipaddr # message key
method: ssh
connection: ssh
- test:
role:
- host
timeout:
minutes: 15
definitions:
- repository:
metadata:
format: Lava-Test Test Definition 1.0
name: install-ssh
description: "install step"
scope:
- functional
run:
steps:
# messageID matches, message_key as the key.
- lava-send ipv4 ipaddr=$(lava-echo-ipv4 eth0)
- lava-send lava_start
- lava-sync clients
from: inline
name: ssh-inline
path: inline/ssh-install.yaml
- test:
role:
- guest
timeout:
minutes: 5
definitions:
- repository: https://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@github.com/MichaelPed/lava…
from: git
path: smoke-tests/smoke.yaml
name: smoke-tests
# run the inline last as the host is waiting for this final sync.
- repository:
metadata:
format: Lava-Test Test Definition 1.0
name: client-ssh
description: "client complete"
scope:
- functional
run:
steps:
- df -h
- free
- lava-sync clients
from: inline
name: ssh-client
path: inline/ssh-client.yaml
And this is my device dictionary, if you could please let me know what needs changing:
{% extends 'controller.jinja2' %}
{% set power_off_command = 'python /power.py 12 off' %}
{% set soft_reboot_command = 'reboot'%}
{% set hard_reset_command = 'python /power.py 12 reboot' %}
{% set power_on_command = 'python /power.py 12 on' %}
{% set connection_list = ['uart0'] %}
{% set connection_commands = {'uart0': 'telnet 10.60.2.209 7001'} %}
{% set connection_tags = {'uart0': ['primary', 'telnet']} %}
{% set bootm_kernel_addr = '/kernel.img' %}
If you guys have any questions please ask away! Also, if there is somehow something other than a multinode job that will do what I want then please let me know!
Best regards,
Michael
Hello! I want to run QEMU in DUT and gdb the QEMU in another console to simulate something like a bit flip in memory. What should I do? I just need the new console to run some gdb scripts, like `rust-gdb vmlinux -ex 'target remote /tmp/gdb_socket' -ex 'set *0x40001000 ^= (1<<5)' -ex `c` `, so the new console can not be interactive, live to run some command is enough.
Thanks!
Hello everyone,
I would like to integrate & run a bare metal custom tests suite(pytest) on
lava. Currently I am executing manually from Host Machine(where pytest is
configured and pytest suite will execute) and these commands are sent to
DUT and results are collected on Host Machine.
I am familiar with lava-interactive method but it looks like it will not
suit this requirement(Run pytest on Host and collect logs from DUT).
Does lava suits for this requirement? if someone could give me advice on
this that would be great support.
Regards
Nagendra S
Hi,
I hope to be able to test whether the system can boot normally after multiple restarts (10,000 times)
Because every boot requires the auto_login of the boot action, it seems that a loop needs to be implemented in yaml, and this loop needs to include the boot action. Are there any relevant examples that you can refer to?
There are roughly two types of test logic
1:
while (a<10000)
{
-boot
auto_login
- test
basic io test
software reboot in target board
a=a+1
}
2:
while (a<10000)
{
-boot
auto_login
- test
basic io test
a=a+1
hardware reboot in worker
}
Thanks
Hi,
I am trying to use transfer_overlay as the fs on my DUT is read-only, but the /data/ and /tmp/ directories are writeable to some extent.
I have a working method to use wget, and it works when I use it manually to download the overlay tarball over http, both on my DUT and on the worker device.
However, the LAVA test itself always returns the error 'Network Unreachable'
What are the possible reasons for this?
Best regards,
Michael