skywater-pdk icon indicating copy to clipboard operation
skywater-pdk copied to clipboard

liberty tests fail with python 3.11

Open proppy opened this issue 2 years ago • 0 comments

Expected Behavior

liberty tests pass

Actual Behavior

liberty tests fail with the following error:

**********************************************************************
File "$SRC_DIR/skywater-pdk/scripts/python-skywater-pdk/skywater_pdk/liberty.py", line 68, in __main__.TimingType
Failed example:
    (TimingType.leakage | TimingType.ccsnoise).names()
Expected:
    'basic, ccsnoise, leakage'
Got:
    'basic, leakage'
**********************************************************************
File "$SRC_DIR/skywater-pdk/scripts/python-skywater-pdk/skywater_pdk/liberty.py", line 71, in __main__.TimingType
Failed example:
    TimingType.ccsnoise.names()
Expected:
    'basic, ccsnoise'
Got:
    'basic'
**********************************************************************
1 items had failures:
   2 of  10 in __main__.TimingType
***Test Failed*** 2 failures.

Steps to Reproduce the Problem

  1. python3.11 -m skywater_pdk.liberty -v

Specifications

  • Version: HEAD
  • Platform: python 3.11

This is due as a behavioral change in python 3.11 for Flag/IntFlag iteration, see https://github.com/python/cpython/issues/99304.

Now Python 3.11 only returns canonical flags during iteration as documented here: https://docs.python.org/3/howto/enum.html#flag-and-intflag-minutia:~:text=only%20canonical%20flags%20are%20returned%20during%20iteration%3A

__members__ needs to be used to also get aliases.

proppy avatar Jun 02 '23 07:06 proppy