blob: 2f7fe621c933755bf6678569e3cf39ac75679611 [file] [log] [blame]
Guido van Rossum3559d1f2001-01-10 17:11:51 +00001/* Simple program that repeatedly calls Py_Initialize(), does something, and
2 then calls Py_Finalize(). This should help finding leaks related to
3 initialization. */
4
5#include "Python.h"
6
7main(int argc, char **argv)
8{
Antoine Pitrouc7c96a92010-05-09 15:15:40 +00009 int count = -1;
10 char *command;
Guido van Rossum3559d1f2001-01-10 17:11:51 +000011
Antoine Pitrouc7c96a92010-05-09 15:15:40 +000012 if (argc < 2 || argc > 3) {
13 fprintf(stderr, "usage: loop <python-command> [count]\n");
14 exit(2);
15 }
16 command = argv[1];
Guido van Rossum3559d1f2001-01-10 17:11:51 +000017
Antoine Pitrouc7c96a92010-05-09 15:15:40 +000018 if (argc == 3) {
19 count = atoi(argv[2]);
20 }
Barry Warsaw0c63fe92001-01-23 16:42:01 +000021
Antoine Pitrouc7c96a92010-05-09 15:15:40 +000022 Py_SetProgramName(argv[0]);
Guido van Rossum3559d1f2001-01-10 17:11:51 +000023
Antoine Pitrouc7c96a92010-05-09 15:15:40 +000024 /* uncomment this if you don't want to load site.py */
25 /* Py_NoSiteFlag = 1; */
Barry Warsaw0c63fe92001-01-23 16:42:01 +000026
Antoine Pitrouc7c96a92010-05-09 15:15:40 +000027 while (count == -1 || --count >= 0 ) {
28 Py_Initialize();
29 PyRun_SimpleString(command);
30 Py_Finalize();
31 }
32 return 0;
Guido van Rossum3559d1f2001-01-10 17:11:51 +000033}