12to11/tests
hujianwei 0bdc502068 Fix text input bugs with grabbed popups and bugs found by new tests
* 12to11-test.xml (test_manager) <error>: Add
invalid_user_time.
<get_serial, serial> New request and event.
(test_seat_controller) <set_last_user_time>: New request.

* compositor.h (struct _TextInputFuncs): Make `filter_input'
return keycode.
* data_device.c (DestroyReference): Check if reference device is
detached before unlinking reference.
* seat.c (LookupKeysym): Delete function.
(DispatchKey): Use keycodes instead.
(XLSeatExplicitlyGrabSurface): Avoid using owner-events keyboard
grab.

* select.c (struct _SelectionOwnerInfo, HandleSelectionRequest):
Allow CurrentTime in selection requests.  Compensate for
wraparound as well.
(OwnSelection, DisownSelection): Use Timestamp instead of Time.
* test.c (GetSerial): New function.
(test_manager_impl): Add new function.
* test_seat.c (SetLastUserTime): New function.
(seat_controller_impl): Add new function.
* tests/Imakefile (LOCAL_LIBRARIES): Remove GBM and DRM.
(SRCS10, OBJS10, SRCS11, OBJS11): New variables.
(dmabuf_test): Only link this program with GBM and DRM.
(PROGRAMS): Add select_test, select_helper.
(select_test, select_helper): New programs.

* tests/README: Document that select_test needs to be run under
vfb.
* tests/run_tests.sh: Add TODO note.
* tests/svnignore.txt: Add select_test and select_helper.
* tests/test_harness.c (handle_test_manager_serial): New
function.
(test_manager_listener): Add new function.
(open_test_display): Clear display->seat.
(test_get_serial): New function.

* tests/test_harness.h (struct test_display): New function
`serial'.

* text_input.c (CreateIC): Improve debugging code.
(CalculateKeycodeForEvent): Move earlier.
(FilterInputCallback): Handle keycodes here as well.
(XLTextInputDispatchCoreEvent): Add more debugging code.

* xdata.c (SelectSelectionInput): Obtain server time here.
(XLOwnDragSelection, NoteLocalSelectionFooter): Convert times to
Timestamp.
2022-11-12 03:51:21 +00:00
..
argb8888_implicit.dump Check in new files for dma-buf tests 2022-11-08 11:50:09 +00:00
argb8888_linear.dump Check in new files for dma-buf tests 2022-11-08 11:50:09 +00:00
basic_damage.png Check in new test related files 2022-11-04 05:26:16 +00:00
basic_test_card.png Check in tests 2022-11-04 02:41:19 +00:00
big.png Check in files for new subsurface grow/shrink tests 2022-11-05 05:57:25 +00:00
blue.png Check in tests 2022-11-04 02:41:19 +00:00
buffer_scale_1_1.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_1_2.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_1_2_1.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_1_2_2.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_2_1.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_2_2.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_2_2_1.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
buffer_scale_2_2_2.dump Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
cow_transparent.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
damage_test.c Add test for buffer transforms 2022-11-04 07:22:57 +00:00
damage_test_1.dump Check in new test related files 2022-11-04 05:26:16 +00:00
damage_test_2.dump Check in new test related files 2022-11-04 05:26:16 +00:00
dmabuf_test.c Update dmabuf and seat tests 2022-11-09 02:12:28 +00:00
gradient.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
Imakefile Fix text input bugs with grabbed popups and bugs found by new tests 2022-11-12 03:51:21 +00:00
imgview.c Check in new viewporter test files 2022-11-04 12:21:39 +00:00
README Fix text input bugs with grabbed popups and bugs found by new tests 2022-11-12 03:51:21 +00:00
run_tests.sh Fix text input bugs with grabbed popups and bugs found by new tests 2022-11-12 03:51:21 +00:00
scale.png Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
scale_damage.png Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
scale_test.c Check in files for buffer scale tests 2022-11-05 08:12:29 +00:00
seat_child.png * tests/seat_child.png: New file. 2022-11-09 02:09:53 +00:00
seat_test.c Add scroll valuator tests 2022-11-10 06:14:51 +00:00
seat_test.png Check in new files for seat tests 2022-11-07 06:05:08 +00:00
select_helper.c Check in new files for selection tests 2022-11-12 03:42:39 +00:00
select_test.c Check in new files for selection tests 2022-11-12 03:42:39 +00:00
simple_test.c Add new damage test and unify buffer release code in xdg_surface 2022-11-04 05:36:10 +00:00
simple_test.dump Check in tests 2022-11-04 02:41:19 +00:00
small.png Check in files for new subsurface grow/shrink tests 2022-11-05 05:57:25 +00:00
subsurface_1.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_1_complex.png Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
subsurface_1_damaged.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_base.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_damage.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test.c Add subsurface scaling and damage simplification tests 2022-11-07 12:01:52 +00:00
subsurface_test_1.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_2.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_3.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_4.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_5.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_6.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_7.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_8.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_9.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_10.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_11.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_12.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_13.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_14.dump Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_test_15.dump Check in files for new subsurface grow/shrink tests 2022-11-05 05:57:25 +00:00
subsurface_test_16.dump Check in files for new subsurface grow/shrink tests 2022-11-05 05:57:25 +00:00
subsurface_test_17.dump Check in files for new subsurface grow/shrink tests 2022-11-05 05:57:25 +00:00
subsurface_test_18.dump Check in new subsurface test dumps 2022-11-05 10:44:11 +00:00
subsurface_test_19.dump Check in new subsurface test dumps 2022-11-05 10:44:11 +00:00
subsurface_test_20.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_21.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_22.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_23.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_24.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_25.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_26.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_27.dump Check in new subsurface test reference data 2022-11-06 03:22:18 +00:00
subsurface_test_28.dump Check in new test dumps 2022-11-06 05:10:28 +00:00
subsurface_test_29.dump Check in new test dumps 2022-11-06 05:10:28 +00:00
subsurface_test_30.dump Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
subsurface_test_31.dump Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
subsurface_test_32.dump Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
subsurface_test_33.dump Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
subsurface_test_34.dump Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
subsurface_transparency.png Check in files for subsurface tests 2022-11-05 03:40:54 +00:00
subsurface_transparency_damage.png Check in new subsurface test reference data 2022-11-07 12:02:30 +00:00
svnignore.txt Fix text input bugs with grabbed popups and bugs found by new tests 2022-11-12 03:51:21 +00:00
test_harness.c Fix text input bugs with grabbed popups and bugs found by new tests 2022-11-12 03:51:21 +00:00
test_harness.h Fix text input bugs with grabbed popups and bugs found by new tests 2022-11-12 03:51:21 +00:00
tiny.png * tests/tiny.png: New file. 2022-11-05 03:41:20 +00:00
transform_test.c Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_90_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_90_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_180_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_180_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_270_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_270_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_90_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_90_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_180_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_180_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_270_1.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
transform_test_flipped_270_2.dump Check in new files for transform tests 2022-11-04 07:19:25 +00:00
viewport_dest_200_150_1.dump Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewport_dest_200_150_2.dump Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewport_src_50_50_200_200_1.dump Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewport_src_50_50_200_200_2.dump Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewport_src_50_50_200_200_dest_50_75_1.dump Add files for viewporter shrink test 2022-11-04 12:46:45 +00:00
viewport_src_50_50_200_200_dest_50_75_2.dump Add files for viewporter shrink test 2022-11-04 12:46:45 +00:00
viewport_src_50_50_200_200_dest_500_500_1.dump Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewport_src_50_50_200_200_dest_500_500_2.dump Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewport_src_250_50_200_200_dest_50_75_90cw_1.dump Check in files for new test 2022-11-05 06:24:22 +00:00
viewport_src_250_50_200_200_dest_50_75_90cw_2.dump Check in files for new test 2022-11-05 06:24:22 +00:00
viewporter_test.c Add viewporter tests with transforms 2022-11-05 06:25:41 +00:00
viewporter_test.png Check in new viewporter test files 2022-11-04 12:21:39 +00:00
viewporter_test_1.png Check in new viewporter test files 2022-11-04 12:21:39 +00:00

This directory holds some work-in-progress code for testing the
protocol translator.  The current test suite is nowhere near
comprehensive.

Each test must be individually run on a system with an a8r8g8b8
visual, GLOBAL_SCALE and OUTPUT_SCALE set to 1.  They also rely on
reference data; if some legitimate changes are made that affect test
results, then the tests should be run with TEST_WRITE_REFERENCE=1,
which will make the test binaries write out reference data to disk.

When tests are being run, the tester must be very careful to not
interfere with the test operation by moving or resizing the test
window.  A compositing manager should be running along with the test.

These tests are supposed to test the functionality of the protocol
translator by connecting to a running instance and validating the
results of various high-level requests.  In modern parlance, they
would be ``integration tests''.

Most likely, you do not want to run these tests manually, as the
`run_tests.sh' script does all the setup for you.

Please note that the EGL renderer currently does not pass some
graphics tests, which is expected behavior, and that `select_test'
must be run with no clipboard manager (or any other clients, for that
matter) running.