Skip to content

Commit

Permalink
Fix test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidePrincipi committed Sep 11, 2024
1 parent 5e5aa15 commit 4d0b6a8
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 35 deletions.
52 changes: 32 additions & 20 deletions test-module.sh
Original file line number Diff line number Diff line change
@@ -1,30 +1,42 @@
#!/bin/bash

#
# Copyright (C) 2024 Nethesis S.r.l.
# SPDX-License-Identifier: GPL-3.0-or-later
#

set -e

LEADER_NODE=$1
IMAGE_URL=$2
shift 2
SSH_KEYFILE=${SSH_KEYFILE:-$HOME/.ssh/id_rsa}

ssh_key="$(cat $SSH_KEYFILE)"
ssh_key="$(< $SSH_KEYFILE)"

cleanup() {
set +e
podman cp rf-core-runner:/home/pwuser/outputs tests/
podman stop rf-core-runner
podman rm rf-core-runner
}

trap cleanup EXIT
podman run -i \
--volume=site-packages:/home/pwuser/.local/lib/python3.8/site-packages:Z \
--network=host \
-v .:/home/pwuser/ns8-module:z \
--name rf-core-runner ghcr.io/marketsquare/robotframework-browser/rfbrowser-stable:v10.0.3 \
--volume=site-packages:/home/pwuser/.local/lib/python3.8/site-packages:Z \
--name rf-core-runner ghcr.io/marketsquare/robotframework-browser/rfbrowser-stable:18.6.3 \
bash -l -s <<EOF
set -e
echo "$ssh_key" > /home/pwuser/ns8-key
set -x
pip install -r /home/pwuser/ns8-module/tests/pythonreq.txt
mkdir ~/outputs
cd /home/pwuser/ns8-module
robot -v NODE_ADDR:${LEADER_NODE} \
-v SSH_KEYFILE:/home/pwuser/ns8-key \
-d ~/outputs /home/pwuser/ns8-module/tests/
set -e
echo "$ssh_key" > /home/pwuser/ns8-key
pip install -q -r /home/pwuser/ns8-module/tests/pythonreq.txt
mkdir ~/outputs
cd /home/pwuser/ns8-module
exec robot -v NODE_ADDR:${LEADER_NODE} \
-v IMAGE_URL:${IMAGE_URL} \
-v SSH_KEYFILE:/home/pwuser/ns8-key \
--name loki \
--skiponfailure unstable \
-d ~/outputs ${@} /home/pwuser/ns8-module/tests/
EOF

tests_res=$?

podman cp rf-core-runner:/home/pwuser/outputs tests/
podman stop rf-core-runner
podman rm rf-core-runner

exit ${tests_res}
13 changes: 10 additions & 3 deletions tests/loki.robot → tests/10__install.robot
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,27 @@
Library SSHLibrary

*** Test Cases ***
Module installation
${output} ${rc} = Execute Command add-module ${IMAGE_URL} 1
... return_rc=True
Should Be Equal As Integers ${rc} 0
&{output} = Evaluate ${output}
Set Global Variable ${MID} ${output.module_id}

Check if loki service is loaded correctly
${output} ${rc} = Execute Command ssh -o StrictHostKeyChecking=no loki1@localhost systemctl --user show --property=LoadState loki
${output} ${rc} = Execute Command runagent -m ${MID} systemctl --user show --property=LoadState loki
... return_rc=True
Should Be Equal As Integers ${rc} 0
Should Be Equal As Strings ${output} LoadState=loaded

Check if loki-server service is loaded correctly
${output} ${rc} = Execute Command ssh -o StrictHostKeyChecking=no loki1@localhost systemctl --user show --property=LoadState loki-server
${output} ${rc} = Execute Command runagent -m ${MID} systemctl --user show --property=LoadState loki-server
... return_rc=True
Should Be Equal As Integers ${rc} 0
Should Be Equal As Strings ${output} LoadState=loaded

Check if internal traefik service is loaded correctly
${output} ${rc} = Execute Command ssh -o StrictHostKeyChecking=no loki1@localhost systemctl --user show --property=LoadState traefik
${output} ${rc} = Execute Command runagent -m ${MID} systemctl --user show --property=LoadState traefik
... return_rc=True
Should Be Equal As Integers ${rc} 0
Should Be Equal As Strings ${output} LoadState=loaded
12 changes: 12 additions & 0 deletions tests/90__uninstall.robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*** Settings ***
Library SSHLibrary

*** Variables ***
${MID}

*** Test Cases ***
Module removal
[Tags] module remove
${rc} = Execute Command remove-module --no-preserve ${MID}
... return_rc=True return_stdout=False
Should Be Equal As Integers ${rc} 0
24 changes: 22 additions & 2 deletions tests/__init__.robot
Original file line number Diff line number Diff line change
@@ -1,15 +1,35 @@
*** Settings ***
Library SSHLibrary
Library DateTime

*** Variables ***
${SSH_KEYFILE} %{HOME}/.ssh/id_ecdsa
${NODE_ADDR} 127.0.0.1
${MID} loki0
${IMAGE_URL} ghcr.io/nethserver/loki:latest

*** Keywords ***
Connect to the node
Open Connection ${NODE_ADDR}
Login With Public Key root ${SSH_KEYFILE}
${output} = Execute Command systemctl is-system-running --wait

Wait until boot completes
${output} = Execute Command systemctl is-system-running --wait
Should Be True '${output}' == 'running' or '${output}' == 'degraded'

Save the journal begin timestamp
${tsnow} = Get Current Date result_format=epoch
Set Global Variable ${JOURNAL_SINCE} ${tsnow}

Collect the suite journal
Execute Command journalctl -S @${JOURNAL_SINCE} >journal-dump.log
Get File journal-dump.log ${OUTPUT DIR}/journal-${SUITE NAME}.log

*** Settings ***
Suite Setup Connect to the Node
Suite Setup Run Keywords
... Connect to the Node
... Wait until boot completes
... Save the journal begin timestamp

Suite Teardown Run Keywords
... Collect the suite journal
12 changes: 2 additions & 10 deletions tests/pythonreq.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
robotframework==4.1.2
robotframework-sshlibrary==3.8.0
robotframework-requests==0.9.2
bcrypt==3.2.0
cffi==1.15.0
cryptography==36.0.1
paramiko==2.9.2
pycparser==2.21
pynacl==1.5.0
scp==0.14.2
robotframework
robotframework-sshlibrary

0 comments on commit 4d0b6a8

Please sign in to comment.