quarchpy 2.2.9.dev3__py2.py3-none-any.whl → 2.2.9.dev4__py2.py3-none-any.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.
- quarchpy/.idea/.name +1 -0
- quarchpy/.idea/inspectionProfiles/Project_Default.xml +50 -0
- quarchpy/.idea/inspectionProfiles/profiles_settings.xml +6 -0
- quarchpy/.idea/misc.xml +7 -0
- quarchpy/.idea/modules.xml +8 -0
- quarchpy/.idea/quarchpy.iml +12 -0
- quarchpy/.idea/vcs.xml +7 -0
- quarchpy/.idea/workspace.xml +273 -0
- quarchpy/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/__pycache__/_version.cpython-311.pyc +0 -0
- quarchpy/__pycache__/_version.cpython-312.pyc +0 -0
- quarchpy/__pycache__/connection.cpython-311.pyc +0 -0
- quarchpy/__pycache__/connection.cpython-312.pyc +0 -0
- quarchpy/__pycache__/run.cpython-311.pyc +0 -0
- quarchpy/__pycache__/run.cpython-312.pyc +0 -0
- quarchpy/_version.py +1 -1
- quarchpy/config_files/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/config_files/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/config_files/__pycache__/quarch_config_parser.cpython-311.pyc +0 -0
- quarchpy/config_files/__pycache__/quarch_config_parser.cpython-312.pyc +0 -0
- quarchpy/connection_specific/QPS/win-amd64/app.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/app.properties +1 -1
- quarchpy/connection_specific/QPS/win-amd64/qis/qis.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/CInterface-2.3.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/QuarchCommon-2.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/{TorridonCommon-1.3.jar → TorridonCommon-1.1.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/jmdns-3.5.9.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/usb4java-1.3.1.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps-command-reference.html +3 -11
- quarchpy/connection_specific/QPS/win-amd64/qps.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/JFXUtilities-1.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/QuarchCommon-2.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-base-21.0.6-linux-aarch64.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-controls-21.0.6-linux-aarch64.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-fxml-21.0.6-linux-aarch64.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-graphics-21.0.6-linux-aarch64.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-arm64/javafx-swing-21.0.6-linux-aarch64.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-base-21.0.5-linux.jar → javafx-base-21.0.6-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-controls-21.0.5-linux.jar → javafx-controls-21.0.6-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-fxml-21.0.5-linux.jar → javafx-fxml-21.0.6-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-graphics-21.0.5-linux.jar → javafx-graphics-21.0.6-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/lin-x64/{javafx-swing-21.0.5-linux.jar → javafx-swing-21.0.6-linux.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-x64/javafx-base-21.0.5-mac.jar → mac-arm64/javafx-base-21.0.6-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-controls-21.0.5-mac-aarch64.jar → javafx-controls-21.0.6-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-x64/javafx-fxml-21.0.5-mac.jar → mac-arm64/javafx-fxml-21.0.6-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-graphics-21.0.5-mac-aarch64.jar → javafx-graphics-21.0.6-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-arm64/{javafx-swing-21.0.5-mac-aarch64.jar → javafx-swing-21.0.6-mac-aarch64.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-arm64/javafx-base-21.0.5-mac-aarch64.jar → mac-x64/javafx-base-21.0.6-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-controls-21.0.5-mac.jar → javafx-controls-21.0.6-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/{mac-arm64/javafx-fxml-21.0.5-mac-aarch64.jar → mac-x64/javafx-fxml-21.0.6-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-graphics-21.0.5-mac.jar → javafx-graphics-21.0.6-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/mac-x64/{javafx-swing-21.0.5-mac.jar → javafx-swing-21.0.6-mac.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/qutils-1.0.jar +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-base-21.0.5-win.jar → javafx-base-21.0.6-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-controls-21.0.5-win.jar → javafx-controls-21.0.6-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-fxml-21.0.5-win.jar → javafx-fxml-21.0.6-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-graphics-21.0.5-win.jar → javafx-graphics-21.0.6-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/qps_lib/win-x64/{javafx-swing-21.0.5-win.jar → javafx-swing-21.0.6-win.jar} +0 -0
- quarchpy/connection_specific/QPS/win-amd64/scriptCommands.txt +1 -23
- quarchpy/connection_specific/QPS/win-amd64/whats-new.txt +1 -1
- quarchpy/connection_specific/__pycache__/StreamChannels.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/StreamChannels.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QIS.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QIS.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QPS.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QPS.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_ReST.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_ReST.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_Serial.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_Serial.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_TCP.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_TCP.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_USB.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_USB.cpython-312.pyc +0 -0
- quarchpy/connection_specific/__pycache__/mDNS.cpython-311.pyc +0 -0
- quarchpy/connection_specific/__pycache__/mDNS.cpython-312.pyc +0 -0
- quarchpy/connection_specific/connection_QIS.py +6 -3
- quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/connection_specific/jdk_j21_jres/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-311.pyc +0 -0
- quarchpy/connection_specific/jdk_j21_jres/__pycache__/fix_permissions.cpython-312.pyc +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/bin/java +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/bin/jfr +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/bin/jrunscript +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/bin/jwebserver +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/bin/keytool +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/bin/rmiregistry +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/jaxp.properties +180 -200
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/logging.properties +63 -63
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/management/management.properties +327 -326
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/net.properties +164 -162
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/security/java.policy +46 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/security/java.security +1509 -1517
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/asm.md +36 -36
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/cldr.md +109 -100
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/icu.md +518 -93
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/public_suffix.md +399 -399
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.base/unicode.md +103 -269
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.desktop/freetype.md +649 -649
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.desktop/giflib.md +50 -46
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.smartcardio/pcsclite.md +57 -57
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xalan.md +255 -255
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +72 -76
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO +37 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION +27 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/LICENSE +347 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO +37 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION +27 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/LICENSE +347 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.localedata/cldr.md +109 -100
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/classlist +1502 -1587
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jexec +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jfr/default.jfc +1126 -1152
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jfr/profile.jfc +1126 -1151
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jrt-fs.jar +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/jspawnhelper +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libawt.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libawt_headless.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libawt_xawt.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libdt_socket.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libextnet.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libfontmanager.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libfreetype.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libinstrument.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libj2gss.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libj2pcsc.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libj2pkcs11.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjaas.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjava.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjavajpeg.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjawt.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjdwp.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjimage.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjli.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjsig.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjsound.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libjsvml.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/liblcms.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libmanagement.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libmanagement_agent.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libmanagement_ext.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libmlib_image.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libnet.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libnio.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libprefs.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/librmi.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libsctp.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libsplashscreen.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libsyslookup.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libverify.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libzip.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/modules +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/psfontj2d.properties +323 -323
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/security/default.policy +235 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/security/public_suffix_list.dat +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/server/libjsig.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/server/libjvm.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/tzdb.dat +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/release +2 -2
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/bin/java +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/bin/jfr +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/bin/jrunscript +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/bin/jwebserver +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/bin/keytool +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/bin/rmiregistry +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/jaxp.properties +180 -200
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/logging.properties +63 -63
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/management/management.properties +327 -326
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/net.properties +164 -162
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/security/java.policy +46 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/security/java.security +1510 -1518
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/asm.md +36 -36
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/cldr.md +109 -100
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/icu.md +518 -93
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/public_suffix.md +399 -399
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.base/unicode.md +103 -269
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.desktop/freetype.md +649 -649
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.desktop/giflib.md +50 -46
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.smartcardio/pcsclite.md +57 -57
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xalan.md +255 -255
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +72 -76
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO +37 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION +27 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/LICENSE +347 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO +37 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION +27 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/LICENSE +347 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/jdk.localedata/cldr.md +109 -100
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/classlist +1497 -1589
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/jfr/default.jfc +1126 -1152
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/jfr/profile.jfc +1126 -1151
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/jrt-fs.jar +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/jspawnhelper +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libawt.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libawt_lwawt.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libdt_socket.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libextnet.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libfontmanager.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libfreetype.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libinstrument.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libj2gss.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libj2pcsc.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libj2pkcs11.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjaas.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjava.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjavajpeg.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjawt.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjdwp.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjimage.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjli.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjsig.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libjsound.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/liblcms.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libmanagement.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libmanagement_agent.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libmanagement_ext.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libmlib_image.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libnet.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libnio.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libosx.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libosxapp.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libosxkrb5.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libosxsecurity.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libosxui.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libprefs.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/librmi.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libsplashscreen.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libsyslookup.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libverify.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/libzip.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/modules +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/psfontj2d.properties +323 -323
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/security/default.policy +235 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/security/public_suffix_list.dat +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/server/libjsig.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/server/libjvm.dylib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/shaders.metallib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/lib/tzdb.dat +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/release +2 -2
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-console-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-datetime-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-debug-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-file-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-file-l1-2-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-file-l2-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-handle-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-heap-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-localization-l1-2-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-memory-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-profile-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-string-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-synch-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-synch-l1-2-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-timezone-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-core-util-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-conio-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-convert-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-environment-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-heap-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-locale-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-math-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-multibyte-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-private-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-process-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-string-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-time-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/api-ms-win-crt-utility-l1-1-0.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/awt.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/dt_socket.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/extnet.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/fontmanager.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/freetype.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/instrument.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/j2gss.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/j2pcsc.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/j2pkcs11.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jaas.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jabswitch.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jaccessinspector.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jaccesswalker.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/java.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/java.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/javaaccessbridge.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/javajpeg.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/javaw.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jawt.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jdwp.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jfr.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jimage.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jli.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jrunscript.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jsound.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jsvml.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/jwebserver.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/keytool.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/kinit.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/klist.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/ktab.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/lcms.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/management.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/management_agent.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/management_ext.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/mlib_image.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/msvcp140.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/net.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/nio.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/prefs.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/rmi.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/rmiregistry.exe +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/server/jvm.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/splashscreen.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/sspi_bridge.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/syslookup.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/ucrtbase.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/vcruntime140.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/vcruntime140_1.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/verify.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/w2k_lsa_auth.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/windowsaccessbridge-64.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/bin/zip.dll +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/jaxp.properties +180 -200
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/logging.properties +63 -63
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/management/management.properties +327 -326
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/net.properties +168 -166
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/security/java.policy +46 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/security/java.security +59 -67
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/asm.md +36 -36
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/cldr.md +109 -100
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/icu.md +518 -93
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/public_suffix.md +399 -399
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.base/unicode.md +103 -269
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.desktop/freetype.md +649 -649
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.desktop/giflib.md +50 -46
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xalan.md +255 -255
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +72 -76
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO +1 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION +1 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler/LICENSE +1 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO +1 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION +1 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/jdk.internal.vm.compiler.management/LICENSE +1 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/classlist +222 -313
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jawt.lib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jfr/default.jfc +1126 -1152
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jfr/profile.jfc +1126 -1151
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jrt-fs.jar +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/jvm.lib +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/modules +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/psfontj2d.properties +323 -323
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/security/default.policy +251 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/security/public_suffix_list.dat +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/tzdb.dat +0 -0
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/lib/tzmappings +146 -1
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/release +2 -2
- quarchpy/connection_specific/mDNS.py +3 -1
- quarchpy/connection_specific/serial/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/win32.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/win32.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-312.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-311.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-312.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-312.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-312.pyc +0 -0
- quarchpy/connection_specific/usb_libs/usb1.py +2360 -2360
- quarchpy/debug/SystemTest.py +17 -38
- quarchpy/debug/__pycache__/SystemTest.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/SystemTest.cpython-312.pyc +0 -0
- quarchpy/debug/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/debug/__pycache__/module_debug.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/module_debug.cpython-312.pyc +0 -0
- quarchpy/debug/__pycache__/simple_terminal.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/simple_terminal.cpython-312.pyc +0 -0
- quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-312.pyc +0 -0
- quarchpy/debug/__pycache__/versionCompare.cpython-311.pyc +0 -0
- quarchpy/debug/__pycache__/versionCompare.cpython-312.pyc +0 -0
- quarchpy/debug/module_debug.py +1 -0
- quarchpy/device/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/device/__pycache__/device.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/device.cpython-312.pyc +0 -0
- quarchpy/device/__pycache__/quarchArray.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/quarchArray.cpython-312.pyc +0 -0
- quarchpy/device/__pycache__/quarchPPM.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/quarchPPM.cpython-312.pyc +0 -0
- quarchpy/device/__pycache__/quarchQPS.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/quarchQPS.cpython-312.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-311.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-312.pyc +0 -0
- quarchpy/device/device.py +0 -1
- quarchpy/device/quarchPPM.py +5 -4
- quarchpy/device/quarchQPS.py +67 -95
- quarchpy/device/scanDevices.py +3 -3
- quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-311.pyc +0 -0
- quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-312.pyc +0 -0
- quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-311.pyc +0 -0
- quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-312.pyc +0 -0
- quarchpy/disk_test/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/disk_test/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-311.pyc +0 -0
- quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-312.pyc +0 -0
- quarchpy/fio/FIO_interface.py +1 -0
- quarchpy/fio/__pycache__/FIO_interface.cpython-311.pyc +0 -0
- quarchpy/fio/__pycache__/FIO_interface.cpython-312.pyc +0 -0
- quarchpy/fio/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/fio/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/fio/test_performance_class.py +533 -0
- quarchpy/iometer/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/iometer/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/iometer/__pycache__/gen_iometer_template.cpython-311.pyc +0 -0
- quarchpy/iometer/__pycache__/gen_iometer_template.cpython-312.pyc +0 -0
- quarchpy/iometer/__pycache__/iometerFuncs.cpython-311.pyc +0 -0
- quarchpy/iometer/__pycache__/iometerFuncs.cpython-312.pyc +0 -0
- quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-311.pyc +0 -0
- quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-312.pyc +0 -0
- quarchpy/qis/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/qis/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-311.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-312.pyc +0 -0
- quarchpy/qis/qisFuncs.py +50 -45
- quarchpy/qps/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/qps/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/qps/__pycache__/qpsFuncs.cpython-311.pyc +0 -0
- quarchpy/qps/__pycache__/qpsFuncs.cpython-312.pyc +0 -0
- quarchpy/qps/qpsFuncs.py +17 -10
- quarchpy/run.py +3 -3
- quarchpy/user_interface/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/user_interface/__pycache__/__init__.cpython-312.pyc +0 -0
- quarchpy/user_interface/__pycache__/user_interface.cpython-311.pyc +0 -0
- quarchpy/user_interface/__pycache__/user_interface.cpython-312.pyc +0 -0
- quarchpy/utilities/TestCenter.py +2 -2
- quarchpy/utilities/__pycache__/TestCenter.cpython-311.pyc +0 -0
- quarchpy/utilities/__pycache__/TestCenter.cpython-312.pyc +0 -0
- quarchpy/utilities/__pycache__/TimeValue.cpython-311.pyc +0 -0
- quarchpy/utilities/__pycache__/TimeValue.cpython-312.pyc +0 -0
- quarchpy/utilities/__pycache__/Version.cpython-311.pyc +0 -0
- quarchpy/utilities/__pycache__/Version.cpython-312.pyc +0 -0
- quarchpy/utilities/__pycache__/__init__.cpython-311.pyc +0 -0
- quarchpy/utilities/__pycache__/__init__.cpython-312.pyc +0 -0
- {quarchpy-2.2.9.dev3.dist-info → quarchpy-2.2.9.dev4.dist-info}/METADATA +1 -1
- {quarchpy-2.2.9.dev3.dist-info → quarchpy-2.2.9.dev4.dist-info}/RECORD +469 -401
- quarchpy/connection_specific/QPS/win-amd64/qis/qis_lib/CInterface-2.5.jar +0 -0
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/conf/jaxp-strict.properties.template +0 -123
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/schema10part1.md +0 -51
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/schema10part2.md +0 -50
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xhtml10.md +0 -57
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xhtml10schema.md +0 -150
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xhtml11.md +0 -68
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xhtml11schema.md +0 -60
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xmlspec.md +0 -63
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/java.xml/xmlxsd.md +0 -43
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/legal/jdk.incubator.vector/sleef.md +0 -439
- quarchpy/connection_specific/jdk_j21_jres/lin_amd64_jdk_21_jre/lib/libsimdsort.so +0 -0
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/conf/jaxp-strict.properties.template +0 -123
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/schema10part1.md +0 -51
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/schema10part2.md +0 -50
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xhtml10.md +0 -57
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xhtml10schema.md +0 -150
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xhtml11.md +0 -68
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xhtml11schema.md +0 -60
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xmlspec.md +0 -63
- quarchpy/connection_specific/jdk_j21_jres/mac_amd64_jdk_21_jre/legal/java.xml/xmlxsd.md +0 -43
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/conf/jaxp-strict.properties.template +0 -123
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/schema10part1.md +0 -51
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/schema10part2.md +0 -50
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xhtml10.md +0 -57
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xhtml10schema.md +0 -150
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xhtml11.md +0 -68
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xhtml11schema.md +0 -60
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xmlspec.md +0 -63
- quarchpy/connection_specific/jdk_j21_jres/win_amd64_jdk_21_jre/legal/java.xml/xmlxsd.md +0 -43
- {quarchpy-2.2.9.dev3.dist-info → quarchpy-2.2.9.dev4.dist-info}/WHEEL +0 -0
- {quarchpy-2.2.9.dev3.dist-info → quarchpy-2.2.9.dev4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,533 @@
|
|
1
|
+
import unittest
|
2
|
+
import subprocess
|
3
|
+
from unittest.mock import Mock
|
4
|
+
from performanceClass import FioPerformance
|
5
|
+
|
6
|
+
class TestFioClass(unittest.TestCase):
|
7
|
+
|
8
|
+
####################################################################################################################
|
9
|
+
# Necessary class variables for tests
|
10
|
+
####################################################################################################################
|
11
|
+
|
12
|
+
testFile = "fio_tests_file.fio"
|
13
|
+
test_dummy_output = "live_fio_output.txt"
|
14
|
+
|
15
|
+
####################################################################################################################
|
16
|
+
# Testing no parameters
|
17
|
+
####################################################################################################################
|
18
|
+
|
19
|
+
@unittest.mock.patch('subprocess.call')
|
20
|
+
def test_no_parameters(self, os_system):
|
21
|
+
# Testing only passing end callback
|
22
|
+
|
23
|
+
x = FioPerformance()
|
24
|
+
self.assertTrue(x.start_workload())
|
25
|
+
|
26
|
+
|
27
|
+
####################################################################################################################
|
28
|
+
# Testing Callbacks
|
29
|
+
####################################################################################################################
|
30
|
+
|
31
|
+
def test_callbacks_assigned(self):
|
32
|
+
# Test to check program assigns callbacks
|
33
|
+
|
34
|
+
newClass = Mock()
|
35
|
+
|
36
|
+
callbacks = {"workload_start_callback": newClass.a(),
|
37
|
+
"workload_end_callback": newClass.b(),
|
38
|
+
"stream_data_callback": newClass.c()}
|
39
|
+
|
40
|
+
x = FioPerformance()
|
41
|
+
|
42
|
+
self.assertFalse(x.start_workload(output_data={"stream_workload_callbacks": callbacks}))
|
43
|
+
|
44
|
+
def test_none_callback_function(self):
|
45
|
+
# Test to check the program doesn't fail with bad parameters assigned for callbacks
|
46
|
+
|
47
|
+
callbacks = {"workload_start_callback": "test",
|
48
|
+
"workload_end_callback": "test",
|
49
|
+
"stream_data_callback": "test"}
|
50
|
+
|
51
|
+
x = FioPerformance()
|
52
|
+
|
53
|
+
command = " ".join(x.command)
|
54
|
+
|
55
|
+
self.assertEqual(command,"fio")
|
56
|
+
|
57
|
+
self.assertFalse(x.start_workload(output_data={"stream_workload_callbacks": callbacks}))
|
58
|
+
|
59
|
+
####################################################################################################################
|
60
|
+
# Testing File parsing
|
61
|
+
####################################################################################################################
|
62
|
+
|
63
|
+
def test_workload_file_param_parsing(self):
|
64
|
+
# Testing
|
65
|
+
x = FioPerformance()
|
66
|
+
|
67
|
+
f = open(self.testFile, "w")
|
68
|
+
f.write("[global]\r"
|
69
|
+
"write_iops_log=test\r"
|
70
|
+
"write_lat_log=test\r"
|
71
|
+
"[job1]")
|
72
|
+
f.close()
|
73
|
+
|
74
|
+
self.assertFalse(x.start_workload(workload_file_path=self.testFile))
|
75
|
+
|
76
|
+
self.assertEqual(x.iops_log_output_file,"test_iops.1.log" )
|
77
|
+
self.assertEqual(x.lat_log_output_file, "test_lat.1.log")
|
78
|
+
self.assertEqual(x.clat_log_output_file, "test_clat.1.log")
|
79
|
+
self.assertEqual(x.slat_log_output_file, "test_slat.1.log")
|
80
|
+
# Check job1 is in one of the items of job name
|
81
|
+
self.assertTrue("job1" in x.job_name)
|
82
|
+
|
83
|
+
def test_workload_file_checking_multiple_jobs(self):
|
84
|
+
# Testing
|
85
|
+
x = FioPerformance()
|
86
|
+
|
87
|
+
f = open(self.testFile, "w")
|
88
|
+
f.write("[global]\r"
|
89
|
+
"write_iops_log=test\r"
|
90
|
+
"[job1]\r"
|
91
|
+
"[job2]")
|
92
|
+
f.close()
|
93
|
+
|
94
|
+
self.assertFalse(x.start_workload(workload_file_path=self.testFile))
|
95
|
+
|
96
|
+
# Check job1 is in one of the items of job name
|
97
|
+
self.assertTrue("job1" in x.job_name)
|
98
|
+
self.assertTrue("job2" in x.job_name)
|
99
|
+
|
100
|
+
def test_workload_file_none_existant(self):
|
101
|
+
# Testing
|
102
|
+
x = FioPerformance()
|
103
|
+
|
104
|
+
self.assertFalse(x.start_workload(workload_file_path="test_test.txt"))
|
105
|
+
|
106
|
+
# Check job1 is in one of the items of job name
|
107
|
+
self.assertFalse("test_test.txt" in x.command)
|
108
|
+
|
109
|
+
####################################################################################################################
|
110
|
+
# Testing workload arguments
|
111
|
+
####################################################################################################################
|
112
|
+
|
113
|
+
@unittest.mock.patch('subprocess.call')
|
114
|
+
def test_workload_args_assignment(self, os_system):
|
115
|
+
# Testing
|
116
|
+
x = FioPerformance()
|
117
|
+
|
118
|
+
workload_dict = { "read_percentage": 1,
|
119
|
+
"sequential": True,
|
120
|
+
"workload_file_size": "128kb",
|
121
|
+
"blocksize": "8k",
|
122
|
+
"runtime": 10,
|
123
|
+
"rampup_time": 10,
|
124
|
+
}
|
125
|
+
|
126
|
+
self.assertTrue(x.start_workload(workload_args_dict=workload_dict))
|
127
|
+
|
128
|
+
execution_string_contents = [ "--size=128kb", "--blocksize=8k", "--runtime=10", "--ramp_time=10",
|
129
|
+
"--time_based", "--rw=rw", "--rwmixread=1" ]
|
130
|
+
|
131
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
132
|
+
|
133
|
+
@unittest.mock.patch('subprocess.call')
|
134
|
+
def test_workload_args_random_read(self, os_system):
|
135
|
+
# Testing
|
136
|
+
x = FioPerformance()
|
137
|
+
|
138
|
+
workload_dict = {"read_percentage": 100,
|
139
|
+
"sequential": False
|
140
|
+
}
|
141
|
+
|
142
|
+
self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
|
143
|
+
|
144
|
+
execution_string_contents = ["--rw=randread"]
|
145
|
+
|
146
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
147
|
+
|
148
|
+
@unittest.mock.patch('subprocess.call')
|
149
|
+
def test_workload_args_sequential_read(self, os_system):
|
150
|
+
# Testing
|
151
|
+
x = FioPerformance()
|
152
|
+
|
153
|
+
workload_dict = {"read_percentage": 100,
|
154
|
+
"sequential": True
|
155
|
+
}
|
156
|
+
|
157
|
+
self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
|
158
|
+
|
159
|
+
execution_string_contents = ["--rw=read"]
|
160
|
+
|
161
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
162
|
+
|
163
|
+
@unittest.mock.patch('subprocess.call')
|
164
|
+
def test_workload_args_random_write(self, os_system):
|
165
|
+
# Testing
|
166
|
+
x = FioPerformance()
|
167
|
+
|
168
|
+
workload_dict = {"read_percentage": 0,
|
169
|
+
"sequential": False
|
170
|
+
}
|
171
|
+
|
172
|
+
self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
|
173
|
+
|
174
|
+
execution_string_contents = ["--rw=randwrite"]
|
175
|
+
|
176
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
177
|
+
|
178
|
+
@unittest.mock.patch('subprocess.call')
|
179
|
+
def test_workload_args_sequential_write(self, os_system):
|
180
|
+
# Testing
|
181
|
+
x = FioPerformance()
|
182
|
+
|
183
|
+
workload_dict = {"read_percentage": 0,
|
184
|
+
"sequential": True
|
185
|
+
}
|
186
|
+
|
187
|
+
self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
|
188
|
+
|
189
|
+
execution_string_contents = ["--rw=write"]
|
190
|
+
|
191
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
192
|
+
|
193
|
+
@unittest.mock.patch('subprocess.call')
|
194
|
+
def test_workload_args_sequential_rw(self, os_system):
|
195
|
+
# Testing
|
196
|
+
x = FioPerformance()
|
197
|
+
|
198
|
+
workload_dict = {"read_percentage": 1,
|
199
|
+
"sequential": True
|
200
|
+
}
|
201
|
+
|
202
|
+
self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
|
203
|
+
|
204
|
+
execution_string_contents = ["--rw=rw"]
|
205
|
+
|
206
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
207
|
+
|
208
|
+
@unittest.mock.patch('subprocess.call')
|
209
|
+
def test_workload_args_random_rw(self, os_system):
|
210
|
+
# Testing
|
211
|
+
x = FioPerformance()
|
212
|
+
|
213
|
+
workload_dict = {"read_percentage": 1,
|
214
|
+
"sequential": False
|
215
|
+
}
|
216
|
+
|
217
|
+
self.assertFalse(x.start_workload(workload_args_dict=workload_dict))
|
218
|
+
|
219
|
+
execution_string_contents = ["--rw=randrw"]
|
220
|
+
|
221
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
222
|
+
|
223
|
+
####################################################################################################################
|
224
|
+
# Testing output arguments
|
225
|
+
####################################################################################################################
|
226
|
+
|
227
|
+
@unittest.mock.patch('subprocess.call')
|
228
|
+
def test_output_args_parse_high_res_data(self, os_system):
|
229
|
+
# Testing
|
230
|
+
x = FioPerformance()
|
231
|
+
|
232
|
+
output_dict = {"high_res_data":
|
233
|
+
["high_res_lat", "high_res_iops"]
|
234
|
+
}
|
235
|
+
|
236
|
+
self.assertFalse(x.start_workload(output_data=output_dict))
|
237
|
+
|
238
|
+
execution_string_contents = ["--write_iops_log="+x.iops_file_prefix, "--write_lat_log="+x.latency_file_prefix]
|
239
|
+
|
240
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
241
|
+
|
242
|
+
@unittest.mock.patch('subprocess.call')
|
243
|
+
def test_output_args_parse_stream_resolutions(self, os_system):
|
244
|
+
# Testing
|
245
|
+
x = FioPerformance()
|
246
|
+
|
247
|
+
output_dict = {"stream_resolution": {"high_res_data_res": 1, "stream_data_res": 1}}
|
248
|
+
|
249
|
+
self.assertFalse(x.start_workload(output_data=output_dict))
|
250
|
+
|
251
|
+
execution_string_contents = ["--log_avg_msec=1",
|
252
|
+
"--status-interval=1"]
|
253
|
+
|
254
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
255
|
+
|
256
|
+
@unittest.mock.patch('subprocess.call')
|
257
|
+
def test_output_args_parse_stream_resolutions_default_status_interval(self, os_system):
|
258
|
+
# Testing
|
259
|
+
x = FioPerformance()
|
260
|
+
|
261
|
+
output_dict = {"stream_resolution": {"stream_data_res": 0}}
|
262
|
+
|
263
|
+
self.assertFalse(x.start_workload(output_data=output_dict))
|
264
|
+
|
265
|
+
execution_string_contents = ["--status-interval=1"]
|
266
|
+
|
267
|
+
self.assertTrue(all(arg in x.command for arg in execution_string_contents))
|
268
|
+
|
269
|
+
####################################################################################################################
|
270
|
+
# Testing executing FIO
|
271
|
+
####################################################################################################################
|
272
|
+
|
273
|
+
# couldn't get the file to work as required
|
274
|
+
# f = open(self.testFile, "w")
|
275
|
+
# f.write("[global]\r"
|
276
|
+
# "size=64mb\r"
|
277
|
+
# "rw=read\r"
|
278
|
+
# "runtime=10\r"
|
279
|
+
# "directory=D\\:\\\r"
|
280
|
+
# "[job1]\r")
|
281
|
+
# f.close()
|
282
|
+
|
283
|
+
@unittest.mock.patch('subprocess.call')
|
284
|
+
def test_execution_without_FIO_installed(self, sub_process):
|
285
|
+
# Testing execution - No Output - simple args
|
286
|
+
x = FioPerformance()
|
287
|
+
|
288
|
+
# Missing FIO from system raises a file not found error
|
289
|
+
sub_process.side_effect = FileNotFoundError
|
290
|
+
|
291
|
+
workload_args = {"read_percentage": 100,
|
292
|
+
"sequential": True,
|
293
|
+
"runtime": 10,
|
294
|
+
"workload_file_size": "64k"}
|
295
|
+
|
296
|
+
# Assert that the program raised the error and exited with it
|
297
|
+
with self.assertRaises(Exception):
|
298
|
+
x.start_workload(workload_args_dict=workload_args)
|
299
|
+
|
300
|
+
@unittest.mock.patch('subprocess.call')
|
301
|
+
def test_execution(self, os_system):
|
302
|
+
# Testing execution - No Output - simple args
|
303
|
+
x = FioPerformance()
|
304
|
+
|
305
|
+
workload_args = {"read_percentage": 100,
|
306
|
+
"sequential": True,
|
307
|
+
"runtime": 10,
|
308
|
+
"workload_file_size": "64k"}
|
309
|
+
|
310
|
+
x.start_workload(workload_args_dict=workload_args)
|
311
|
+
# os.system was called once - Sufficient arguments passed
|
312
|
+
self.assertTrue(os_system.called_once)
|
313
|
+
|
314
|
+
@unittest.mock.patch('subprocess.call')
|
315
|
+
def test_execution_returns_true(self, os_system):
|
316
|
+
# Testing execution - No Output - simple args
|
317
|
+
x = FioPerformance()
|
318
|
+
|
319
|
+
workload_args = {"read_percentage": 100,
|
320
|
+
"sequential": True,
|
321
|
+
"runtime": 10,
|
322
|
+
"workload_file_size": "64k"}
|
323
|
+
|
324
|
+
# function returned true
|
325
|
+
self.assertTrue(x.start_workload(workload_args_dict=workload_args))
|
326
|
+
|
327
|
+
|
328
|
+
def test_execution_async_returns_fio_process(self):
|
329
|
+
# Testing that asynv returns a subprocess
|
330
|
+
# TEST WILL MAKE A 64KB FILE IN CURRENT WORKING DIRECTORY
|
331
|
+
|
332
|
+
# Testing execution - No Output - simple args
|
333
|
+
x = FioPerformance()
|
334
|
+
|
335
|
+
workload_args = {"read_percentage": 100,
|
336
|
+
"sequential": True,
|
337
|
+
"runtime": 10,
|
338
|
+
"workload_file_size": "64k"}
|
339
|
+
|
340
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, run_async=True)
|
341
|
+
|
342
|
+
# checking is of type subprocess.Popen
|
343
|
+
self.assertTrue(isinstance(ret_val, subprocess.Popen))
|
344
|
+
|
345
|
+
ret_val.kill()
|
346
|
+
ret_val.wait(3)
|
347
|
+
|
348
|
+
@unittest.mock.patch('subprocess.Popen')
|
349
|
+
def test_execution_async_process_called_once(self, sub_process):
|
350
|
+
# Testing execution - No Output - simple args
|
351
|
+
x = FioPerformance()
|
352
|
+
|
353
|
+
workload_args = {"read_percentage": 100,
|
354
|
+
"sequential": True,
|
355
|
+
"runtime": 10,
|
356
|
+
"workload_file_size": "64k"}
|
357
|
+
|
358
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, run_async=True)
|
359
|
+
|
360
|
+
self.assertTrue(sub_process.called_once)
|
361
|
+
|
362
|
+
ret_val.kill()
|
363
|
+
ret_val.wait(3)
|
364
|
+
|
365
|
+
@unittest.mock.patch('subprocess.Popen')
|
366
|
+
def test_execution_async_process_called_once(self, sub_process):
|
367
|
+
# Testing execution - No Output - simple args
|
368
|
+
x = FioPerformance()
|
369
|
+
|
370
|
+
workload_args = {"read_percentage": 100,
|
371
|
+
"sequential": True,
|
372
|
+
"runtime": 10,
|
373
|
+
"workload_file_size": "64k"}
|
374
|
+
|
375
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, run_async=True)
|
376
|
+
|
377
|
+
self.assertTrue(sub_process.called_once)
|
378
|
+
|
379
|
+
ret_val.kill()
|
380
|
+
ret_val.wait(3)
|
381
|
+
|
382
|
+
@unittest.mock.patch('subprocess.Popen')
|
383
|
+
def test_execution_non_sync_process_called_once(self, sub_process):
|
384
|
+
# Testing execution - No Output - simple args
|
385
|
+
x = FioPerformance()
|
386
|
+
new_var = Mock()
|
387
|
+
|
388
|
+
workload_args = {"read_percentage": 100,
|
389
|
+
"sequential": True,
|
390
|
+
"runtime": 10,
|
391
|
+
"workload_file_size": "64k"}
|
392
|
+
|
393
|
+
callbacks = {"workload_start_callback": new_var.b()}
|
394
|
+
x = FioPerformance()
|
395
|
+
|
396
|
+
# Starting the function with a callback to go into the second tree
|
397
|
+
ret_val = x.start_workload(workload_args_dict=workload_args,
|
398
|
+
output_data={"stream_workload_callbacks": callbacks} )
|
399
|
+
|
400
|
+
self.assertTrue(sub_process.called_once)
|
401
|
+
|
402
|
+
####################################################################################################################
|
403
|
+
# Testing outputs
|
404
|
+
####################################################################################################################
|
405
|
+
|
406
|
+
@unittest.mock.patch('subprocess.call')
|
407
|
+
def test_results_simple_outputs(self, os_system):
|
408
|
+
# Testing execution - No Output - simple args
|
409
|
+
x = FioPerformance()
|
410
|
+
|
411
|
+
workload_args = {"read_percentage": 100,
|
412
|
+
"sequential": True,
|
413
|
+
"runtime": 10,
|
414
|
+
"workload_file_size": "64k"}
|
415
|
+
|
416
|
+
output = {"summary_data": ["read_iops", "write_iops"]}
|
417
|
+
|
418
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
|
419
|
+
# os.system was called once - Sufficient arguments passed
|
420
|
+
self.assertTrue(os_system.called)
|
421
|
+
# check the output included a dictionary format
|
422
|
+
self.assertTrue(isinstance(ret_val, dict))
|
423
|
+
# check the output contains 2 keys - 'read_iops' and 'write_iops'
|
424
|
+
self.assertTrue(all(key in output["summary_data"] for key in ret_val.keys()))
|
425
|
+
|
426
|
+
@unittest.mock.patch('subprocess.call')
|
427
|
+
def test_results_custom_outputs(self, os_system):
|
428
|
+
# Testing execution - No Output - simple args
|
429
|
+
x = FioPerformance()
|
430
|
+
|
431
|
+
workload_args = {"read_percentage": 100,
|
432
|
+
"sequential": True,
|
433
|
+
"runtime": 10,
|
434
|
+
"workload_file_size": "64k"}
|
435
|
+
|
436
|
+
output = {"summary_data": ["find:jobs:jobname"]}
|
437
|
+
|
438
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
|
439
|
+
# os.system was called once - Sufficient arguments passed
|
440
|
+
self.assertTrue(os_system.called)
|
441
|
+
# check the output included a dictionary format
|
442
|
+
self.assertTrue(isinstance(ret_val, dict))
|
443
|
+
# check the output contains correct key output
|
444
|
+
self.assertTrue("jobs:jobname" in ret_val.keys())
|
445
|
+
|
446
|
+
@unittest.mock.patch('subprocess.call')
|
447
|
+
def test_results_bad_custom_output(self, os_system):
|
448
|
+
# Testing execution - No Output - simple args
|
449
|
+
x = FioPerformance()
|
450
|
+
|
451
|
+
workload_args = {"read_percentage": 100,
|
452
|
+
"sequential": True,
|
453
|
+
"runtime": 10,
|
454
|
+
"workload_file_size": "64k"}
|
455
|
+
|
456
|
+
output = {"summary_data": ["find:jobs:jobname1"]}
|
457
|
+
|
458
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
|
459
|
+
# os.system was called once - Sufficient arguments passed
|
460
|
+
self.assertTrue(os_system.called)
|
461
|
+
# check the output included a dictionary format
|
462
|
+
self.assertTrue(isinstance(ret_val, dict))
|
463
|
+
# check the output contains correct key output
|
464
|
+
self.assertEqual(ret_val["jobs:jobname1"], "Not Found")
|
465
|
+
|
466
|
+
@unittest.mock.patch('subprocess.call')
|
467
|
+
def test_results_bad_custom_search(self, os_system):
|
468
|
+
# Testing execution - No Output - simple args
|
469
|
+
x = FioPerformance()
|
470
|
+
|
471
|
+
workload_args = {"read_percentage": 100,
|
472
|
+
"sequential": True,
|
473
|
+
"runtime": 10,
|
474
|
+
"workload_file_size": "64k"}
|
475
|
+
|
476
|
+
output = {"summary_data": ["afind:jobs:jobname"]}
|
477
|
+
|
478
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
|
479
|
+
# os.system was called once - Sufficient arguments passed
|
480
|
+
self.assertTrue(os_system.called)
|
481
|
+
# check the output included a dictionary format
|
482
|
+
self.assertTrue(isinstance(ret_val, dict))
|
483
|
+
# check the output contains correct key output
|
484
|
+
self.assertEqual(ret_val["afind:jobs:jobname"], "Invalid Summary Data Value")
|
485
|
+
|
486
|
+
def test_results_callbacks(self):
|
487
|
+
# Testing execution - No Output - simple args
|
488
|
+
x = FioPerformance()
|
489
|
+
|
490
|
+
workload_args = {"read_percentage": 100,
|
491
|
+
"sequential": True,
|
492
|
+
"runtime": 1,
|
493
|
+
"workload_file_size": "4k"}
|
494
|
+
|
495
|
+
# Create a new mock
|
496
|
+
mock_callback = Mock()
|
497
|
+
# Assign some methods to the mocks
|
498
|
+
callbacks = {"workload_start_callback": mock_callback.a(),
|
499
|
+
"workload_end_callback": mock_callback.b(),
|
500
|
+
"stream_data_callback": mock_callback.c()}
|
501
|
+
|
502
|
+
x.start_workload(workload_args_dict=workload_args, output_file_path=self.test_dummy_output,
|
503
|
+
output_data={"stream_workload_callbacks": callbacks})
|
504
|
+
|
505
|
+
mock_callback.a.assert_called_once()
|
506
|
+
mock_callback.b.assert_called_once()
|
507
|
+
mock_callback.c.assert_called()
|
508
|
+
|
509
|
+
|
510
|
+
def test_results_high_res_arrays(self):
|
511
|
+
# Testing execution - No Output - simple args
|
512
|
+
x = FioPerformance()
|
513
|
+
|
514
|
+
workload_args = {"read_percentage": 100,
|
515
|
+
"sequential": True,
|
516
|
+
"runtime": 10,
|
517
|
+
"workload_file_size": "64k"}
|
518
|
+
|
519
|
+
output = {"high_res_data": ["high_res_lat"]}
|
520
|
+
|
521
|
+
ret_val = x.start_workload(workload_args_dict=workload_args, output_data=output)
|
522
|
+
# check the output included a dictionary format
|
523
|
+
self.assertTrue(isinstance(ret_val, dict))
|
524
|
+
key_list = ["time_lat_mS", "lat_log", "time_clat_mS", "clat_log", "time_slat_mS", "slat_log",
|
525
|
+
"time_iops_mS", "iops_log"]
|
526
|
+
|
527
|
+
self.assertTrue(all(item in key_list for item in ret_val["high_res_data"]))
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
if __name__ == "__main__":
|
533
|
+
unittest.main()
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|