1# Copyright 2018 The Bazel Authors. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15"""Bazel lib that provides on-the-fly data generation helpers for testing.""" 16 17def _create( 18 name = None, 19 contents = "", 20 executable = False): 21 target_name = "gen_" + name.replace(".", "_") 22 native.genrule( 23 name = target_name, 24 cmd = """ 25cat > $@ <<MAKE_FILE_EOM 26%s 27MAKE_FILE_EOM 28""" % contents, 29 outs = [name], 30 executable = executable, 31 ) 32 return name 33 34def _create_mock_file(path, is_directory = False): 35 return struct( 36 path = path, 37 dirname = path.rpartition("/")[0], 38 is_directory = is_directory, 39 ) 40 41file = struct( 42 create = _create, 43 create_mock_file = _create_mock_file, 44) 45