def METHOD_NAME(tmp_path, global_rank_spike, num_devices, spike_value, finite_only):
    cb = MyTrainerSpikeDetection(exclude_batches_path=tmp_path, finite_only=finite_only)
    # spike_value == None -> typical spike detection
    # finite_only -> typical spike detection and raise with NaN +/- inf
    # if inf -> inf >> other values -> typical spike detection
    cb.should_raise = spike_value is None or finite_only or spike_value == float("inf")
    trainer = Trainer(
        callbacks=[cb],
        accelerator="cpu",
        devices=num_devices,
        max_epochs=1,
        strategy="ddp_spawn",
    )
    trainer.fit(
        IdentityModule(global_rank_spike, spike_value),
        torch.utils.data.DataLoader([1 for _ in range(10)]),
    )