Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-7329

Add hook capability to Python testing

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.9.0-rc1, 4.4.7, 5.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None

      There's a powerful capability that we could add to our test suite to create hooks, or special functions, that can be called when certain things happen.  To start, we might think about hooks that are called when a connection, session, cursor is created, and maybe every time that session.create is called.  So, for example, imagine that we could dynamically convert a test so that every time we do:

         session.create('table:foo')

      we do the boilerplate stuff to create a tiered object ('tiered:foo') instead, with whatever extra calls to create, etc.  And have the lowest tier use an object backed by our 'local_store' simulated cloud.  Then we could take a bunch of simple existing tests of normal operations, like test_base01.py, etc. and we'd instantly have a bunch of tests for tiering.

      With this in place, we could for example, run big parts of the test suite with any of the 'simple' tables created tiered to run in the cloud (using the 'local_storage' cloud simulation).  Tests that do things like 'copying a directory for backup' would probably not work, also salvage, verify tests.  If we enabled everything to run and did a survey of what was broken, we'd get a good idea of things that 1) should have worked but are broken 2) need to be addressed in a future 3) are known never to work.  That would be very informative and would be a good driver for targeting development effort.  Also, when we consider having everything "run out of the cloud", this would be a good way to test the limits of that theory.

      There are more details about this idea in the WiredTiger Tiered Storage "Long Read" document.  And though we're doing this as part of the tiered storage project, it may have usefulness for other projects.

       

            Assignee:
            donald.anderson@mongodb.com Donald Anderson
            Reporter:
            donald.anderson@mongodb.com Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: