def METHOD_NAME(rule_runner: RuleRunner) -> None:
    rule_runner.write_files(
        {
            # Two Shell files belonging to the same target. We should use two file addresses.
            "a/f1.sh": "",
            "a/f2.sh": "",
            "a/BUILD": "shell_sources()",
            # >1 target owns the same file, so it's ambiguous.
            "b/f.sh": "",
            "b/BUILD": "shell_sources(name='t1')\nshell_sources(name='t2')",
        }
    )
    result = rule_runner.request(ShellMapping, [])
    assert result == ShellMapping(
        mapping=FrozenDict(
            {
                "a/f1.sh": Address("a", relative_file_path="f1.sh"),
                "a/f2.sh": Address("a", relative_file_path="f2.sh"),
            }
        ),
        ambiguous_modules=FrozenDict(
            {
                "b/f.sh": (
                    Address("b", target_name="t1", relative_file_path="f.sh"),
                    Address("b", target_name="t2", relative_file_path="f.sh"),
                )
            }
        ),
    )