def t_test(name, srcs=None, deps=None, extra_args=None):
    tname = '{}.t'.format(name)
    actual_deps=['@/watchman/thirdparty:tap']
    if deps:
        actual_deps.extend(deps)

    args=['$(location :{})'.format(tname),]

    if extra_args:
        args.extend(extra_args)

    cpp_binary(
        name=tname,
        srcs=srcs,
        deps=actual_deps,
    )
    buck_sh_test(
        name=name,
        deps=[':{}'.format(tname)],
        test='run.sh',
        args=args
    )

t_test(
    name='art',
    srcs=['art_test.c', 'log_stub.c'],
    deps=[
      '@/watchman:testsupport',
    ],
)

t_test(
    name='argv',
    srcs=['argv.c', 'log_stub.c'],
    deps=[
      '@/watchman/thirdparty/jansson:jansson',
      '@/watchman:testsupport',
    ],
)

t_test(
    name='ignore',
    srcs=['ignore_test.c', 'log_stub.c'],
    deps=[
      '@/watchman:testsupport',
    ],
)

t_test(
    name='pending',
    srcs=['pending_test.c', 'log_stub.c'],
    deps=[
      '@/watchman:testsupport',
    ],
)

t_test(
    name='log',
    srcs=['log.c'],
    deps=[
      '@/watchman:testsupport',
    ],
)

t_test(
    name='bser',
    srcs=['bser.c', 'log_stub.c'],
    deps=[
      '@/watchman:testsupport',
    ],
)

t_test(
    name='wildmatch',
    srcs=['wildmatch_test.c', 'log_stub.c'],
    deps=[
      '@/watchman:testsupport',
      '@/watchman/thirdparty/wildmatch:wildmatch',
    ],
)
