# -*- python -*-

import os
import sys
import subprocess
import lit.util
import lit.formats

root = os.path.join(os.path.dirname(__file__), "..")

config.name = "ARTIQ"
config.test_format = lit.formats.ShTest()
config.suffixes = [".py"]
config.excludes = ["not.py", "device_db.py"]

if os.getenv("COVERAGE"):
    config.environment["COVERAGE_FILE"] = os.path.join(root, "..", ".coverage")
    python = "coverage run --parallel-mode --source=artiq"
else:
    python = sys.executable
config.substitutions.append( ("%python", python) )

if os.getenv("PYTHONPATH"):
    config.environment["PYTHONPATH"] = os.getenv("PYTHONPATH")

not_ = "{} {}".format(sys.executable, os.path.join(root, "lit", "not.py"))
config.substitutions.append( ("%not", not_) )

if os.name == "posix":
    support_build = os.path.join(root, "libartiq_support")
    if subprocess.call(["rustc", os.path.join(support_build, "lib.rs"),
                                 "--out-dir", support_build,
                                 "-Cpanic=abort", "-g"]) != 0:
        lit_config.fatal("Unable to build JIT support library")

    support_lib = os.path.join(support_build, "libartiq_support.so")
    config.environment["LIBARTIQ_SUPPORT"] = support_lib
    config.environment["RUST_BACKTRACE"] = "1"

    config.available_features.add("exceptions")
    config.available_features.add("time")
