|  | # Build rules to test genrules under bazel. | 
|  | # TODO(bazel-team): Convert to unit test, or remove when the temporary Docker | 
|  | # override flags are removed. | 
|  |  | 
|  | package(default_visibility = ["//visibility:public"]) | 
|  |  | 
|  | filegroup( | 
|  | name = "srcs", | 
|  | srcs = glob(["**"]), | 
|  | visibility = ["//src:__pkg__"], | 
|  | ) | 
|  |  | 
|  | # A rule that can help check if Docker container is enabled. | 
|  | genrule( | 
|  | name = "hostname", | 
|  | outs = ["hostname.txt"], | 
|  | cmd = "hostname > $@", | 
|  | ) | 
|  |  | 
|  | # A rule to help check if the right uid is set. | 
|  | genrule( | 
|  | name = "uid", | 
|  | outs = ["uid.txt"], | 
|  | cmd = "id -u > $@; (whoami >> $@ || echo 'No whoami!')", | 
|  | ) | 
|  |  | 
|  | # A genrule to check if output/stdout/strerr are piped correctly. | 
|  | genrule( | 
|  | name = "stdout-stderr", | 
|  | outs = ["output.txt"], | 
|  | cmd = "echo 'To file.' > $@; echo 'to stdout.'; (>&2 echo 'to stderr.');", | 
|  | ) | 
|  |  | 
|  | # A use case that fails if it's built in a Docker container running under root. | 
|  | genrule( | 
|  | name = "mine", | 
|  | outs = ["mine.txt"], | 
|  | cmd = "echo 'this is mine!' > $@; chmod 700 $@;", | 
|  | ) | 
|  |  | 
|  | # A use case that fails if it's built in a Docker container running under root. | 
|  | genrule( | 
|  | name = "vars", | 
|  | outs = ["vars.txt"], | 
|  | cmd = "set > $@", | 
|  | ) |