mirror of
				https://github.com/python/cpython.git
				synced 2025-11-01 06:01:29 +00:00 
			
		
		
		
	Try to be a bit more consistent on all platforms:
python . python < . both print a message, return non-zero and do not core dump.
This commit is contained in:
		
							parent
							
								
									8ff212034e
								
							
						
					
					
						commit
						72c2c062d7
					
				
					 3 changed files with 8 additions and 15 deletions
				
			
		|  | @ -16,19 +16,8 @@ def exit_code(self, cmd_line): | |||
|         return subprocess.call([sys.executable, cmd_line], stderr=subprocess.PIPE) | ||||
| 
 | ||||
|     def test_directories(self): | ||||
|         if sys.platform == 'win32': | ||||
|             # Exit code for "python .", Error 13: permission denied = 2 | ||||
|             expected_exit_code = 2 | ||||
|         elif sys.platform.startswith('freebsd'): | ||||
|             # On FreeBSD, it more likely raise SyntaxError for binary | ||||
|             # directory data. | ||||
|             expected_exit_code = 1 | ||||
|         else: | ||||
|             # Linux has no problem with "python .", Exit code = 0 | ||||
|             expected_exit_code = 0 | ||||
|         self.assertEqual(self.exit_code('.'), expected_exit_code) | ||||
| 
 | ||||
|         self.assertTrue(self.exit_code('< .') != 0) | ||||
|         self.assertNotEqual(self.exit_code('.'), 0) | ||||
|         self.assertNotEqual(self.exit_code('< .'), 0) | ||||
| 
 | ||||
|     def verify_valid_flag(self, cmd_line): | ||||
|         data = self.start_python(cmd_line) | ||||
|  |  | |||
|  | @ -364,7 +364,8 @@ Py_Main(int argc, char **argv) | |||
| 				struct stat sb; | ||||
| 				if (fstat(fileno(fp), &sb) == 0 && | ||||
| 				    S_ISDIR(sb.st_mode)) { | ||||
| 					fprintf(stderr, "%s: warning '%s' is a directory\n", argv[0], filename); | ||||
| 					fprintf(stderr, "%s: '%s' is a directory, cannot continue\n", argv[0], filename); | ||||
| 					return 1; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
|  | @ -1037,7 +1037,10 @@ _PySys_Init(void) | |||
| 		struct stat sb; | ||||
| 		if (fstat(fileno(stdin), &sb) == 0 && | ||||
| 		    S_ISDIR(sb.st_mode)) { | ||||
| 			Py_FatalError("<stdin> is a directory"); | ||||
| 			/* There's nothing more we can do. */ | ||||
| 			/* Py_FatalError() will core dump, so just exit. */ | ||||
| 			PySys_WriteStderr("Python error: <stdin> is a directory, cannot continue\n"); | ||||
| 			exit(EXIT_FAILURE); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Neal Norwitz
						Neal Norwitz