Skip to content
  • Zachary Turner's avatar
    [lit] Improve tool substitution in lit. · 96b04b68
    Zachary Turner authored
    This addresses two sources of inconsistency in test configuration
    files.
    
    1. Substitution boundaries.  Previously you would specify a
       substitution, such as 'lli', and then additionally a set
       of characters that should fail to match before and after
       the tool.  This was used, for example, so that matches that
       are parts of full paths would not be replaced.  But not all
       tools did this, and those that did would often re-invent
       the set of characters themselves, leading to inconsistency.
       Now, every tool substitution defaults to using a sane set
       of reasonable defaults and you have to explicitly opt out
       of it.  This actually fixed a few latent bugs that were
       never being surfaced, but only on accident.
    
    2. There was no standard way for the system to decide how to
       locate a tool.  Sometimes you have an explicit path, sometimes
       we would search for it and build up a path ourselves, and
       sometimes we would build up a full command line.  Furthermore,
       there was no standardized way to handle missing tools.  Do we
       warn, fail, ignore, etc?  All of this is now encapsulated in
       the ToolSubst class.  You either specify an exact command to
       run, or an instance of FindTool('<tool-name>') and everything
       else just works.  Furthermore, you can specify an action to
       take if the tool cannot be resolved.
    
    Differential Revision: https://reviews.llvm.org/D38565
    
    llvm-svn: 315085
    96b04b68
Loading