Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
c4c3c6b1
Commit
c4c3c6b1
authored
Nov 03, 2013
by
Nick Coghlan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Close #19439: execute embedding tests on Windows
Patch by Zachary Ware
parent
936b1a01
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
250 additions
and
32 deletions
+250
-32
Lib/test/test_capi.py
Lib/test/test_capi.py
+46
-32
Misc/NEWS
Misc/NEWS
+3
-0
PCbuild/_testembed.vcxproj
PCbuild/_testembed.vcxproj
+161
-0
PCbuild/_testembed.vcxproj.filters
PCbuild/_testembed.vcxproj.filters
+22
-0
PCbuild/pcbuild.sln
PCbuild/pcbuild.sln
+18
-0
No files found.
Lib/test/test_capi.py
View file @
c4c3c6b1
...
...
@@ -9,7 +9,6 @@ import subprocess
import
sys
import
time
import
unittest
import
textwrap
from
test
import
support
try
:
import
_posixsubprocess
...
...
@@ -219,15 +218,17 @@ class Test6012(unittest.TestCase):
self
.
assertEqual
(
_testcapi
.
argparsing
(
"Hello"
,
"World"
),
1
)
@
unittest
.
skipIf
(
sys
.
platform
.
startswith
(
'win'
),
"interpreter embedding tests aren't built under Windows"
)
class
EmbeddingTests
(
unittest
.
TestCase
):
# XXX only tested under Unix checkouts
def
setUp
(
self
):
basepath
=
os
.
path
.
dirname
(
os
.
path
.
dirname
(
os
.
path
.
dirname
(
__file__
)))
self
.
test_exe
=
exe
=
os
.
path
.
join
(
basepath
,
"Modules"
,
"_testembed"
)
exename
=
"_testembed"
if
sys
.
platform
.
startswith
(
"win"
):
ext
=
(
"_d"
if
"_d"
in
sys
.
executable
else
""
)
+
".exe"
exename
+=
ext
exepath
=
os
.
path
.
dirname
(
sys
.
executable
)
else
:
exepath
=
os
.
path
.
join
(
basepath
,
"Modules"
)
self
.
test_exe
=
exe
=
os
.
path
.
join
(
exepath
,
exename
)
if
not
os
.
path
.
exists
(
exe
):
self
.
skipTest
(
"%r doesn't exist"
%
exe
)
# This is needed otherwise we get a fatal error:
...
...
@@ -260,6 +261,16 @@ class EmbeddingTests(unittest.TestCase):
print
(
out
)
print
(
err
)
@
staticmethod
def
_get_default_pipe_encoding
():
rp
,
wp
=
os
.
pipe
()
try
:
with
os
.
fdopen
(
wp
,
'w'
)
as
w
:
default_pipe_encoding
=
w
.
encoding
finally
:
os
.
close
(
rp
)
return
default_pipe_encoding
def
test_forced_io_encoding
(
self
):
# Checks forced configuration of embedded interpreter IO streams
out
,
err
=
self
.
run_embedded_interpreter
(
"forced_io_encoding"
)
...
...
@@ -267,31 +278,34 @@ class EmbeddingTests(unittest.TestCase):
print
()
print
(
out
)
print
(
err
)
expected_output
=
textwrap
.
dedent
(
"""
\
--- Use defaults ---
Expected encoding: default
Expected errors: default
stdin: {0.__stdin__.encoding}:strict
stdout: {0.__stdout__.encoding}:strict
stderr: {0.__stderr__.encoding}:backslashreplace
--- Set errors only ---
Expected encoding: default
Expected errors: surrogateescape
stdin: {0.__stdin__.encoding}:surrogateescape
stdout: {0.__stdout__.encoding}:surrogateescape
stderr: {0.__stderr__.encoding}:backslashreplace
--- Set encoding only ---
Expected encoding: latin-1
Expected errors: default
stdin: latin-1:strict
stdout: latin-1:strict
stderr: latin-1:backslashreplace
--- Set encoding and errors ---
Expected encoding: latin-1
Expected errors: surrogateescape
stdin: latin-1:surrogateescape
stdout: latin-1:surrogateescape
stderr: latin-1:backslashreplace"""
).
format
(
sys
)
expected_stdin_encoding
=
sys
.
__stdin__
.
encoding
expected_pipe_encoding
=
self
.
_get_default_pipe_encoding
()
expected_output
=
os
.
linesep
.
join
([
"--- Use defaults ---"
,
"Expected encoding: default"
,
"Expected errors: default"
,
"stdin: {0}:strict"
,
"stdout: {1}:strict"
,
"stderr: {1}:backslashreplace"
,
"--- Set errors only ---"
,
"Expected encoding: default"
,
"Expected errors: surrogateescape"
,
"stdin: {0}:surrogateescape"
,
"stdout: {1}:surrogateescape"
,
"stderr: {1}:backslashreplace"
,
"--- Set encoding only ---"
,
"Expected encoding: latin-1"
,
"Expected errors: default"
,
"stdin: latin-1:strict"
,
"stdout: latin-1:strict"
,
"stderr: latin-1:backslashreplace"
,
"--- Set encoding and errors ---"
,
"Expected encoding: latin-1"
,
"Expected errors: surrogateescape"
,
"stdin: latin-1:surrogateescape"
,
"stdout: latin-1:surrogateescape"
,
"stderr: latin-1:backslashreplace"
]).
format
(
expected_stdin_encoding
,
expected_pipe_encoding
)
# This is useful if we ever trip over odd platform behaviour
self
.
maxDiff
=
None
self
.
assertEqual
(
out
.
strip
(),
expected_output
)
...
...
Misc/NEWS
View file @
c4c3c6b1
...
...
@@ -153,6 +153,9 @@ Library
Tests
-----
- Issue #19439: interpreter embedding tests are now executed on Windows
(Patch by Zachary Ware)
- Issue #19085: Added basic tests for all tkinter widget options.
- Issue 19384: Fix test_py_compile for root user, patch by Claudiu Popa.
...
...
PCbuild/_testembed.vcxproj
0 → 100644
View file @
c4c3c6b1
<?xml version="1.0" encoding="utf-8"?>
<Project
DefaultTargets=
"Build"
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup
Label=
"ProjectConfigurations"
>
<ProjectConfiguration
Include=
"Debug|Win32"
>
<Configuration>
Debug
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Debug|x64"
>
<Configuration>
Debug
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|Win32"
>
<Configuration>
Release
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|x64"
>
<Configuration>
Release
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup
Label=
"Globals"
>
<ProjectGuid>
{6DAC66D9-E703-4624-BE03-49112AB5AA62}
</ProjectGuid>
<Keyword>
Win32Proj
</Keyword>
<RootNamespace>
_testembed
</RootNamespace>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.Default.props"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
true
</UseDebugLibraries>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
true
</UseDebugLibraries>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
false
</UseDebugLibraries>
<WholeProgramOptimization>
true
</WholeProgramOptimization>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
false
</UseDebugLibraries>
<WholeProgramOptimization>
true
</WholeProgramOptimization>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.props"
/>
<ImportGroup
Label=
"ExtensionSettings"
>
</ImportGroup>
<ImportGroup
Label=
"PropertySheets"
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"pyproject.props"
/>
<Import
Project=
"debug.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"pyproject.props"
/>
<Import
Project=
"debug.props"
/>
<Import
Project=
"x64.props"
/>
</ImportGroup>
<ImportGroup
Label=
"PropertySheets"
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"pyproject.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"pyproject.props"
/>
<Import
Project=
"x64.props"
/>
</ImportGroup>
<PropertyGroup
Label=
"UserMacros"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<LinkIncremental>
false
</LinkIncremental>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<LinkIncremental>
false
</LinkIncremental>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<LinkIncremental>
false
</LinkIncremental>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<LinkIncremental>
false
</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>
Level3
</WarningLevel>
<Optimization>
Disabled
</Optimization>
<PreprocessorDefinitions>
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>
Level3
</WarningLevel>
<Optimization>
Disabled
</Optimization>
<PreprocessorDefinitions>
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<ClCompile>
<WarningLevel>
Level3
</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>
MaxSpeed
</Optimization>
<FunctionLevelLinking>
true
</FunctionLevelLinking>
<IntrinsicFunctions>
true
</IntrinsicFunctions>
<PreprocessorDefinitions>
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
<EnableCOMDATFolding>
true
</EnableCOMDATFolding>
<OptimizeReferences>
true
</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<ClCompile>
<WarningLevel>
Level3
</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>
MaxSpeed
</Optimization>
<FunctionLevelLinking>
true
</FunctionLevelLinking>
<IntrinsicFunctions>
true
</IntrinsicFunctions>
<PreprocessorDefinitions>
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
<EnableCOMDATFolding>
true
</EnableCOMDATFolding>
<OptimizeReferences>
true
</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"..\Modules\_testembed.c"
/>
</ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"pythoncore.vcxproj"
>
<Project>
{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}
</Project>
<Private>
true
</Private>
<ReferenceOutputAssembly>
true
</ReferenceOutputAssembly>
<CopyLocalSatelliteAssemblies>
false
</CopyLocalSatelliteAssemblies>
<LinkLibraryDependencies>
true
</LinkLibraryDependencies>
<UseLibraryDependencyInputs>
false
</UseLibraryDependencyInputs>
</ProjectReference>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
</ImportGroup>
</Project>
\ No newline at end of file
PCbuild/_testembed.vcxproj.filters
0 → 100644
View file @
c4c3c6b1
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup>
<Filter
Include=
"Source Files"
>
<UniqueIdentifier>
{4FC737F1-C7A5-4376-A066-2A32D752A2FF}
</UniqueIdentifier>
<Extensions>
cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
</Extensions>
</Filter>
<Filter
Include=
"Header Files"
>
<UniqueIdentifier>
{93995380-89BD-4b04-88EB-625FBE52EBFB}
</UniqueIdentifier>
<Extensions>
h;hpp;hxx;hm;inl;inc;xsd
</Extensions>
</Filter>
<Filter
Include=
"Resource Files"
>
<UniqueIdentifier>
{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
</UniqueIdentifier>
<Extensions>
rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile
Include=
"..\Modules\_testembed.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
PCbuild/pcbuild.sln
View file @
c4c3c6b1
...
...
@@ -78,6 +78,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sha3", "_sha3.vcxproj", "{
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_overlapped", "_overlapped.vcxproj", "{EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testembed", "_testembed.vcxproj", "{6DAC66D9-E703-4624-BE03-49112AB5AA62}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
...
...
@@ -631,6 +633,22 @@ Global
{254A0C05-6696-4B08-8CB2-EF7D533AEE01}.Release|Win32.Build.0 = Release|Win32
{254A0C05-6696-4B08-8CB2-EF7D533AEE01}.Release|x64.ActiveCfg = Release|x64
{254A0C05-6696-4B08-8CB2-EF7D533AEE01}.Release|x64.Build.0 = Release|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|Win32.ActiveCfg = Debug|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|Win32.Build.0 = Debug|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|x64.ActiveCfg = Debug|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|x64.Build.0 = Debug|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGInstrument|x64.Build.0 = PGInstrument|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|x64.Build.0 = PGUpdate|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|Win32.ActiveCfg = Release|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|Win32.Build.0 = Release|Win32
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|x64.ActiveCfg = Release|x64
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|x64.Build.0 = Release|x64
{EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|Win32.ActiveCfg = Debug|Win32
{EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|Win32.Build.0 = Debug|Win32
{EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|x64.ActiveCfg = Debug|x64
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment