[tests] Collect compose logs after each build

- save compose logs under /var/log/$TEST
- save qemu logs under /var/log/$TEST/qemu.log
- download everything to $TEST_ATTACHMENTS so it can be saved
  in CI results
This commit is contained in:
Alexander Todorov 2019-09-11 11:04:02 +03:00 committed by Alexander Todorov
parent 836f0ddf7a
commit 8af9723c37
3 changed files with 10 additions and 2 deletions

View File

@ -54,6 +54,9 @@ class ComposerTestCase(unittest.TestCase):
self.assertEqual(r.returncode, 0) self.assertEqual(r.returncode, 0)
def tearDown(self): def tearDown(self):
if os.environ.get('TEST_ATTACHMENTS'):
self.machine.download_dir('/var/log/tests', os.environ.get('TEST_ATTACHMENTS'))
# Peek into internal data structure, because there's no way to get the # Peek into internal data structure, because there's no way to get the
# TestResult at this point. `errors` is a list of tuples (method, error) # TestResult at this point. `errors` is a list of tuples (method, error)
errors = list(e[1] for e in self._outcome.errors if e[1]) errors = list(e[1] for e in self._outcome.errors if e[1])

View File

@ -24,7 +24,9 @@ boot_image() {
QEMU_BOOT=$1 QEMU_BOOT=$1
TIMEOUT=$2 TIMEOUT=$2
rlRun -t -c "$QEMU -m 2048 $QEMU_BOOT -nographic -monitor none \ rlRun -t -c "$QEMU -m 2048 $QEMU_BOOT -nographic -monitor none \
-net user,id=nic0,hostfwd=tcp::$SSH_PORT-:22 -net nic &" -net user,id=nic0,hostfwd=tcp::$SSH_PORT-:22 -net nic \
-chardev null,id=log0,mux=on,logfile=/var/log$TEST/qemu.log,logappend=on \
-serial chardev:log0 &"
# wait for ssh to become ready (yes, http is the wrong protocol, but it returns the header) # wait for ssh to become ready (yes, http is the wrong protocol, but it returns the header)
tries=0 tries=0
until curl -sS -m 15 "http://localhost:$SSH_PORT/" | grep 'OpenSSH'; do until curl -sS -m 15 "http://localhost:$SSH_PORT/" | grep 'OpenSSH'; do
@ -107,6 +109,10 @@ wait_for_compose() {
rlLogInfo "Waiting for compose to finish ..." rlLogInfo "Waiting for compose to finish ..."
done; done;
check_compose_status "$UUID" check_compose_status "$UUID"
rlRun -t -c "mkdir -p /var/log/$TEST"
rlRun -t -c "$CLI compose logs $UUID"
rlRun -t -c "mv $UUID-logs.tar /var/log/$TEST"
else else
rlFail "Compose UUID is empty!" rlFail "Compose UUID is empty!"
fi fi

View File

@ -89,7 +89,6 @@ until curl -m 15 --unix-socket /run/weldr/api.socket http://localhost:4000/api/s
echo "DEBUG: Waiting for backend API to become ready before testing ..." echo "DEBUG: Waiting for backend API to become ready before testing ..."
done; done;
export BEAKERLIB_JOURNAL=0 export BEAKERLIB_JOURNAL=0
if [ -z "$*" ]; then if [ -z "$*" ]; then
# invoke cli/ tests which can be executed without special preparation # invoke cli/ tests which can be executed without special preparation