Source code for infra.packages.wrk

import os
import shutil

from ..context import Context
from ..package import Package
from ..util import run


[docs]class Wrk(Package): """ The wrk benchmark. :identifier: wrk-<version> :param version: version to download """ name = "wrk" gitrepo = "https://github.com/wg/wrk.git" def __init__(self, version: str = "master"): self.version = version def ident(self) -> str: return self.name + "-" + self.version def fetch(self, ctx: Context) -> None: run(ctx, ["git", "clone", self.gitrepo, "src"]) os.chdir("src") run(ctx, ["git", "checkout", self.version]) def build(self, ctx: Context) -> None: os.chdir("src") if not os.path.exists("Makefile"): run(ctx, ["../src/configure", "--prefix=" + self.path(ctx, "install")]) run(ctx, f"make -j{ctx.jobs}") def install(self, ctx: Context) -> None: os.makedirs("install/bin", exist_ok=True) shutil.copy("src/wrk", "install/bin") def is_fetched(self, ctx: Context) -> bool: return os.path.exists("src") def is_built(self, ctx: Context) -> bool: return os.path.exists("src/wrk") def is_installed(self, ctx: Context) -> bool: return os.path.exists("install/bin/wrk") def get_binary_path(self, ctx: Context) -> str: return self.path(ctx, "src", "wrk")
[docs]class Wrk2(Wrk): """ The wrk2 benchmark. :identifier: wrk2-<version> :param version: version to download """ name = "wrk2" gitrepo = "https://github.com/giltene/wrk2.git"