Skip to content

Commit c043e8c

Browse files
authored
Get test_shutil passing on github actions + macOS + Mono (IronLanguages#652)
* Fix test * Version information * Set Mono Version
1 parent 522bced commit c043e8c

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

.github/workflows/main.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ jobs:
2222
- uses: actions/setup-dotnet@v1
2323
with:
2424
dotnet-version: '3.0.100'
25+
- name: Set Mono Version
26+
if: matrix.os == 'macos-latest'
27+
run: echo ::add-path::/Library/Frameworks/Mono.framework/Versions/6.4.0/bin
28+
- name: Version Information
29+
run: |
30+
dotnet --info
31+
try { mono --version } catch { }
32+
shell: pwsh
2533
- name: Build
2634
run: pwsh make.ps1
2735
- name: Package

Tests/test_shutil.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import tempfile
88
import unittest
99

10+
from iptest import is_mono, is_osx
11+
1012
class ShutilTest(unittest.TestCase):
1113
def setUp(self):
1214
self.test_dir = tempfile.mkdtemp()
@@ -62,10 +64,18 @@ def test_copystat(self):
6264
to_stat = os.stat(to_filename)
6365

6466
self.assertEqual(from_stat.st_mode, to_stat.st_mode)
65-
self.assertEqual(from_stat.st_atime, to_stat.st_atime)
66-
self.assertEqual(from_stat.st_mtime, to_stat.st_mtime)
67-
self.assertEqual(from_stat.st_atime_ns, to_stat.st_atime_ns)
68-
self.assertEqual(from_stat.st_mtime_ns, to_stat.st_mtime_ns)
67+
if is_mono and is_osx and from_stat.st_atime_ns != to_stat.st_atime_ns:
68+
self.assertEqual(to_stat.st_atime, to_stat.st_atime_ns / 1e9)
69+
self.assertEqual(to_stat.st_mtime, to_stat.st_mtime_ns / 1e9)
70+
self.assertEqual(from_stat.st_atime_ns // 1000, to_stat.st_atime_ns // 1000)
71+
self.assertEqual(from_stat.st_mtime_ns // 1000, to_stat.st_mtime_ns // 1000)
72+
self.assertNotEqual(from_stat.st_atime_ns, to_stat.st_atime_ns)
73+
self.assertNotEqual(from_stat.st_mtime_ns, to_stat.st_mtime_ns)
74+
else:
75+
self.assertEqual(from_stat.st_atime, to_stat.st_atime)
76+
self.assertEqual(from_stat.st_mtime, to_stat.st_mtime)
77+
self.assertEqual(from_stat.st_atime_ns, to_stat.st_atime_ns)
78+
self.assertEqual(from_stat.st_mtime_ns, to_stat.st_mtime_ns)
6979

7080
def test_copy(self):
7181
# TODO: implement me!

0 commit comments

Comments
 (0)