# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

package(default_visibility = ["//visibility:public"])

load("//rules:opentitan.bzl", "OPENTITAN_CPU")

# TODO: Fix this.  This file isn't useful without test-status.h and should be
# considered part of the basic test_framework library.  As such, this file
# _should_ live along side those files.
filegroup(
    name = "check",
    srcs = ["check.h"],
)
