From d3683e61704c41f1305b94dc80aa1662fc8cdb5a Mon Sep 17 00:00:00 2001 From: Rolf Madsen Date: Wed, 5 Apr 2017 11:15:41 +0200 Subject: [PATCH 1/5] added unit test to demonstrate that CTRL+C does not work --- src/embed_tests/Python.EmbeddingTest.csproj | 1 + src/embed_tests/TestConsoleInterrupt.cs | Bin 0 -> 8038 bytes 2 files changed, 1 insertion(+) create mode 100644 src/embed_tests/TestConsoleInterrupt.cs diff --git a/src/embed_tests/Python.EmbeddingTest.csproj b/src/embed_tests/Python.EmbeddingTest.csproj index 3ec0d4b57..ff2e813c8 100644 --- a/src/embed_tests/Python.EmbeddingTest.csproj +++ b/src/embed_tests/Python.EmbeddingTest.csproj @@ -80,6 +80,7 @@ + diff --git a/src/embed_tests/TestConsoleInterrupt.cs b/src/embed_tests/TestConsoleInterrupt.cs new file mode 100644 index 0000000000000000000000000000000000000000..d391388546b304c53388996c993541c24a50b4dc GIT binary patch literal 8038 zcmd5>X>S`<6uqDGD~9l8BC2UxC_*hDLYoE)vZ!`NrKCcM?Iczm+t^M@3H|H9Iq&A? zEwk8JP?6<~=Ph?VcX==W{CzGn8OTUZB$I9Y>dI8c7#qv6%%za$(w0*>#OOqx$%=&Q zcjPs84&1tzSaB$4(wFzxJC%2()qC;*D^D>y0^L`jG{XD9?MW%Ov37>pK4zQdDBoCm zSoZ?YGbb;f6VM%Ebh=>o3#>bY?j!6bKk7eQuqT$hke1VfyvE?$c3dwUrT#)%9jyKX ze5vCK=%@u}pmPXG`tV6?wN2=Dgz+9e>NQfJ| zYdY}B0P8Yv9Ae$f{if|nm*e!>A^v9g%T@Fs5kd=dY=Y0wY0OmvH=h9qM8+vrggR_u z?+Io`ZZB=eRrCTW{OLx!cpG6KHO<^wN;Adh9Gv*O=Vm|P?{nz@OTWk$_*LM&$_5W1 zZJiY+m^r$VKDK~amI(9udT*OFo@3|%^8{_ER_Q`IzD=D*jJFAXk6{gsoJ_vM*blNA z=wMXBs7qtR*4Q(O|9=4_8W!@VJ&0#^1&wbk~l-&G%9w%48^_VyyXc>CJgDm&X; zZ0`%$ci_;n4KEONdE|qAc?+8}Hcl|UR$+Og+r-n>gw_smt~nybc@BQhz+EGiC}W)V zAtNJ=k)u&L210dYjBz5F@x~m>(GdUC?58uLUW*T72~uW zqg3m}6G&0GXzO4{ISRRlx|Ka=ob8!n>=g9+;AYv4xbtHLvMX~=ANuF=MAqGBIZn&! z$~wZ_v{;9a75ar^t5;dwbhT%U&^ROf2=B6T^<)D!os}RRo3I+z zbJ~P7G~QUV_%;QqG&6-G%uTe*dxtsS6V%aAbk`%GbzQkhA*|S{TRcMUsZ6Z>iWVX^ zrLu^Bx_%F+vkr#zrm%il64qs1#o5>@mWD8Q!1LRK$H_TleqIcx_yfoei zm|>3HKt%Qs`*UP~3C7r!=e7ORn%fcQjRLuR3?9BSYtEOcKPW3}&JZ%tACx(KCk|39 zX;~!-Il@R?8uDEE%Yx4L27Ro>^ma{;#uzw_aY1f}%k6AQU zl}9aOUshy#o3m%z;X^B=&*JoP2JJlWIBV4JV&zSJkwp?`h=Bu8J^+T6t+yIItgv0z zndc=Q-cF(1+J&dykFDBdL9@~_mbA5@)ffrvdKfP~dFlMfGtC^HUcK&CGMs_d<)b{n z^AVm0n12fUU&>?mMmrHno-(6DJDqf#wjTnWXW*F5c^h>=i|4oIm@E8q zKQzU6mE0U#kNfsyvMVjufB&9PnZQB)9TdX61CG-dKLsE~T@P{;nAHx)gHFyfFSypQ3H1Z%7M zuKWg8aSa`x>&W>$g6jg{DI zZk%~4Qq4nJ)u=TOdt{cSuJasiK|gTsmyogmSNcG60q<+(Knm-@JjkzcCv_K}r+phU zi@#5J4zBDgHsLot`+00A68hIO%tL1X9x_Di(=F#=o(^f(I^_Ict+W9X#f{W$G-got3Z<^2Ww-Rc}rj`&ZP1)IH+)^vMs!njBI8nC3fS~Fy|HH_v>Jh1NS zjGYb_(e*d*@hyxZJRU3G%rsNKc}`T>*K4rht?^$gnG})(@GgP=EWxb z*qZv?wj%aPc(1%TqdmI8O*5%g_u!V-wFhrTu1Rh88J}HO1>MctdcBp`(=dAx-qG8= zc(X-~`ZAWawXyU?aF$t46Qg4hP1G Date: Wed, 5 Apr 2017 11:18:29 +0200 Subject: [PATCH 2/5] Fixed #449, by added initSigs as an optional parameter to PythonEngine.Initialize. --- src/runtime/pythonengine.cs | 9 +++++---- src/runtime/runtime.cs | 7 +++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/runtime/pythonengine.cs b/src/runtime/pythonengine.cs index 1fd3b239a..0b0d21ed0 100644 --- a/src/runtime/pythonengine.cs +++ b/src/runtime/pythonengine.cs @@ -140,9 +140,9 @@ public static void Initialize() Initialize(setSysArgv: true); } - public static void Initialize(bool setSysArgv = true) + public static void Initialize(bool setSysArgv = true, bool initSigs = false) { - Initialize(Enumerable.Empty(), setSysArgv: setSysArgv); + Initialize(Enumerable.Empty(), setSysArgv: setSysArgv, initSigs: initSigs); } /// @@ -153,8 +153,9 @@ public static void Initialize(bool setSysArgv = true) /// more than once, though initialization will only happen on the /// first call. It is *not* necessary to hold the Python global /// interpreter lock (GIL) to call this method. + /// initSigs can be set to 1 to do default python signal configuration. This will override the way signals are handled by the application. /// - public static void Initialize(IEnumerable args, bool setSysArgv = true) + public static void Initialize(IEnumerable args, bool setSysArgv = true, bool initSigs = false) { if (!initialized) { @@ -164,7 +165,7 @@ public static void Initialize(IEnumerable args, bool setSysArgv = true) // during an initial "import clr", and the world ends shortly thereafter. // This is probably masking some bad mojo happening somewhere in Runtime.Initialize(). delegateManager = new DelegateManager(); - Runtime.Initialize(); + Runtime.Initialize(initSigs); initialized = true; Exceptions.Clear(); diff --git a/src/runtime/runtime.cs b/src/runtime/runtime.cs index 9ee693cf3..bcff98878 100644 --- a/src/runtime/runtime.cs +++ b/src/runtime/runtime.cs @@ -163,11 +163,11 @@ public class Runtime /// /// Initialize the runtime... /// - internal static void Initialize() + internal static void Initialize(bool initSigs) { if (Py_IsInitialized() == 0) { - Py_Initialize(); + Py_InitializeEx(initSigs ? 1 : 0); } if (PyEval_ThreadsInitialized() == 0) @@ -584,6 +584,9 @@ internal static unsafe long Refcount(IntPtr op) [DllImport(PythonDll, CallingConvention = CallingConvention.Cdecl)] internal static extern void Py_Initialize(); + [DllImport(PythonDll, CallingConvention = CallingConvention.Cdecl)] + internal static extern void Py_InitializeEx(int initsigs); + [DllImport(PythonDll, CallingConvention = CallingConvention.Cdecl)] internal static extern int Py_IsInitialized(); From 76ca919853a3e90d1c14f10db1026a065f6b0f29 Mon Sep 17 00:00:00 2001 From: Rolf Madsen Date: Wed, 5 Apr 2017 14:24:06 +0200 Subject: [PATCH 3/5] 64 bit support. --- src/embed_tests/TestConsoleInterrupt.cs | Bin 8038 -> 8406 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/embed_tests/TestConsoleInterrupt.cs b/src/embed_tests/TestConsoleInterrupt.cs index d391388546b304c53388996c993541c24a50b4dc..356350a708511f14d7121a6fda8f9ea06fd1fbb4 100644 GIT binary patch delta 136 zcmaE6cg=A_3YT^!LmGnug9d{qLmop3LjVvLG3YS_Gh{MUF{A=zY=KaL!Gb}Pfp@YZ zyEJn(kS^p?p8SAIZgLZs4W}7{34;=YHCR@b5v+zYl_7_r7^oYY4i~T*{mB8`YMcLY HWrzR(t&|<9 delta 24 gcmccS_{?rY3fJTdTv3w+csM4Pa9V86 Date: Thu, 6 Apr 2017 13:48:27 +0200 Subject: [PATCH 4/5] Fixed unittest to better test for success. Fixed kill support. --- src/embed_tests/TestConsoleInterrupt.cs | Bin 8406 -> 8872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/embed_tests/TestConsoleInterrupt.cs b/src/embed_tests/TestConsoleInterrupt.cs index 356350a708511f14d7121a6fda8f9ea06fd1fbb4..0b96e9c76bf1650a0bf8467f7dd4ca2ea2bb88eb 100644 GIT binary patch delta 835 zcmbVLyGjF55S>7DLs-#7gA!uASwRvE>j#LSXbM3vXvD@QChLPd$xB5%dFCcT6RqU3_c@O zAgfu((yI0?>$$~64HeXNv=fS9co9YMy)nR-zBq@*{9Nu|XUp*dCHz|nR!EguoJ%@Jdk HAC%_{%f6|- delta 243 zcmZ4Cdd+cz5IegILq0pk33?Kswfa3WK$v`=fYCWKe T3ZUak7@Q|R Date: Thu, 6 Apr 2017 13:57:06 +0200 Subject: [PATCH 5/5] Added appveyor testresult artifacts --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index c108801e7..7d2d52dba 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -55,6 +55,9 @@ on_finish: artifacts: - path: dist\* + - path: TestResult.xml + name: TestResult + type: xml notifications: - provider: Slack pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy