xp-framework/rfc

Timeouts for unit tests

thekid opened this issue · 2 comments

Scope of Change

A timeout facility will be added to unit tests. When a test runs longer
than the time span defined by the timeout facility, the test will be
marked as timeouted.

Rationale

Integration tests that test certain system parts such as an LDAP server
might want to test not only that accessing the server works but also
that a query succeeds in a certain time.

Functionality

A test can be annotated with the @limit annotation as follows:

<?php
  class LdapIntegrationTest extends TestCase {

    #[@test, @limit(time= 1.0)]
    function lookup() {
      // ...
    }
  }
?>

Test failure message:

<?php
  util.profiling.unittest.AssertionFailedError (Timeout) { 
    expected: ["0.100"] but was: ["0.201"] 
  }
?>

Security considerations

n/a

Speed impact

Minimal overhead for checking the existance of the @limit annotation.

Dependencies

n/a

Related documents

Maybe for timeout we should not have TestFailure as result but
TestTimeout to be able to distinguish?

friebe, Tue, 20 Jun 2006 16:27:39 +0200

Based on discussion with the PHP-Dev team and Frank Kleine of
Schlund+Partner, we decided to name the annotation @limit which
is a more generic name for this and may be enhanced in the future
to support @limit(memory= ...) etc.

friebe, Mon, 26 Jun 2006 16:23:00 +0200