mirror of
				https://github.com/python/cpython.git
				synced 2025-11-01 06:01:29 +00:00 
			
		
		
		
	[3.14] gh-127146: Emscripten: Make os.umask() actually work (GH-136706) (#136711)
Provide a stub implementation of umask that is enough to get some tests passing.
More work is needed upstream in Emscripten to make all umask tests to pass.
(cherry picked from commit 12e52cad71)
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
			
			
This commit is contained in:
		
							parent
							
								
									ca6db4fdae
								
							
						
					
					
						commit
						4eee754091
					
				
					 2 changed files with 23 additions and 5 deletions
				
			
		|  | @ -7,7 +7,7 @@ | |||
| // defined with weak linkage so we can override it.
 | ||||
| EM_JS(int, __syscall_getuid32_js, (void), { | ||||
|     // If we're in node and we can, report the native uid
 | ||||
|     if (typeof process !== "undefined" && typeof process.getuid === "function") { | ||||
|     if (ENVIRONMENT_IS_NODE) { | ||||
|         return process.getuid(); | ||||
|     } | ||||
|     // Fall back to the stub case of returning 0.
 | ||||
|  | @ -17,3 +17,23 @@ EM_JS(int, __syscall_getuid32_js, (void), { | |||
| int __syscall_getuid32(void) { | ||||
|     return __syscall_getuid32_js(); | ||||
| } | ||||
| 
 | ||||
| EM_JS(int, __syscall_umask_js, (int mask), { | ||||
|     // If we're in node and we can, call native process.umask()
 | ||||
|     if (ENVIRONMENT_IS_NODE) { | ||||
|         try { | ||||
|             return process.umask(mask); | ||||
|         } catch(e) { | ||||
|             // oops...
 | ||||
|             // NodeJS docs: "In Worker threads, process.umask(mask) will throw an exception."
 | ||||
|             // umask docs: "This system call always succeeds"
 | ||||
|             return 0; | ||||
|         } | ||||
|     } | ||||
|     // Fall back to the stub case of returning 0.
 | ||||
|     return 0; | ||||
| }) | ||||
| 
 | ||||
| int __syscall_umask(int mask) { | ||||
|     return __syscall_umask_js(mask); | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miss Islington (bot)
						Miss Islington (bot)