Check ovniemu -b works without can_breakdown set

Ensure that we can successfully process a trace that has nOS-V threads
without the can_breakdown flag set to true. We simply don't enable the
nOS-V breakdown, but other models can enable it.
This commit is contained in:
Rodrigo Arias 2025-04-11 15:14:35 +02:00
parent a1a2941b64
commit 1dcb3f4822
2 changed files with 28 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# Copyright (c) 2022-2024 Barcelona Supercomputing Center (BSC)
# Copyright (c) 2022-2025 Barcelona Supercomputing Center (BSC)
# SPDX-License-Identifier: GPL-3.0-or-later
test_emu(attach.c)
@ -18,6 +18,7 @@ test_emu(require-missing.c
NAME flag-enable-all
DRIVER "flag-enable-all.driver.sh"
REGEX "all .* models are enabled")
test_emu(cannot-breakdown.c BREAKDOWN REGEX "WARN: cannot enable breakdown for nOS-V model")
test_emu(parallel-tasks.c)
test_emu(nest-to-parallel.c)
test_emu(mutex.c)

View File

@ -0,0 +1,26 @@
/* Copyright (c) 2025 Barcelona Supercomputing Center (BSC)
* SPDX-License-Identifier: GPL-3.0-or-later */
#include <ovni.h>
#include "instr_nosv.h"
/* Test that we can request the -b flag but still have threads that don't have
* the nosv.can_breakdown attribute set to true. OpenMP may enable the breakdown
* on its own. */
int
main(void)
{
instr_start(0, 1);
/* Don't enable nosv model via instr_nosv_init() as that would set the
* nosv.can_breakdown to 1 */
instr_require("nosv");
ovni_attr_set_boolean("nosv.can_breakdown", 0);
/* Emit a nosv event */
instr_nosv_type_create(666);
instr_end();
return 0;
}