cocotb 1.9.2__cp37-cp37m-win_amd64.whl → 2.0.0rc2__cp37-cp37m-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cocotb might be problematic. Click here for more details.

Files changed (157) hide show
  1. cocotb/_ANSI.py +65 -0
  2. cocotb/__init__.py +81 -327
  3. cocotb/_base_triggers.py +515 -0
  4. cocotb/_bridge.py +186 -0
  5. cocotb/_decorators.py +515 -0
  6. cocotb/_deprecation.py +3 -3
  7. cocotb/_exceptions.py +7 -0
  8. cocotb/_extended_awaitables.py +419 -0
  9. cocotb/_gpi_triggers.py +385 -0
  10. cocotb/_init.py +301 -0
  11. cocotb/_outcomes.py +54 -0
  12. cocotb/_profiling.py +46 -0
  13. cocotb/_py_compat.py +114 -29
  14. cocotb/_scheduler.py +448 -0
  15. cocotb/_test.py +248 -0
  16. cocotb/_test_factory.py +312 -0
  17. cocotb/_test_functions.py +42 -0
  18. cocotb/_typing.py +7 -0
  19. cocotb/_utils.py +274 -0
  20. cocotb/_version.py +3 -7
  21. cocotb/_xunit_reporter.py +66 -0
  22. cocotb/clock.py +353 -108
  23. cocotb/debug.py +24 -0
  24. cocotb/handle.py +1370 -793
  25. cocotb/libs/cocotb.dll +0 -0
  26. cocotb/libs/cocotb.exp +0 -0
  27. cocotb/libs/cocotb.lib +0 -0
  28. cocotb/libs/cocotbfli_modelsim.dll +0 -0
  29. cocotb/libs/cocotbfli_modelsim.exp +0 -0
  30. cocotb/libs/cocotbfli_modelsim.lib +0 -0
  31. cocotb/libs/cocotbutils.dll +0 -0
  32. cocotb/libs/cocotbutils.exp +0 -0
  33. cocotb/libs/cocotbutils.lib +0 -0
  34. cocotb/libs/cocotbvhpi_aldec.dll +0 -0
  35. cocotb/libs/cocotbvhpi_aldec.exp +0 -0
  36. cocotb/libs/cocotbvhpi_aldec.lib +0 -0
  37. cocotb/libs/cocotbvhpi_modelsim.dll +0 -0
  38. cocotb/libs/cocotbvhpi_modelsim.exp +0 -0
  39. cocotb/libs/cocotbvhpi_modelsim.lib +0 -0
  40. cocotb/libs/cocotbvpi_aldec.dll +0 -0
  41. cocotb/libs/cocotbvpi_aldec.exp +0 -0
  42. cocotb/libs/cocotbvpi_aldec.lib +0 -0
  43. cocotb/libs/cocotbvpi_ghdl.dll +0 -0
  44. cocotb/libs/cocotbvpi_ghdl.exp +0 -0
  45. cocotb/libs/cocotbvpi_ghdl.lib +0 -0
  46. cocotb/libs/cocotbvpi_icarus.exp +0 -0
  47. cocotb/libs/cocotbvpi_icarus.lib +0 -0
  48. cocotb/libs/cocotbvpi_icarus.vpl +0 -0
  49. cocotb/libs/cocotbvpi_modelsim.dll +0 -0
  50. cocotb/libs/cocotbvpi_modelsim.exp +0 -0
  51. cocotb/libs/cocotbvpi_modelsim.lib +0 -0
  52. cocotb/libs/embed.dll +0 -0
  53. cocotb/libs/embed.exp +0 -0
  54. cocotb/libs/embed.lib +0 -0
  55. cocotb/libs/gpi.dll +0 -0
  56. cocotb/libs/gpi.exp +0 -0
  57. cocotb/libs/gpi.lib +0 -0
  58. cocotb/libs/gpilog.dll +0 -0
  59. cocotb/libs/gpilog.exp +0 -0
  60. cocotb/libs/gpilog.lib +0 -0
  61. cocotb/libs/pygpilog.dll +0 -0
  62. cocotb/libs/pygpilog.exp +0 -0
  63. cocotb/libs/pygpilog.lib +0 -0
  64. cocotb/logging.py +424 -0
  65. cocotb/queue.py +103 -57
  66. cocotb/regression.py +680 -717
  67. cocotb/result.py +17 -188
  68. cocotb/share/def/aldec.exp +0 -0
  69. cocotb/share/def/aldec.lib +0 -0
  70. cocotb/share/def/ghdl.exp +0 -0
  71. cocotb/share/def/ghdl.lib +0 -0
  72. cocotb/share/def/icarus.exp +0 -0
  73. cocotb/share/def/icarus.lib +0 -0
  74. cocotb/share/def/modelsim.def +1 -0
  75. cocotb/share/def/modelsim.exp +0 -0
  76. cocotb/share/def/modelsim.lib +0 -0
  77. cocotb/share/include/cocotb_utils.h +9 -32
  78. cocotb/share/include/embed.h +7 -30
  79. cocotb/share/include/gpi.h +331 -137
  80. cocotb/share/include/gpi_logging.h +221 -142
  81. cocotb/share/include/py_gpi_logging.h +8 -5
  82. cocotb/share/include/vpi_user_ext.h +4 -26
  83. cocotb/share/lib/verilator/verilator.cpp +80 -67
  84. cocotb/simtime.py +230 -0
  85. cocotb/simulator.cp37-win_amd64.exp +0 -0
  86. cocotb/simulator.cp37-win_amd64.lib +0 -0
  87. cocotb/simulator.cp37-win_amd64.pyd +0 -0
  88. cocotb/task.py +478 -213
  89. cocotb/triggers.py +55 -1092
  90. cocotb/types/__init__.py +28 -47
  91. cocotb/types/_abstract_array.py +151 -0
  92. cocotb/types/_array.py +295 -0
  93. cocotb/types/_indexing.py +17 -0
  94. cocotb/types/_logic.py +333 -0
  95. cocotb/types/_logic_array.py +868 -0
  96. cocotb/types/{range.py → _range.py} +47 -48
  97. cocotb/types/_resolve.py +76 -0
  98. cocotb/utils.py +58 -646
  99. {cocotb-1.9.2.dist-info → cocotb-2.0.0rc2.dist-info}/LICENSE +1 -0
  100. cocotb-2.0.0rc2.dist-info/METADATA +46 -0
  101. cocotb-2.0.0rc2.dist-info/RECORD +142 -0
  102. cocotb-2.0.0rc2.dist-info/entry_points.txt +2 -0
  103. {cocotb-1.9.2.dist-info → cocotb-2.0.0rc2.dist-info}/top_level.txt +1 -0
  104. cocotb_tools/_coverage.py +33 -0
  105. cocotb_tools/_vendor/__init__.py +3 -0
  106. cocotb_tools/check_results.py +65 -0
  107. cocotb_tools/combine_results.py +152 -0
  108. cocotb_tools/config.py +241 -0
  109. {cocotb → cocotb_tools}/ipython_support.py +29 -22
  110. cocotb_tools/makefiles/Makefile.deprecations +27 -0
  111. {cocotb/share → cocotb_tools}/makefiles/Makefile.inc +77 -55
  112. {cocotb/share → cocotb_tools}/makefiles/Makefile.sim +16 -33
  113. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.activehdl +9 -16
  114. cocotb_tools/makefiles/simulators/Makefile.cvc +61 -0
  115. cocotb_tools/makefiles/simulators/Makefile.dsim +39 -0
  116. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.ghdl +13 -42
  117. cocotb_tools/makefiles/simulators/Makefile.icarus +80 -0
  118. cocotb_tools/makefiles/simulators/Makefile.ius +93 -0
  119. cocotb_tools/makefiles/simulators/Makefile.modelsim +9 -0
  120. cocotb_tools/makefiles/simulators/Makefile.nvc +60 -0
  121. cocotb_tools/makefiles/simulators/Makefile.questa +29 -0
  122. cocotb/share/makefiles/simulators/Makefile.questa → cocotb_tools/makefiles/simulators/Makefile.questa-compat +26 -54
  123. cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun +149 -0
  124. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.riviera +17 -56
  125. cocotb_tools/makefiles/simulators/Makefile.vcs +65 -0
  126. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.verilator +15 -22
  127. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.xcelium +20 -52
  128. cocotb_tools/runner.py +1868 -0
  129. cocotb/_sim_versions.py → cocotb_tools/sim_versions.py +16 -21
  130. pygpi/entry.py +34 -18
  131. cocotb/ANSI.py +0 -92
  132. cocotb/binary.py +0 -858
  133. cocotb/config.py +0 -289
  134. cocotb/decorators.py +0 -332
  135. cocotb/log.py +0 -303
  136. cocotb/memdebug.py +0 -35
  137. cocotb/outcomes.py +0 -56
  138. cocotb/runner.py +0 -1400
  139. cocotb/scheduler.py +0 -1099
  140. cocotb/share/makefiles/Makefile.deprecations +0 -12
  141. cocotb/share/makefiles/simulators/Makefile.cvc +0 -94
  142. cocotb/share/makefiles/simulators/Makefile.icarus +0 -111
  143. cocotb/share/makefiles/simulators/Makefile.ius +0 -125
  144. cocotb/share/makefiles/simulators/Makefile.modelsim +0 -32
  145. cocotb/share/makefiles/simulators/Makefile.nvc +0 -64
  146. cocotb/share/makefiles/simulators/Makefile.vcs +0 -98
  147. cocotb/types/array.py +0 -309
  148. cocotb/types/logic.py +0 -292
  149. cocotb/types/logic_array.py +0 -298
  150. cocotb/wavedrom.py +0 -199
  151. cocotb/xunit_reporter.py +0 -80
  152. cocotb-1.9.2.dist-info/METADATA +0 -168
  153. cocotb-1.9.2.dist-info/RECORD +0 -121
  154. cocotb-1.9.2.dist-info/entry_points.txt +0 -2
  155. {cocotb-1.9.2.dist-info → cocotb-2.0.0rc2.dist-info}/WHEEL +0 -0
  156. {cocotb/_vendor → cocotb_tools}/__init__.py +0 -0
  157. {cocotb → cocotb_tools}/_vendor/distutils_version.py +0 -0
@@ -1,3 +1,4 @@
1
+ Copyright cocotb contributors
1
2
  Copyright (c) 2013 Potential Ventures Ltd
2
3
  Copyright (c) 2013 SolarFlare Communications Inc
3
4
  All rights reserved.
@@ -0,0 +1,46 @@
1
+ Metadata-Version: 2.1
2
+ Name: cocotb
3
+ Version: 2.0.0rc2
4
+ Summary: cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.
5
+ Home-page: https://www.cocotb.org
6
+ Author: Chris Higgs, Stuart Hodgson
7
+ Maintainer: cocotb contributors
8
+ Maintainer-email: cocotb@lists.librecores.org
9
+ License: BSD-3-Clause
10
+ Project-URL: Bug Tracker, https://github.com/cocotb/cocotb/issues
11
+ Project-URL: Source Code, https://github.com/cocotb/cocotb
12
+ Project-URL: Documentation, https://docs.cocotb.org
13
+ Platform: any
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.6
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
24
+ Classifier: Framework :: cocotb
25
+ Requires-Python: >=3.6.2
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: find-libpython
29
+
30
+ **cocotb** is a framework empowering users to write VHDL and Verilog testbenches in Python.
31
+
32
+ [![Documentation Status](https://readthedocs.org/projects/cocotb/badge/?version=development)](https://docs.cocotb.org/en/stable/)
33
+ [![CI](https://github.com/cocotb/cocotb/actions/workflows/build-test-dev.yml/badge.svg?branch=master)](https://github.com/cocotb/cocotb/actions/workflows/build-test-dev.yml)
34
+ [![PyPI](https://img.shields.io/pypi/dm/cocotb.svg?label=PyPI%20downloads)](https://pypi.org/project/cocotb/)
35
+ [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/cocotb/cocotb)
36
+ [![codecov](https://codecov.io/gh/cocotb/cocotb/branch/master/graph/badge.svg)](https://codecov.io/gh/cocotb/cocotb)
37
+
38
+ * Check out the [tutorial](https://docs.cocotb.org/en/stable/quickstart.html)
39
+ * Read the [docs](https://docs.cocotb.org/en/stable/)
40
+ * Find more info in the [wiki](https://github.com/cocotb/cocotb/wiki)
41
+ * Discover [useful extensions](https://github.com/cocotb/cocotb/wiki/Further-Resources#utility-libraries-and-frameworks)
42
+ * Join the discussion in the [Gitter chat room](https://gitter.im/cocotb/Lobby)
43
+ * [Ask a question](https://github.com/cocotb/cocotb/discussions)
44
+ * [Raise a bug / request an enhancement](https://github.com/cocotb/cocotb/issues/new)
45
+
46
+ **Note: The current `master` branch of the cocotb repository is expected to be released as cocotb 2.0, which contains API-breaking changes from previous 1.x releases.**
@@ -0,0 +1,142 @@
1
+ cocotb/_ANSI.py,sha256=LIywDKSZXT5TuKq24YO4_c0lF-02wJYbQ50Ko_T4PJY,2272
2
+ cocotb/__init__.py,sha256=ytXW8EBeHwDddWwPArzeq8tNWy1tRShpU1UEte3_NgQ,3254
3
+ cocotb/_base_triggers.py,sha256=SNaN-K-wzLJjq5IFTlyvCkzZ9ExwqoXJg7YOvWAz_e0,16083
4
+ cocotb/_bridge.py,sha256=BAw73PpnTa-CCFkGt9Z9BM3AefdmzLWV8jCLYIOz-lw,6196
5
+ cocotb/_decorators.py,sha256=uBpX4LSj9zeIU7s3dWpQW92CJF94eNnZjKeoTZJLzc0,17916
6
+ cocotb/_deprecation.py,sha256=wgNE4GMapfvCzf4m6_dXg2FsOUGQnjpUU8erc5chRlo,1264
7
+ cocotb/_exceptions.py,sha256=FdlfgAG7yBT9l7mfhS_223fWtWei--3vMay1vsLhiOM,257
8
+ cocotb/_extended_awaitables.py,sha256=7WQrkh-Ad6DV1qXNOVi8Ic50MJiGrrrqcYqKjMWd34w,13908
9
+ cocotb/_gpi_triggers.py,sha256=G9xHsfKer0PLAOq-zQcesjf7PEBAfEb2S79ZJxgXaRo,13567
10
+ cocotb/_init.py,sha256=V3WT9OtdqE5Ng9Z-ahaFDmbgPR4jQ5qxU59LNZ-lSTc,10681
11
+ cocotb/_outcomes.py,sha256=r_PRvT2Yg3RQLwaFjOkCxo1G3h_DqPMljHc_eSe6cmo,1365
12
+ cocotb/_profiling.py,sha256=yk5aBDIVTIn6bxvW5a_EKpPwIt-dFU9ti7JbvBhOyuU,1152
13
+ cocotb/_py_compat.py,sha256=av_8OUaDUpMIuf6weE-gYxgmNqiA1z4ry7brzGl5fuY,3880
14
+ cocotb/_scheduler.py,sha256=O7eMLk967Y4POenXLITgPcw2TpWXX542qIskiyXlr3c,20351
15
+ cocotb/_test.py,sha256=A1XkTUB8OrkPOOLE3igX8Pt_vCmHq1Xmmix_L4E4l8k,8439
16
+ cocotb/_test_factory.py,sha256=EEuZAWWMcwFqaEp0XqiYvRUxSZbjuRu1IZNjp6N702I,11927
17
+ cocotb/_test_functions.py,sha256=nAef7y_MSGnHPL9NWnGay0WNwhknDWq5v03W0dS1xJs,1164
18
+ cocotb/_typing.py,sha256=2VQIYOlzZR8F5bmi7WK_j_NdNl_Kl7g0DM_XpQo6zrY,337
19
+ cocotb/_utils.py,sha256=DPeKRP7PARMJiBOEvHv-HcJbwSIAIo7DqnmqDnAuzm4,8481
20
+ cocotb/_version.py,sha256=8b5YwveFmhXomHhjDgTw28Qkz6vsEjAuoL7UkoZD3lU,98
21
+ cocotb/_xunit_reporter.py,sha256=1Su41GFrI55Tz9GSuXQHpFjao8F_RVGTbNsTnEYa4BU,2516
22
+ cocotb/clock.py,sha256=gTmxt6LcDyZ1lS5dX9gW4WL5XjpG8S19_dDovciLdTo,14335
23
+ cocotb/debug.py,sha256=OsvxKAf5lCTw0W50_8wPqwfMN9KbQT9Ep2MAGtjf6NM,816
24
+ cocotb/handle.py,sha256=1_RgF8yx2q1Y44JhtWq4OBK9tp_bBpZGfamWIBk5AsI,62849
25
+ cocotb/logging.py,sha256=Y5pQbP3MVwJabIp9VMKI5jD93xD5PUWlj4cwCQjuE8g,14247
26
+ cocotb/queue.py,sha256=i9jYA5r3ihpVF8LmZd-O7s7MMtOvJoZeNm5NzF6Ln8o,6698
27
+ cocotb/regression.py,sha256=llXaAHZCcMS_gqr4O7FFPfwmWSF-rrHbB44TDaYWyog,29786
28
+ cocotb/result.py,sha256=-Np4hFX9qMJsZ8KtTAfMWOpBim_funkViV0oRc0xo3I,1203
29
+ cocotb/simtime.py,sha256=wHg07UBDwiCbVqS9CjzTP3-Zvh0FKvLBntvIveTCrc8,6668
30
+ cocotb/simulator.cp37-win_amd64.exp,sha256=Bu_qcj_yz02Zyds9vaImfVB8OsyssiQYQGH8m5TT2cE,755
31
+ cocotb/simulator.cp37-win_amd64.lib,sha256=E1QPi0-hsRYCngusxV5biBwXzE3pA9DA4QsP_5i-2Ks,2036
32
+ cocotb/simulator.cp37-win_amd64.pyd,sha256=G5sZ-W-OkyZPSLX2owuRUxnSPa4w0JrmZKCPBIYZSVA,38912
33
+ cocotb/simulator.cp37-win_amd64.pyd.2.config,sha256=JGoavZmGw71REMRGu8DrBlQezZSCkQx7E3GOzGIf9_o,263
34
+ cocotb/task.py,sha256=opsqjgaUMwxdWOK7IVAjZJwt1BJfXksWAblLz8ojrNE,21076
35
+ cocotb/triggers.py,sha256=_AnYLLtlcwliRvqXu3qKmlSGgu-yercYwpOFZfrZd4w,1450
36
+ cocotb/utils.py,sha256=hDN5jlImp8fAyBHZQXQfvKMViQKiUZqHTc1_nzETiNk,3491
37
+ cocotb/libs/cocotb.dll,sha256=aTOr9pXFVfs5wr89twd83BGjgu1cVXQFRToYeHa6Nb8,17920
38
+ cocotb/libs/cocotb.exp,sha256=8mGKJVSC8V1cRTx96URD6wOkYFhR0cqe11QovjRqbK0,1108
39
+ cocotb/libs/cocotb.lib,sha256=qtiwA_JkiK2me2ubMMd5SxxoAC5wmYcUlQc5ay5C3cc,2358
40
+ cocotb/libs/cocotbfli_modelsim.dll,sha256=hBUGoOoRENBTia3N8unC0xuR1toEtXMz3yFGmsN9Wv0,96256
41
+ cocotb/libs/cocotbfli_modelsim.exp,sha256=TZZPjNHr11PO5Yt0Kc-1LzhWE4U9fZUG7mE3KmBBF3Q,874
42
+ cocotb/libs/cocotbfli_modelsim.lib,sha256=-9kBid-DG2f5z0Z9CiduoifgwpDCU8QWQYjInuMNW_s,2176
43
+ cocotb/libs/cocotbutils.dll,sha256=uLjiZ3wQM1naa-So-H0-0EY548oqb51gjyZ_m1sjaxM,11776
44
+ cocotb/libs/cocotbutils.exp,sha256=Yvxz9TGZ6YfVP0y9j32PCu_2B-LwIau6YmYo2FMh7Mg,973
45
+ cocotb/libs/cocotbutils.lib,sha256=EHhJD0X1LPxhp9lb6TNVUyv9h9L4czAo_YZmXvCo5p4,2146
46
+ cocotb/libs/cocotbvhpi_aldec.dll,sha256=r7YW6Kzp3m3MslZF2whnkCJv2TeYw-bCJSQaL5c8BxY,94720
47
+ cocotb/libs/cocotbvhpi_aldec.exp,sha256=GswGDkI3JSumgK-l84Qy1mtuk7isC1EHmg5VgFlDMOw,1072
48
+ cocotb/libs/cocotbvhpi_aldec.lib,sha256=cmbJQCo27j-xoEjPR7qoCuoPsjJdp4LX5vPpE8Shfks,2442
49
+ cocotb/libs/cocotbvhpi_modelsim.dll,sha256=dkxZg5P5RvKdBlcqaJfIXmthVSbFYRAbDjh5tZ5B0r8,94720
50
+ cocotb/libs/cocotbvhpi_modelsim.exp,sha256=NHytjJn4vYwDPiby147BUNEameU6srXnR6KzBgeFwiQ,1079
51
+ cocotb/libs/cocotbvhpi_modelsim.lib,sha256=-oiZely604KSwT2J2Tjc4_1Te7_WNX8xu4MKddUoCoA,2484
52
+ cocotb/libs/cocotbvpi_aldec.dll,sha256=Jq7ZzK-0KOMa0VjWXkeeJRf3IlC0Lk-YT-nS0gPzQrw,83456
53
+ cocotb/libs/cocotbvpi_aldec.exp,sha256=bnsAZQ0ui6XdXVedE4RpxCogp1Zt-jnbdcSBeJlQAqY,1067
54
+ cocotb/libs/cocotbvpi_aldec.lib,sha256=gm0Uv112vnmBjtqQl60DxiI2IlsKZDZdCznzPK8mmjc,2418
55
+ cocotb/libs/cocotbvpi_ghdl.dll,sha256=J38hVMNgN_dM6wkHcCdGRuaM7PE1hr2hRr4MHwGhB3A,83456
56
+ cocotb/libs/cocotbvpi_ghdl.exp,sha256=RbvZ3tIgPxNyhppyV-tuXphY5ehtkAWIfDrUBv5EFrc,1066
57
+ cocotb/libs/cocotbvpi_ghdl.lib,sha256=IMrx9rIzSEsZSRaqQMpBX4qxIABKl6SpUbIKz0wNhfU,2408
58
+ cocotb/libs/cocotbvpi_icarus.exp,sha256=erIyT27uqOyC7pTgYpeBeYul39W2Je2uHo5dZMApmGs,1070
59
+ cocotb/libs/cocotbvpi_icarus.lib,sha256=68QdmFqReSZqyDs1N0SeMix1rEEiuvtcTiRBb3p78NI,2438
60
+ cocotb/libs/cocotbvpi_icarus.vpl,sha256=mSyVrEPCVZb6QhXutZ8XE19MA8ShI2Or2oFyLlc0mDw,82944
61
+ cocotb/libs/cocotbvpi_modelsim.dll,sha256=lXO2uj-XIQVVPbN-D-pkLaCCOgQMRUqSBmpJk2FqJGw,83456
62
+ cocotb/libs/cocotbvpi_modelsim.exp,sha256=xKEa40e-_DVogx42n1kppJiFLvrZGgjlWfdClnlloO8,1074
63
+ cocotb/libs/cocotbvpi_modelsim.lib,sha256=5kiZtX7oBUILlcMhmMOEQ4LKJLcRnVwpqZxLA9I_5qs,2468
64
+ cocotb/libs/embed.dll,sha256=lP8BHN7jJgmGDuYf594qiHYmYlrR-StokNVWTfqZpo0,12288
65
+ cocotb/libs/embed.exp,sha256=5Roj2yMOAIh9exCGBRVxmf2a9FH85IpFKuRJ3SbaGNM,1095
66
+ cocotb/libs/embed.lib,sha256=xUMQO0uGQ7EtcGdeQTwIQ1-u0zNXMvEvo_snwcdtllg,2322
67
+ cocotb/libs/gpi.dll,sha256=kjrageUEMFz-6yAGH6RwM4b1OJcoV6ohq5n7rF6ut9U,58368
68
+ cocotb/libs/gpi.exp,sha256=t_AOT4NvHzoBB9CqNSe_zHkBHoTamwXJ1DqQ59Wojjc,18646
69
+ cocotb/libs/gpi.lib,sha256=oHMnfCQSgR-N6uH4_DJ5w6hai8zkCb0n0SkaJcwEMNc,30614
70
+ cocotb/libs/gpilog.dll,sha256=xZkJBY-K8yTEvcoNc5HJNQQ5Wai_7TP2DC5WJFmKmgA,18944
71
+ cocotb/libs/gpilog.exp,sha256=7w4oCOWc-Ju_bbUI0KQIaBAx9fZ7SWvJV9Vj86re60g,2195
72
+ cocotb/libs/gpilog.lib,sha256=thj4ksSTm3-PjqaWdPiYpSFfopq28wo3oJpokUbBROw,4156
73
+ cocotb/libs/pygpilog.dll,sha256=igv8TJj0_rKltSjFbHrkwiObUiBUQiEO8cP1KDK2VbQ,20992
74
+ cocotb/libs/pygpilog.exp,sha256=kuRxD9eno0N6rytg7eFmIR4YUJRBaklI34asW8rqbA4,987
75
+ cocotb/libs/pygpilog.lib,sha256=47Bo_HCcKUBajRFG2RB-WFGr-U7eDMfeiF1GzuILMDw,2174
76
+ cocotb/share/def/.gitignore,sha256=JYPaHghbqtLFl-9QtOWaAHvoDOhVxEewSYwHgoYYgf8,46
77
+ cocotb/share/def/README.md,sha256=dptv3zHQGzMqLt3Zv4XOd5IZeGqQS7Lwcq1XCs3BcR0,380
78
+ cocotb/share/def/aldec.def,sha256=ItgxVlRaVuD20jGTN3JpkbHEO8jPfU5XjFlUqDUXzlU,991
79
+ cocotb/share/def/aldec.exp,sha256=kDAsEFl6dZuuq7Wjw6LMryKgbyiKlm4bZjwkBPvPeZc,7946
80
+ cocotb/share/def/aldec.lib,sha256=4EIDNfhKFbnJQjc71sQC4MIKKNLkRs-h_gui0JmwniA,13498
81
+ cocotb/share/def/ghdl.def,sha256=ETQh5VI72dWSJi_ig5m163GfLrxScYUamt5BjHjoKsY,705
82
+ cocotb/share/def/ghdl.exp,sha256=h1ut3B065y14o1NhQXgWzyHwsiag_CrTHuBbuCTT9vM,5771
83
+ cocotb/share/def/ghdl.lib,sha256=bpM93qAgsVn-bIwJct3PpCMHrkO4jhqLQviXt03hiqw,9974
84
+ cocotb/share/def/icarus.def,sha256=VRqkgUyzR2sa916Ra56cZVIb4kzbqDlJVWIOc3389qY,698
85
+ cocotb/share/def/icarus.exp,sha256=oiCH1dYXYhwTgWGPbTY9OWE8edYzEI9sD5tfZ6-VRJk,5761
86
+ cocotb/share/def/icarus.lib,sha256=RnDYDMryhk1mBkI7vu5lUnZ-q-r1gxIX080WNPaNiMg,9612
87
+ cocotb/share/def/modelsim.def,sha256=HncvdEzVllbzFR21Nqcbsr-oXMWIfx3YsVi-RK4sbpk,2402
88
+ cocotb/share/def/modelsim.exp,sha256=7aYoltQzNDY_xPDBKxfklDeGHbNQjNgoR9fsAhjVvWc,17032
89
+ cocotb/share/def/modelsim.lib,sha256=wDkSjs7sxdKiLinTqCmelDvS08kI7fv0kxfaqbRUfvE,28378
90
+ cocotb/share/include/cocotb_utils.h,sha256=6lHffujs9KVTMMMu08r-ClbaZeyRUHHK-S1QnwH54Lg,2477
91
+ cocotb/share/include/embed.h,sha256=I5PXIcyNRQH3I6A81trsGJ-ksGDQt3tvJsrzht5ux_U,894
92
+ cocotb/share/include/exports.h,sha256=RRDg9diMCUUJxdzKX0B6TGmQBNttcoVMBVCCLUUKsrA,677
93
+ cocotb/share/include/gpi.h,sha256=g3wIG_jtdVvIchXTE50wiAkqvYE4AuL-LzXswRV066w,15576
94
+ cocotb/share/include/gpi_logging.h,sha256=sBgvpiYjJfrFIKKLGh8oVMBHGGNz93rIILjA9N6VheQ,13560
95
+ cocotb/share/include/py_gpi_logging.h,sha256=24ZP1aRMNz4HRLpX6Mt3f-pkvEKK-EFZ1cKUaqA548w,722
96
+ cocotb/share/include/vhpi_user_ext.h,sha256=VLXbA-oeO83mL1vR0e4Ye0zMe5ijIaXnvT2FRFgsYDY,654
97
+ cocotb/share/include/vpi_user_ext.h,sha256=uJd-wKgKyVpoBVgagiPjND0WjciUNZaoqSa9Js_3UhU,970
98
+ cocotb/share/lib/verilator/verilator.cpp,sha256=LsFSuJdrZGenJVDOA-UFDBsukInK3gYVmUgNskhKGs8,6284
99
+ cocotb/types/__init__.py,sha256=B7pA3EAY6q1tnK60NcDcAJTYXT41N8_mPS5fz2vG0dc,957
100
+ cocotb/types/_abstract_array.py,sha256=mP94zSDRKHxsZTb5nUAHEYjp43Klx-8RT3DS5r1Vm_4,4059
101
+ cocotb/types/_array.py,sha256=Pql7dtXc9NQXN1OMddLuZG_t5SThgaToejKYOnGC1NI,11171
102
+ cocotb/types/_indexing.py,sha256=OHxwlnEVNEc0JOO7XQr6DZNfPBJTeTjYno8Y60OiCIk,543
103
+ cocotb/types/_logic.py,sha256=wWJsoCzENu3tbJKEil4FjMryjpiJr-owkYMfH9NQ-tU,11365
104
+ cocotb/types/_logic_array.py,sha256=7y3lQBE0_YbpBzw5AV2o7vbZr3heRDZJfmSV_hyASHY,33629
105
+ cocotb/types/_range.py,sha256=hfUuB7vIqg9SHVucjqwwVozW20-gCYJGUaKeNGoJXrU,6421
106
+ cocotb/types/_resolve.py,sha256=bdxyDw1ViQbtjTalszemARE4s8-KQgJmvGhNrFYd448,2129
107
+ cocotb_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ cocotb_tools/_coverage.py,sha256=cZBUbdVed99jcBA60t0U4XcLfq_8rkJVvk5Bdqlqhns,1265
109
+ cocotb_tools/check_results.py,sha256=nnn7k2jTTvDOzRmZ5Lk2fBbKvq_vEBw204FG61Rd-bw,1769
110
+ cocotb_tools/combine_results.py,sha256=_1vi7bglTlnWpsLr4IRrN779GpWN3wQDBXGLpicPbHE,5290
111
+ cocotb_tools/config.py,sha256=UEuv72qTQBfDYY3J3-FEc87zMe4MZOPG2fwFK5h3Ct8,7945
112
+ cocotb_tools/ipython_support.py,sha256=xjEOUgRbP9vHgMDy53eA0rBbGzb4v7O-aT0_6TwKHmM,3444
113
+ cocotb_tools/runner.py,sha256=uNVkLEp3-BR-nvK54RPfihVBnKVOfqIjO0cAwsypgDs,70355
114
+ cocotb_tools/sim_versions.py,sha256=KwXJ93B2hARVtTwShQjdvcytNcMWle43FJ5sgtqfXyA,4007
115
+ cocotb_tools/_vendor/__init__.py,sha256=-fGisWAvaqm1aSSA9GAUNT44xDHmASVhSo1Lg46OB6I,142
116
+ cocotb_tools/_vendor/distutils_version.py,sha256=k4Zipnnw88hyoE5MLBbgcXh9iu7iYGK3K5s97wVpOFE,13185
117
+ cocotb_tools/makefiles/Makefile.deprecations,sha256=HbmEQOwkp8XiWO_-Q43KnkqGbFxmlx_aIs4DoYIls6A,886
118
+ cocotb_tools/makefiles/Makefile.inc,sha256=PFf0Phe6P1q-2ovz0dGl6EAJI0OKqQADfiOv6P3Obww,5446
119
+ cocotb_tools/makefiles/Makefile.sim,sha256=exzBV6KRE8Xt9nuefvmhSRWqEh6V1pGrEDD5hl7HEt4,4171
120
+ cocotb_tools/makefiles/simulators/Makefile.activehdl,sha256=u2_EuY-c6OH4_h9aw1TCUH04GyH9EblduUy1-xAKqSs,3068
121
+ cocotb_tools/makefiles/simulators/Makefile.cvc,sha256=B6LadqK-NUhhnh2bI3bt6zueKcmR5DFQZ7wAobpnpck,2968
122
+ cocotb_tools/makefiles/simulators/Makefile.dsim,sha256=iNwQ_9JlV8z7TaN6-mllA_PBjH4h-xltoNDBQodofg4,1519
123
+ cocotb_tools/makefiles/simulators/Makefile.ghdl,sha256=FIIOlC-4R0KNi_Xtj4gu71Blxs87VcGlmdxT0UGnHAU,3452
124
+ cocotb_tools/makefiles/simulators/Makefile.icarus,sha256=joxeAbIkzDVNCjlyHKnXMHWmyi25CitsIgeVXN0AsDo,3208
125
+ cocotb_tools/makefiles/simulators/Makefile.ius,sha256=koC6rhvuO5Lf2qET24TQIrAuFHP3CizXZJ8H6wTnz2k,3665
126
+ cocotb_tools/makefiles/simulators/Makefile.modelsim,sha256=JK9P_d1HsOO61O8Rm6qeLSPZdNQ_mQNe8nf-2f8nzk0,355
127
+ cocotb_tools/makefiles/simulators/Makefile.nvc,sha256=qJocV32rwFXTGwP6HKZjKClN0QrjfWMiUHW_ZNWV0Ac,2643
128
+ cocotb_tools/makefiles/simulators/Makefile.questa,sha256=iLdtpBOwSAdeuSBa-TCY-GtDXdEDPVgM5pgLgdKNXmY,1504
129
+ cocotb_tools/makefiles/simulators/Makefile.questa-compat,sha256=upoFF9NsQ_2bwP6_cvd66Zn3YnRYVrPLLO6FiVl6Jbw,5165
130
+ cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun,sha256=aHSRmQny4EXvqH8SLD5HPAzs_NuN-CwurLlf27Rc5zo,5017
131
+ cocotb_tools/makefiles/simulators/Makefile.riviera,sha256=iqaoWq6-j_eQbL_eJY4m8tjayjMX_9L413jmUiUSiJM,5495
132
+ cocotb_tools/makefiles/simulators/Makefile.vcs,sha256=xSxfmsPruSu4wvy_IydNIXdh74ewjM_McZs8AFGtmuY,2219
133
+ cocotb_tools/makefiles/simulators/Makefile.verilator,sha256=kgV50lZsGwrc_Fc1b5Gw9FcSYgZv0LLYa6rGO9DpyLI,2830
134
+ cocotb_tools/makefiles/simulators/Makefile.xcelium,sha256=vIKcGasyQv6wGH07MnOH3gXCZ_anC5c9azT_-5irDws,4354
135
+ pygpi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
+ pygpi/entry.py,sha256=dvFSzT1MeGZOThD5r3gRFU-g2fDL4sUETsHu4unyL2U,1644
137
+ cocotb-2.0.0rc2.dist-info/LICENSE,sha256=8mwxMGzbfTp55fmZ9K18_4yuclcePI7u1fPvmxa9LVo,1601
138
+ cocotb-2.0.0rc2.dist-info/METADATA,sha256=iVxTx90Jpa9iV7Gx9gTR9JB5sthyBraz9OzoEJWw4VA,2752
139
+ cocotb-2.0.0rc2.dist-info/WHEEL,sha256=slqBGdqRnxanDn00BSYHhryEsWH_8CUurgRUvoMtK_Y,101
140
+ cocotb-2.0.0rc2.dist-info/entry_points.txt,sha256=LQ3GHF3csyQTVmUZ1aLtd2y5DG1GgYUHZ_xntnGO5jg,59
141
+ cocotb-2.0.0rc2.dist-info/top_level.txt,sha256=1wga6LXtoeDGlL2GXjX4-w8Qt0y18HKevHn5PD7U2ZA,406
142
+ cocotb-2.0.0rc2.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ cocotb-config = cocotb_tools.config:main
@@ -13,4 +13,5 @@ cocotb\libs\libgpi
13
13
  cocotb\libs\libgpilog
14
14
  cocotb\libs\libpygpilog
15
15
  cocotb\simulator
16
+ cocotb_tools
16
17
  pygpi
@@ -0,0 +1,33 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
4
+ import os
5
+
6
+
7
+ def start_cocotb_library_coverage(_: object) -> None: # pragma: no cover
8
+ if "COCOTB_LIBRARY_COVERAGE" not in os.environ:
9
+ return
10
+ try:
11
+ import coverage # noqa: PLC0415
12
+ except (ImportError, ModuleNotFoundError):
13
+ raise RuntimeError(
14
+ "cocotb library coverage collection requested but coverage package not available. Install it using `pip install coverage`."
15
+ ) from None
16
+ else:
17
+ library_coverage = coverage.coverage(
18
+ data_file=".coverage.cocotb",
19
+ config_file=False,
20
+ branch=True,
21
+ source=["cocotb"],
22
+ )
23
+ library_coverage.start()
24
+
25
+ def stop_library_coverage() -> None:
26
+ library_coverage.stop()
27
+ library_coverage.save() # pragma: no cover
28
+
29
+ # This must come after `library_coverage.start()` to ensure coverage is being
30
+ # collected on the cocotb library before importing from it.
31
+ from cocotb._init import _register_shutdown_callback # noqa: PLC0415
32
+
33
+ _register_shutdown_callback(stop_library_coverage)
@@ -0,0 +1,3 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
@@ -0,0 +1,65 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
4
+ """Checks if a JUnit results file exists and whether there was failing tests."""
5
+
6
+ import argparse
7
+ import sys
8
+ from pathlib import Path
9
+ from typing import Tuple
10
+ from xml.etree import ElementTree
11
+
12
+
13
+ def get_results(results_xml_file: Path) -> Tuple[int, int]:
14
+ """Return number of tests and fails in *results_xml_file*.
15
+
16
+ Returns:
17
+ Tuple of number of tests and number of fails.
18
+
19
+ Raises:
20
+ RuntimeError: If *results_xml_file* is non-existent.
21
+ """
22
+
23
+ __tracebackhide__ = True # Hide the traceback when using PyTest.
24
+
25
+ if not results_xml_file.is_file():
26
+ raise RuntimeError(
27
+ f"ERROR: Simulation terminated abnormally. Results file {results_xml_file} not found."
28
+ )
29
+
30
+ num_tests = 0
31
+ num_failed = 0
32
+
33
+ tree = ElementTree.parse(results_xml_file)
34
+ for ts in tree.iter("testsuite"):
35
+ for tc in ts.iter("testcase"):
36
+ num_tests += 1
37
+ for _ in tc.iter("failure"):
38
+ num_failed += 1
39
+
40
+ return (num_tests, num_failed)
41
+
42
+
43
+ def _get_parser() -> argparse.ArgumentParser:
44
+ """Return the cmdline parser"""
45
+ parser = argparse.ArgumentParser(description=__doc__)
46
+ parser.add_argument(
47
+ "results_file", help="Path to XML file holding JUnit test results.", type=Path
48
+ )
49
+ return parser
50
+
51
+
52
+ def main() -> int:
53
+ parser = _get_parser()
54
+ args = parser.parse_args()
55
+
56
+ try:
57
+ (_, num_failed) = get_results(args.results_file)
58
+ except RuntimeError:
59
+ return 1
60
+ return num_failed
61
+
62
+
63
+ if __name__ == "__main__":
64
+ rc = main()
65
+ sys.exit(rc)
@@ -0,0 +1,152 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
4
+ #!/usr/bin/env python
5
+ """
6
+ Simple script to combine JUnit test results into a single XML file.
7
+ """
8
+
9
+ import argparse
10
+ import os
11
+ import re
12
+ import sys
13
+ from pathlib import Path
14
+ from typing import Iterable, Pattern
15
+ from xml.etree import ElementTree as ET
16
+
17
+
18
+ def _find_all(name: Pattern, path: Path) -> Iterable[Path]:
19
+ for obj in path.iterdir():
20
+ if obj.is_file() and re.match(name, obj.name):
21
+ yield obj
22
+ elif obj.is_dir():
23
+ yield from _find_all(name, obj)
24
+
25
+
26
+ def _get_parser() -> argparse.ArgumentParser:
27
+ """Return the cmdline parser"""
28
+ parser = argparse.ArgumentParser(
29
+ description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter
30
+ )
31
+ parser.add_argument(
32
+ "directories",
33
+ nargs="*",
34
+ type=lambda args: [Path(arg) for arg in args],
35
+ default=[Path()],
36
+ help="Directories to search for input files.",
37
+ )
38
+ parser.add_argument(
39
+ "-i",
40
+ "--input-filename",
41
+ default=r"results.*\.xml",
42
+ help="A regular expression to match input filenames.",
43
+ )
44
+ parser.add_argument(
45
+ "-o",
46
+ "--output-file",
47
+ default="combined_results.xml",
48
+ help="Path of output XML file.",
49
+ )
50
+ parser.add_argument(
51
+ "--output-testsuites-name",
52
+ default="results",
53
+ help="Name of 'testsuites' element in output XML file.",
54
+ )
55
+ parser.add_argument(
56
+ "--verbose",
57
+ action="store_true",
58
+ help="Enables verbose output.",
59
+ )
60
+ parser.add_argument(
61
+ "--repo-root",
62
+ type=Path,
63
+ help="Specify root of cocotb repo the regression is run from (CI only).",
64
+ )
65
+ return parser
66
+
67
+
68
+ def main() -> int:
69
+ parser = _get_parser()
70
+ args = parser.parse_args()
71
+ rc = 0
72
+
73
+ result = ET.Element("testsuites", name=args.output_testsuites_name)
74
+
75
+ input_pattern = re.compile(args.input_filename)
76
+
77
+ for directory in args.directories:
78
+ if args.verbose:
79
+ print(f"Searching in {directory} for results.xml files.")
80
+ for fname in _find_all(input_pattern, directory):
81
+ if args.verbose:
82
+ print(f"Reading file {fname}.")
83
+ tree = ET.parse(fname)
84
+ for ts in tree.iter("testsuite"):
85
+ if args.verbose:
86
+ print(
87
+ "Testsuite name: {!r}, package: {!r}".format(
88
+ ts.get("name"), ts.get("package")
89
+ )
90
+ )
91
+ for existing in result:
92
+ if (existing.get("name") == ts.get("name")) and (
93
+ existing.get("package") == ts.get("package")
94
+ ):
95
+ if args.verbose:
96
+ print(
97
+ "Testsuite already exists in combined results. Extending it."
98
+ )
99
+ existing.extend(list(ts))
100
+ break
101
+ else:
102
+ if args.verbose:
103
+ print(
104
+ "Testsuite does not already exist in combined results. Adding it."
105
+ )
106
+ result.append(ts)
107
+
108
+ testsuite_count = 0
109
+ testcase_count = 0
110
+ for testsuite in result.iter("testsuite"):
111
+ testsuite_count += 1
112
+ for testcase in testsuite.iter("testcase"):
113
+ testcase_count += 1
114
+ for _ in testcase.iter("failure"):
115
+ rc = 1
116
+ print(
117
+ "Failure in testsuite: '{}' classname: '{}' testcase: '{}' with parameters '{}'".format(
118
+ testsuite.get("name"),
119
+ testcase.get("classname"),
120
+ testcase.get("name"),
121
+ testsuite.get("package"),
122
+ )
123
+ )
124
+ if (
125
+ os.getenv("GITHUB_ACTIONS") is not None
126
+ and args.repo_root is not None
127
+ ):
128
+ # Get test file relative to root of repo
129
+ file = testcase.get("file")
130
+ # if this file was output by cocotb, it has this attribute
131
+ assert file is not None
132
+ relative_file = Path(file).relative_to(args.repo_root)
133
+ print(
134
+ "::error file={},line={}::Test {}:{} failed".format(
135
+ relative_file,
136
+ testcase.get("lineno"),
137
+ testcase.get("classname"),
138
+ testcase.get("name"),
139
+ )
140
+ )
141
+
142
+ print(f"Ran a total of {testsuite_count} TestSuites and {testcase_count} TestCases")
143
+
144
+ if args.verbose:
145
+ print(f"Writing combined results to {args.output_file}")
146
+ ET.ElementTree(result).write(args.output_file, encoding="UTF-8")
147
+ return rc
148
+
149
+
150
+ if __name__ == "__main__":
151
+ rc = main()
152
+ sys.exit(rc)