# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

DEPS = [
    "fuchsia/daemonizer",
    "recipe_engine/path",
    "recipe_engine/platform",
    "recipe_engine/step",
]


def RunSteps(api):
    with api.daemonizer.daemonize(["/path/to/tool"]):
        api.step("echo", ["echo", "test"])

    pidfile = api.path["tmp_base"].join("tool.pid")
    api.daemonizer.start(pidfile, ["/path/to/tool"])
    api.daemonizer.restart(pidfile, ["/path/to/tool"])
    api.daemonizer.stop(pidfile)


def GenTests(api):
    yield api.test("basic") + api.platform.name("linux")
