@@ -344,28 +344,32 @@ def test_fstat(self):
344
344
with open (TEST_FULL_PATH2 , 0 ) as fd : # follows symlink
345
345
self .assertEqual (inode , os .fstat (fd ).st_ino )
346
346
347
- def test_utime_basic (self ):
348
- stat_result = os .stat (TEST_FULL_PATH1 )
347
+ def test_utimes (self ):
349
348
os .utime (TEST_FULL_PATH2 , (- 952468575.678901234 , 1579569825.123456789 )) # follows symlink
350
349
self .assertTrue (os .stat (TEST_FULL_PATH1 ).st_atime < - 900000000 )
351
- os .utime (TEST_FILENAME2 , dir_fd = self .tmp_fd , ns = (stat_result .st_atime_ns , stat_result .st_mtime_ns ))
352
- self .assertTrue (abs (os .stat (TEST_FULL_PATH1 ).st_atime - stat_result .st_atime ) < 10 )
353
- with open (TEST_FULL_PATH2 , os .O_RDWR ) as fd :
354
- os .utime (fd , times = (12345 , 67890 ))
355
- self .assertTrue (abs (os .stat (TEST_FULL_PATH1 ).st_atime_ns - 12345000000000 ) < 10000000000 )
350
+
351
+ def test_utimes (self ):
352
+ os .utime (TEST_FULL_PATH2 )
356
353
357
354
@unittest .skipUnless (__graalpython__ .posix_module_backend () != 'java' ,
358
355
'Due to bug in OpenJDK 8 on Linux we cannot set atime/mtime of symlinks' )
359
- def test_utime_basic_no_follow_symlinks (self ):
360
- stat_result = os .stat (TEST_FULL_PATH1 )
356
+ def test_lutimes (self ):
361
357
os .utime (TEST_FULL_PATH2 , (- 952468575.678901234 , 1579569825.123456789 )) # follows symlink
362
358
self .assertTrue (os .stat (TEST_FULL_PATH1 ).st_atime < - 900000000 )
363
359
os .utime (TEST_FULL_PATH2 , ns = (952468575678901234 , 1579569825123456789 ), follow_symlinks = False )
364
360
self .assertTrue (os .stat (TEST_FULL_PATH1 ).st_atime < - 900000000 )
365
361
self .assertTrue (abs (os .stat (TEST_FULL_PATH1 ).st_mtime - 1579569825 ) < 10 )
366
362
self .assertTrue (os .stat (TEST_FULL_PATH2 , follow_symlinks = False ).st_atime > 900000000 )
367
- os .utime (TEST_FILENAME2 , dir_fd = self .tmp_fd , ns = (stat_result .st_atime_ns , stat_result .st_mtime_ns ))
368
- self .assertTrue (abs (os .stat (TEST_FULL_PATH1 ).st_atime - stat_result .st_atime ) < 10 )
363
+
364
+ def test_utimensat (self ):
365
+ if sys .platform == 'darwin' :
366
+ with self .assertRaises (NotImplementedError ):
367
+ os .utime (TEST_FILENAME2 , dir_fd = self .tmp_fd , ns = (952468575678901234 , 1579569825123456789 ))
368
+ else :
369
+ os .utime (TEST_FILENAME2 , dir_fd = self .tmp_fd , ns = (952468575678901234 , 1579569825123456789 ))
370
+ self .assertTrue (os .stat (TEST_FULL_PATH2 ).st_atime > 900000000 )
371
+
372
+ def test_futimes_and_futimens (self ):
369
373
with open (TEST_FULL_PATH2 , os .O_RDWR ) as fd :
370
374
os .utime (fd , times = (12345 , 67890 ))
371
375
self .assertTrue (abs (os .stat (TEST_FULL_PATH1 ).st_atime_ns - 12345000000000 ) < 10000000000 )
0 commit comments