Skip to content

Can't run WPT test suite with servodriver #34523

@wusyong

Description

@wusyong

Describe the bug:
Some WPT tests require testdriver.js, but it seems servodriver isn't working.
There are errors when we called its python scripts.

To Reproduce:

Choose a test requries testdervier.js and run it with --product servodriver.

./mach test-wpt --product servodriver tests/wpt/tests/pointerevents/pointerevent_click_during_capture.html 

And you should see similar error like this:

No build type specified so assuming `--dev`.
Running WPT tests with /servo/target/debug/servo
 0:01.07 wptserve INFO Create socket on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
 0:01.08 wptserve INFO Bind on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
 0:01.08 wptserve INFO Listen on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
 0:01.08 wptserve INFO Starting https server on https://127.0.0.1:8445
 0:01.09 wptserve INFO Starting https server on https://127.0.0.1:8444
 0:01.10 wptserve INFO Starting http2 server on https://127.0.0.1:9000
 0:01.15 wptserve INFO Starting http server on http://127.0.0.1:8002
 0:01.16 wptserve INFO Starting https server on https://127.0.0.1:8446
 0:01.17 wptserve INFO Starting http server on http://127.0.0.1:8000
 0:01.17 wptserve INFO Create socket on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
 0:01.17 wptserve INFO Bind on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
 0:01.17 wptserve INFO Listen on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
 0:01.18 wptserve INFO Starting http server on http://127.0.0.1:8001
 0:01.19 wptserve INFO Starting http server on http://127.0.0.1:8003
 0:01.19 wptserve INFO Starting https server on https://127.0.0.1:8443
 0:01.41 SUITE_START: web-platform-test - running 2 tests
 0:01.41 INFO Using 2 child processes
 0:01.41 ERROR Failure during init:
Traceback (most recent call last):
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 261, in init
    self.browser.start(group_metadata=group_metadata, **self.browser_settings)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py", line 142, in start
    processOutputLine=[self.on_output],
                       ^^^^^^^^^^^^^^
AttributeError: 'ServoWebDriverBrowser' object has no attribute 'on_output'

 0:01.41 ERROR Failure during init:
Traceback (most recent call last):
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 261, in init
    self.browser.start(group_metadata=group_metadata, **self.browser_settings)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py", line 142, in start
    processOutputLine=[self.on_output],
                       ^^^^^^^^^^^^^^
AttributeError: 'ServoWebDriverBrowser' object has no attribute 'on_output'

 0:01.41 CRITICAL Uncaught exception in TestRunnerManager.run:
Traceback (most recent call last):
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 450, in run_loop
    new_state = f()
                ^^^
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 618, in init
    return self.init_failed()
           ^^^^^^^^^^^^^^^^^^
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 671, in init_failed
    self.stop_runner(force=True)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 961, in stop_runner
    self.browser.stop(force=True)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 290, in stop
    self.browser.stop(force=force)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py", line 162, in stop
    self.output_handler.after_process_stop()
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py", line 276, in after_process_stop
    self.start()
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py", line 262, in start
    assert self.state == OutputHandlerState.AFTER_PROCESS_START
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

 0:01.42 CRITICAL Uncaught exception in TestRunnerManager.run:
Traceback (most recent call last):
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 450, in run_loop
    new_state = f()
                ^^^
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 618, in init
    return self.init_failed()
           ^^^^^^^^^^^^^^^^^^
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 671, in init_failed
    self.stop_runner(force=True)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 961, in stop_runner
    self.browser.stop(force=True)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py", line 290, in stop
    self.browser.stop(force=force)
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py", line 162, in stop
    self.output_handler.after_process_stop()
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py", line 276, in after_process_stop
    self.start()
  File "/home/wusyong/Desktop/servo/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py", line 262, in start
    assert self.state == OutputHandlerState.AFTER_PROCESS_START
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

Platform:
All platforms are affected.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions