annotate Modules/_testembed.c @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 9cd88b39ef62
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
1 #include <Python.h>
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
2 #include <stdio.h>
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
3
86399
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
4 /*********************************************************
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
5 * Embedded interpreter tests that need a custom exe
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
6 *
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
7 * Executed via 'EmbeddingTests' in Lib/test/test_capi.py
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
8 *********************************************************/
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
9
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
10 static void _testembed_Py_Initialize(void)
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
11 {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
12 /* HACK: the "./" at front avoids a search along the PATH in
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
13 Modules/getpath.c */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
14 Py_SetProgramName(L"./_testembed");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
15 Py_Initialize();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
16 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
17
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
18
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
19 /*****************************************************
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
20 * Test repeated initalisation and subinterpreters
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
21 *****************************************************/
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
22
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
23 static void print_subinterp(void)
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
24 {
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
25 /* Just output some debug stuff */
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
26 PyThreadState *ts = PyThreadState_Get();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
27 printf("interp %p, thread state %p: ", ts->interp, ts);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
28 fflush(stdout);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
29 PyRun_SimpleString(
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
30 "import sys;"
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
31 "print('id(modules) =', id(sys.modules));"
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
32 "sys.stdout.flush()"
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
33 );
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
34 }
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
35
86399
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
36 static void test_repeated_init_and_subinterpreters(void)
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
37 {
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
38 PyThreadState *mainstate, *substate;
69585
79fcd71d0356 Fix compilation of _testembed.c without threads
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69553
diff changeset
39 #ifdef WITH_THREAD
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
40 PyGILState_STATE gilstate;
69585
79fcd71d0356 Fix compilation of _testembed.c without threads
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69553
diff changeset
41 #endif
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
42 int i, j;
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
43
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
44 for (i=0; i<3; i++) {
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
45 printf("--- Pass %d ---\n", i);
86399
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
46 _testembed_Py_Initialize();
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
47 mainstate = PyThreadState_Get();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
48
69585
79fcd71d0356 Fix compilation of _testembed.c without threads
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69553
diff changeset
49 #ifdef WITH_THREAD
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
50 PyEval_InitThreads();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
51 PyEval_ReleaseThread(mainstate);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
52
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
53 gilstate = PyGILState_Ensure();
69585
79fcd71d0356 Fix compilation of _testembed.c without threads
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69553
diff changeset
54 #endif
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
55 print_subinterp();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
56 PyThreadState_Swap(NULL);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
57
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
58 for (j=0; j<3; j++) {
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
59 substate = Py_NewInterpreter();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
60 print_subinterp();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
61 Py_EndInterpreter(substate);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
62 }
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
63
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
64 PyThreadState_Swap(mainstate);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
65 print_subinterp();
69585
79fcd71d0356 Fix compilation of _testembed.c without threads
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69553
diff changeset
66 #ifdef WITH_THREAD
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
67 PyGILState_Release(gilstate);
69585
79fcd71d0356 Fix compilation of _testembed.c without threads
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69553
diff changeset
68 #endif
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
69
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
70 PyEval_RestoreThread(mainstate);
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
71 Py_Finalize();
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
72 }
86399
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
73 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
74
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
75 /*****************************************************
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
76 * Test forcing a particular IO encoding
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
77 *****************************************************/
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
78
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
79 static void check_stdio_details(const char *encoding, const char * errors)
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
80 {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
81 /* Output info for the test case to check */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
82 if (encoding) {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
83 printf("Expected encoding: %s\n", encoding);
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
84 } else {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
85 printf("Expected encoding: default\n");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
86 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
87 if (errors) {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
88 printf("Expected errors: %s\n", errors);
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
89 } else {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
90 printf("Expected errors: default\n");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
91 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
92 fflush(stdout);
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
93 /* Force the given IO encoding */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
94 Py_SetStandardStreamEncoding(encoding, errors);
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
95 _testembed_Py_Initialize();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
96 PyRun_SimpleString(
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
97 "import sys;"
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
98 "print('stdin: {0.encoding}:{0.errors}'.format(sys.stdin));"
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
99 "print('stdout: {0.encoding}:{0.errors}'.format(sys.stdout));"
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
100 "print('stderr: {0.encoding}:{0.errors}'.format(sys.stderr));"
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
101 "sys.stdout.flush()"
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
102 );
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
103 Py_Finalize();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
104 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
105
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
106 static void test_forced_io_encoding(void)
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
107 {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
108 /* Check various combinations */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
109 printf("--- Use defaults ---\n");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
110 check_stdio_details(NULL, NULL);
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
111 printf("--- Set errors only ---\n");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
112 check_stdio_details(NULL, "surrogateescape");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
113 printf("--- Set encoding only ---\n");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
114 check_stdio_details("latin-1", NULL);
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
115 printf("--- Set encoding and errors ---\n");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
116 check_stdio_details("latin-1", "surrogateescape");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
117
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
118 /* Check calling after initialization fails */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
119 Py_Initialize();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
120
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
121 if (Py_SetStandardStreamEncoding(NULL, NULL) == 0) {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
122 printf("Unexpected success calling Py_SetStandardStreamEncoding");
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
123 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
124 Py_Finalize();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
125 }
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
126
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
127 /* Different embedding tests */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
128 int main(int argc, char *argv[])
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
129 {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
130
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
131 /* TODO: Check the argument string to allow for more test cases */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
132 if (argc > 1) {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
133 /* For now: assume "forced_io_encoding */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
134 test_forced_io_encoding();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
135 } else {
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
136 /* Run the original embedding test case by default */
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
137 test_repeated_init_and_subinterpreters();
9cd88b39ef62 Issue #16129: Add `Py_SetStandardStreamEncoding`
Nick Coghlan <ncoghlan@gmail.com>
parents: 69585
diff changeset
138 }
69553
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
139 return 0;
d195ff5c44f4 Issue #10914: Add a minimal embedding test to test_capi.
Antoine Pitrou <solipsis@pitrou.net>
parents:
diff changeset
140 }