• Binbin's avatar
    Fix timing issue in sub-second expires test (#9821) · 698b5774
    Binbin authored
    
    
    The `PEXPIRE/PSETEX/PEXPIREAT can set sub-second expires` test is
    a very time sensitive test, it used to occasionally fail on MacOS.
    
    It will perform there internal tests in a loop, as long as one
    fails, it will try to excute again in the next loop.
    
    oranagra suggested that we can split it into three individual tests,
    so that if one fails, we do not need to retry the others. And maybe
    it will increase the chances of success dramatically.
    
    Each is executed 500 times, and the number of retries is collected:
    ```
    PSETEX, total: 500, sum: 745, min: 0, max: 13, avg: 1.49
    
    PEXPIRE, total: 500, sum: 575, min: 0, max: 16, avg: 1.15
    
    PEXPIREAT, total: 500, sum: 0, min: 0, max: 0, avg: 0.0
    
    ALL(old_way), total: 500, sum: 8090, min: 0, max: 138, avg: 16.18
    ```
    
    And we can see the threshold is very low.
    Splitting the test also makes the code better to maintain.
    Co-authored-by: default avatarOran Agra <oran@redislabs.com>
    698b5774
expire.tcl 24.6 KB