"""Override diff_test behaviour to ignore carriage returns in order to test jq output on Windows. See https://github.com/stedolan/jq/issues/92. """ load("//lib:diff_test.bzl", _diff_test = "diff_test") def diff_test(name, file1, file2): """Perform a diff_test ignoring carriage returns Args: name: name of the test rule file1: first file to compare file2: second file to compare """ test_files = [] for i, file in enumerate([file1, file2], start = 1): if file[0] == ":": target = file[1:] else: target = file stripped_file = "%s_file%d_stripped" % (name, i) native.genrule( name = "%s_file%d" % (name, i), srcs = [file], outs = [stripped_file], cmd = "cat $(execpath :{target}) | sed \"s#\\r##\" > $@".format(target = target), ) test_files.append(stripped_file) _diff_test( name = name, file1 = test_files[0], file2 = test_files[1], )