Skip to content
Snippets Groups Projects
  • Gregory Szorc's avatar
    cbc4425e81b5
    tests: conditionalize tests based on presence of revlogs for files · cbc4425e81b5
    Gregory Szorc authored
    ~85 tests don't like our non-revlog file store for various reasons.
    
    This commit introduces hghave functionality for declaring and querying
    repository features. By default, we assume repositories have
    revlog-based file storage. But if the HGREPOFEATURES environment
    variable is set, we can override the default set of repository
    features. If you run the test harness with our simplestorerepo
    extension and an environment variable set to the proper value, you
    can override the hghave defaults to agree with simplestorerepo's
    version of reality.
    
    Various tests have been modified so behavior dependent on revlog-based
    file storage is marked as such.
    
    This fixes a handful of test failures with our custom file storage
    extension. But dozens remain. The point of this commit is to demonstrate
    how tests will need to be modified to account for custom storage
    implementations.
    
    TBH, I'm not convinced hghave is the proper layer for repository
    feature detection. I /think/ we'll eventually want something in
    run-tests.py itself. But that would require inventing a new primitive
    in the test harness. This is all very alpha at the moment. So I think
    hghave is an acceptable place to hang this feature detection. I think
    the right time to be thinking about integrating this into run-tests.py
    is *after* we have a stable alternate storage implementation in core.
    For now, let's try to make progress towards the idea of an alternate
    storage backend.
    
    Differential Revision: https://phab.mercurial-scm.org/D3030
    cbc4425e81b5
    History
    tests: conditionalize tests based on presence of revlogs for files
    Gregory Szorc authored
    ~85 tests don't like our non-revlog file store for various reasons.
    
    This commit introduces hghave functionality for declaring and querying
    repository features. By default, we assume repositories have
    revlog-based file storage. But if the HGREPOFEATURES environment
    variable is set, we can override the default set of repository
    features. If you run the test harness with our simplestorerepo
    extension and an environment variable set to the proper value, you
    can override the hghave defaults to agree with simplestorerepo's
    version of reality.
    
    Various tests have been modified so behavior dependent on revlog-based
    file storage is marked as such.
    
    This fixes a handful of test failures with our custom file storage
    extension. But dozens remain. The point of this commit is to demonstrate
    how tests will need to be modified to account for custom storage
    implementations.
    
    TBH, I'm not convinced hghave is the proper layer for repository
    feature detection. I /think/ we'll eventually want something in
    run-tests.py itself. But that would require inventing a new primitive
    in the test harness. This is all very alpha at the moment. So I think
    hghave is an acceptable place to hang this feature detection. I think
    the right time to be thinking about integrating this into run-tests.py
    is *after* we have a stable alternate storage implementation in core.
    For now, let's try to make progress towards the idea of an alternate
    storage backend.
    
    Differential Revision: https://phab.mercurial-scm.org/D3030