load(":m4_test.bzl", "m4_test") genrule( name = "m4_help", testonly = True, outs = ["m4_help.txt"], cmd = "$(execpath //:m4) --help > $@", cmd_bat = "$(execpath //:m4) --help > $@", tools = ["//:m4"], ) # Adapted from checks/028.define m4_test( name = "define_test", expected = ["Hello world."], input = [ "define(`foo', `Hello world.')dnl", "foo", ], ) # Adapted from checks/190.eval m4_test( name = "eval_test", expected = [ "5", "14", "21", ], input = [ "eval(2 + 3)", "eval(10 * 2 - 6)", "eval(3 * (2 + 5))", ], ) # Adapted from checks/066.ifdef m4_test( name = "ifdef_test", expected = [ "foo is not defined", "foo is defined", ], input = [ "ifdef(`foo', ``foo' is defined', ``foo' is not defined')", "define(`foo', `')dnl", "ifdef(`foo', ``foo' is defined', ``foo' is not defined')", ], ) # Adapted from checks/164.len m4_test( name = "len_test", expected = [ "0", "6", ], input = [ "len()", "len(`abcdef')", ], ) # Adapted from checks/026.macro_expa -- tests -D command-line defines m4_test( name = "cmdline_define_test", expected = ["Hello"], input = ["foo"], m4_flags = [ "-Dbar=Hello", "-Dfoo=bar", ], ) # Exercises gnulib regex via the regexp builtin m4_test( name = "regexp_test", expected = ["1"], input = ["regexp(`Hello world', `[a-z]')"], ) # Exercises gnulib regex via the patsubst builtin m4_test( name = "patsubst_test", expected = ["h*ll*"], input = ["patsubst(`hello', `[eo]', `*')"], )