Tk Source Code

Ticket Change Details
Login
Overview

Artifact ID: 9f776f40729fe9b6fc548a7dcb8776957fb7daf310551ea9a55391e5c29c2d64
Ticket: 1475156fffffffffffffffffffffffffffffffff
Numerous select.test failures on macOS
User & Date: fvogel 2018-07-07 11:21:26
Changes

  1. assignee changed to: "fvogel"
  2. icomment:
    On macOS, the remaining failing select-* tests are select-3.7, 4.4, 5.9, 5.10, 9.1, 9.2, 9.3, 9.4, 9.5, 10.2, 10.4, 10.5, 10.6, 11.1, 12.1, 12.2, 12.3, 12.4, 12.5, 13.1
    
    All these tests are currently constrained to "unix" because they exercise X selection ownership changes from one application to another, which in my understanding is a feature specific to this platform. For that purpose these tests make use of the background process procs in constraint.tcl (namely setupbg, cleanupbg...).
    
    Now, since the constraint is "unix", these tests are also exercised on macOS aqua. Apparently they fail because the exercised features do not exist on this platform (they neither do on Windows). Another possibility could be that the bg procs in constraint.tcl would not work on aqua, however I don't see why this would be the case.
    
    My conclusion is therefore that these tests should not be constrained to "unix" but rather to "x11", so that they would be exercised on X11 platforms only (and not on unix aqua).
    
    Regarding the other tests in select.test that are constrained by "unix":
    
      * select-4.6, 5.13 and 5.14 (skipped in my setup because of non-satisfied "altDisplay" constraint) also use the bg procs and are constrained by "unix". These needs rather to be constrained by "x11" for the reasons stated above.
    
      * select-8.1 does curently not fail on macOS (constrained by "unix" and using the bg procs). It relies on the return value of the dobg procedure to be an empty string. As it is written, it will succeed on all platforms even if unconstrained. However, what we really want to check is that when claiming the CLIPBOARD selection from the bg proc (in the . window from another application), the -command script gets called, that is the .f1 window gets destroyed in the interpreter from the test and there is no crash because of this. The test needs to check for "winfo children ." to be empty, and be constrained to "x11".
    
      * select-10.1 (constrained by "unix") does not fail on macOS, but I guess it would if it was written to use the bg procs. It does not use them because of [https://core.tcl.tk/tk/info/cda2e66757f87625|a comment there from Don Porter] stating using the bg procs there would cause a mysterious broken pipe. I'll constraint this test to x11.
    
      * select-10.3 (constrained by "unix") does not fail on macOS despite it uses the bg procs. This is because it exercises an error case that happens to be the same on Linux and macOS. On Windows it would give the same error result, therefore this test could be unconstrained. For consistency however, and because that was the original intent I think, I'll constrain it to x11.
    
    I have committed a patch with all these changes, see [90f8e7bc9d].
    
  3. login: "fvogel"
  4. mimetype: "text/x-fossil-wiki"
  5. resolution changed to: "Fixed"
  6. title changed to: "Numerous select.test failures on macOS"