1*36c1af42SGabriele Monaco#!/bin/bash 2*36c1af42SGabriele Monaco# SPDX-License-Identifier: GPL-2.0 3*36c1af42SGabriele Monacosource ../tests/engine.sh 4*36c1af42SGabriele Monacotest_begin 5*36c1af42SGabriele Monaco 6*36c1af42SGabriele Monacoset_timeout 30s 7*36c1af42SGabriele Monaco 8*36c1af42SGabriele Monaco# Help and basic tests 9*36c1af42SGabriele Monacocheck "verify help page" \ 10*36c1af42SGabriele Monaco "$RVGEN --help" 0 "Generate kernel rv monitor" 11*36c1af42SGabriele Monaco 12*36c1af42SGabriele Monacocheck "verify monitor subcommand help" \ 13*36c1af42SGabriele Monaco "$RVGEN monitor --help" 0 "Monitor class" 14*36c1af42SGabriele Monaco 15*36c1af42SGabriele Monaco# DA monitor tests - test all monitor types 16*36c1af42SGabriele Monacocheck_and_compare_folder "DA per_cpu (default name)" \ 17*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/test_da.dot -t per_cpu" \ 18*36c1af42SGabriele Monaco "test_da" "obj-\$(CONFIG_RV_MON_TEST_DA) += monitors/test_da/test_da.o" 19*36c1af42SGabriele Monaco 20*36c1af42SGabriele Monacocheck_and_compare_folder "DA global type" \ 21*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/test_da.dot -t global -n da_global" \ 22*36c1af42SGabriele Monaco "da_global" "DA_MON_EVENTS_IMPLICIT" 23*36c1af42SGabriele Monaco 24*36c1af42SGabriele Monacocheck_and_compare_folder "DA per_task with description" \ 25*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/test_da2.dot -t per_task -n da_pertask_desc -D 'Custom description for testing'" \ 26*36c1af42SGabriele Monaco "da_pertask_desc" "#include <monitors/da_pertask_desc/da_pertask_desc_trace.h>" 27*36c1af42SGabriele Monaco 28*36c1af42SGabriele Monacocheck_and_compare_folder "DA per_obj with parent" \ 29*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/test_da2.dot -t per_obj -n da_perobj_parent -p parent_mon" \ 30*36c1af42SGabriele Monaco "da_perobj_parent" "DA_MON_EVENTS_ID" 31*36c1af42SGabriele Monaco 32*36c1af42SGabriele Monaco# HA monitor tests 33*36c1af42SGabriele Monacocheck_and_compare_folder "HA per_task (default name)" \ 34*36c1af42SGabriele Monaco "$RVGEN monitor -c ha -s tests/specs/test_ha.dot -t per_task" \ 35*36c1af42SGabriele Monaco "test_ha" "HA_MON_EVENTS_ID" 36*36c1af42SGabriele Monaco 37*36c1af42SGabriele Monacocheck_and_compare_folder "HA per_cpu type" \ 38*36c1af42SGabriele Monaco "$RVGEN monitor -c ha -s tests/specs/test_ha.dot -t per_cpu -n ha_percpu" \ 39*36c1af42SGabriele Monaco "ha_percpu" "HA_MON_EVENTS_IMPLICIT" 40*36c1af42SGabriele Monaco 41*36c1af42SGabriele Monaco# LTL monitor test 42*36c1af42SGabriele Monacocheck_and_compare_folder "LTL per_task" \ 43*36c1af42SGabriele Monaco "$RVGEN monitor -c ltl -s tests/specs/test_ltl.ltl -t per_task -n ltl_pertask" \ 44*36c1af42SGabriele Monaco "ltl_pertask" "source \"kernel/trace/rv/monitors/ltl_pertask/Kconfig\"" 45*36c1af42SGabriele Monaco 46*36c1af42SGabriele Monacocheck_and_compare_folder "LTL per_task with parent and description (default name)" \ 47*36c1af42SGabriele Monaco "$RVGEN monitor -c ltl -s tests/specs/test_ltl.ltl -t per_task -p ltl_parent -D 'Simple description'" \ 48*36c1af42SGabriele Monaco "test_ltl" "LTL_MON_EVENTS_ID" 49*36c1af42SGabriele Monaco 50*36c1af42SGabriele Monaco# Error handling tests 51*36c1af42SGabriele Monacocheck "missing required spec argument" \ 52*36c1af42SGabriele Monaco "$RVGEN monitor -c da -t per_cpu" 2 \ 53*36c1af42SGabriele Monaco "the following arguments are required: -s/--spec" "Traceback (most recent call last)" 54*36c1af42SGabriele Monaco 55*36c1af42SGabriele Monacocheck "missing required monitor type" \ 56*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/test_da.dot" 2 \ 57*36c1af42SGabriele Monaco "the following arguments are required: -t/--monitor_type" "Traceback (most recent call last)" 58*36c1af42SGabriele Monaco 59*36c1af42SGabriele Monacocheck "missing required monitor class" \ 60*36c1af42SGabriele Monaco "$RVGEN monitor -s tests/specs/test_da.dot -t per_cpu" 2 \ 61*36c1af42SGabriele Monaco "the following arguments are required: -c/--class" "Traceback (most recent call last)" 62*36c1af42SGabriele Monaco 63*36c1af42SGabriele Monacocheck "invalid monitor class" \ 64*36c1af42SGabriele Monaco "$RVGEN monitor -c invalid -s tests/specs/test_da.dot -t per_cpu" 1 \ 65*36c1af42SGabriele Monaco "Unknown monitor class" "Traceback (most recent call last)" 66*36c1af42SGabriele Monaco 67*36c1af42SGabriele Monacocheck "missing dot file" \ 68*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/nonexistent.dot -t per_cpu" 1 \ 69*36c1af42SGabriele Monaco "No such file or directory" "Traceback (most recent call last)" 70*36c1af42SGabriele Monaco 71*36c1af42SGabriele Monacocheck "missing ltl file" \ 72*36c1af42SGabriele Monaco "$RVGEN monitor -c ltl -s tests/specs/nonexistent.ltl -t per_task" 1 \ 73*36c1af42SGabriele Monaco "No such file or directory" "Traceback (most recent call last)" 74*36c1af42SGabriele Monaco 75*36c1af42SGabriele Monacocheck "invalid dot file syntax" \ 76*36c1af42SGabriele Monaco "$RVGEN monitor -c da -s tests/specs/test_invalid.dot -t per_cpu" 1 \ 77*36c1af42SGabriele Monaco "The automaton doesn't have an initial state" "Traceback (most recent call last)" 78*36c1af42SGabriele Monaco 79*36c1af42SGabriele Monacocheck "invalid ha file syntax" \ 80*36c1af42SGabriele Monaco "$RVGEN monitor -c ha -s tests/specs/test_invalid_ha.dot -t per_obj" 1 \ 81*36c1af42SGabriele Monaco "Unrecognised event" "Traceback (most recent call last)" 82*36c1af42SGabriele Monaco 83*36c1af42SGabriele Monacocheck "invalid ltl file syntax" \ 84*36c1af42SGabriele Monaco "$RVGEN monitor -c ltl -s tests/specs/test_invalid.ltl -t per_task" 1 \ 85*36c1af42SGabriele Monaco "No terminal matches 'i'" "Traceback (most recent call last)" 86*36c1af42SGabriele Monaco 87*36c1af42SGabriele Monacotest_end 88