1*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//rules:diff_test.bzl", "diff_test") 2*7594170eSAndroid Build Coastguard Worker 3*7594170eSAndroid Build Coastguard Workerdef image_contents_test( 4*7594170eSAndroid Build Coastguard Worker name, 5*7594170eSAndroid Build Coastguard Worker image, 6*7594170eSAndroid Build Coastguard Worker path, 7*7594170eSAndroid Build Coastguard Worker expected, 8*7594170eSAndroid Build Coastguard Worker target_compatible_with = None, 9*7594170eSAndroid Build Coastguard Worker tags = []): 10*7594170eSAndroid Build Coastguard Worker """A test that extracts a file from a disk image file, and then asserts that it's identical to some other file.""" 11*7594170eSAndroid Build Coastguard Worker 12*7594170eSAndroid Build Coastguard Worker extracted_path = name + path.replace("/", "_") + "_extracted.bin" 13*7594170eSAndroid Build Coastguard Worker 14*7594170eSAndroid Build Coastguard Worker native.genrule( 15*7594170eSAndroid Build Coastguard Worker name = name + "_extracted", 16*7594170eSAndroid Build Coastguard Worker tools = [ 17*7594170eSAndroid Build Coastguard Worker "//external/e2fsprogs/debugfs:debugfs", 18*7594170eSAndroid Build Coastguard Worker ], 19*7594170eSAndroid Build Coastguard Worker srcs = [image], 20*7594170eSAndroid Build Coastguard Worker outs = [extracted_path], 21*7594170eSAndroid Build Coastguard Worker cmd = "$(location //external/e2fsprogs/debugfs:debugfs) -R 'dump " + path + " $@' $<", 22*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 23*7594170eSAndroid Build Coastguard Worker ) 24*7594170eSAndroid Build Coastguard Worker 25*7594170eSAndroid Build Coastguard Worker diff_test( 26*7594170eSAndroid Build Coastguard Worker name = name, 27*7594170eSAndroid Build Coastguard Worker file1 = extracted_path, 28*7594170eSAndroid Build Coastguard Worker file2 = expected, 29*7594170eSAndroid Build Coastguard Worker target_compatible_with = target_compatible_with, 30*7594170eSAndroid Build Coastguard Worker tags = tags, 31*7594170eSAndroid Build Coastguard Worker ) 32