annotate Modules/_testembed.c @ 87081:dc5ae99bc605

Issue #19437: Fix GetKeepedObjects() of ctypes, handle PyCData_GetContainer() failure
author Victor Stinner <victor.stinner@gmail.com>
date Wed, 13 Nov 2013 13:24:50 +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 }