tree: 7234d8e94c4356b1b4f81fd4359adfc97fc0f646 [path history] [tgz]
  1. __init__.py
  2. action_context.py
  3. actions.py
  4. actions_unittest.py
  5. cfm_test.py
  6. configurable_cfm_test.py
  7. configurable_cfm_test_unittest.py
  8. configuration.py
  9. dsl.py
  10. README.md
  11. scenario.py
server/cros/cfm/configurable_test/README.md

Configurable CfM Tests

The Configurable CfM Tests modules allow creating test scenarios using an API that clearly describes the steps executed. A sample of a configurable CfM test is:

CfmTest(
    scenario=Scenario(
        CreateMeeting(),
        RepeatTimes(5, Scenario(
            MuteMicrophone(),
            UnmuteMicrophone()
        )),
        LeaveMeeting(),
        AssertUsbDevices(ATRUS),
        AssertFileDoesNotContain('/var/log/messages', ['FATAL ERROR'])
    ),
    configuration=Configuration(
        run_test_only = False
    )
)

This test creates a meeting, mutes and unmutes the microphone five times and leaves the meeting. It then verifies that an ATRUS device is visible and that the log file /var/log/messages does not contains FATAL ERROR.

A configurable test can be setup in a control file so that third parties that have no easy way to modify other source code can create and modify such tests.

For the test to be executed properly it has to subclass autotest_lib.server.cros.cfm.configurable_test.configurable_cfm_tests.ConfigurableCfmTest.

Actions

Each step in a scenario is an Action. The available actions are listed in autotest_lib.server.cros.cfm.configurable_test.actions.

Configuration

Besides Actions, a test can be configured with configuration params that affect behavior outside of the actions. The available configuration flags are documented in autotest_lib.server.cros.cfm.configurable_test.configuration.

Samples

For complete samples see the Autotest enterprise_CFM_ConfigurableCfmTestSanity that we use to test the framework itself.