On Thu, 7 Nov 2019, Joe Lawrence wrote:
On 11/7/19 3:42 AM, Miroslav Benes wrote:
On Wed, 6 Nov 2019, Joe Lawrence wrote:
The livepatch selftests compare expected dmesg output to verify kernel behavior. They currently filter out "tainting kernel with TAINT_LIVEPATCH" messages which may be logged when loading livepatch modules.
Further filter the log to also drop "loading out-of-tree module taints kernel" messages in case the klp_test modules have been build without the in-tree module flag.
That is true, but "tainting kernel with TAINT_LIVEPATCH" should be printed out even in this case. check_modinfo_livepatch() is called for all modules and relies on MODINFO(livepatch, Y).
So either the bug is elsewhere or I need one more cup of tea.
Ok, the above is not relevant here.
I'm only wondering about the execution steps, because supporting modules lib/livepatch/ should be built as in-tree. No?
I'm only half a cup in this morning myself, but...
In my scenario, I saw in the kernel log:
% modprobe test_klp_livepatch test_klp_livepatch: loading out-of-tree module taints kernel. test_klp_livepatch: module verification failed: signature and/or required key missing - tainting kernel ...
So modprobe here should not print anything like this.
and because check_result() only removes 'tainting' with grep -v, the expected log message failed to match with the actual filtered message because of the first 'taints' message.
So this change just adds more to the filtered out strings:
result = dmesg | grep -v <filtered out strings> | grep <interesting strings>
The code is definitely correct. You can add my
Acked-by: Miroslav Benes mbenes@suse.cz
M