Skip to content

Commit c9065b4

Browse files
committed
add dedicated test for opting in to using oneAPI Intel compilers
1 parent 55f8966 commit c9065b4

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

test/framework/toolchain.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,6 +1376,63 @@ def test_intel_toolchain(self):
13761376
for var in ['CFLAGS', 'CXXFLAGS', 'FCFLAGS', 'FFLAGS', 'F90FLAGS']:
13771377
self.assertTrue('-openmp' in tc.get_variable(var))
13781378

1379+
# with compiler-only toolchain the $MPI* variables are not defined
1380+
tc = self.get_toolchain('intel-compilers', version='2021.4.0')
1381+
tc.set_options({})
1382+
tc.prepare()
1383+
1384+
self.assertEqual(os.getenv('CC'), 'icc')
1385+
self.assertEqual(os.getenv('CXX'), 'icpc')
1386+
self.assertEqual(os.getenv('F77'), 'ifort')
1387+
self.assertEqual(os.getenv('F90'), 'ifort')
1388+
self.assertEqual(os.getenv('FC'), 'ifort')
1389+
1390+
self.assertEqual(os.getenv('MPICC'), None)
1391+
self.assertEqual(os.getenv('MPICXX'), None)
1392+
self.assertEqual(os.getenv('MPIF77'), None)
1393+
self.assertEqual(os.getenv('MPIF90'), None)
1394+
self.assertEqual(os.getenv('MPIFC'), None)
1395+
1396+
def test_intel_toolchain_oneapi(self):
1397+
"""Test for opt-in to oneAPI with intel toolchain"""
1398+
1399+
# for recent versions of intel toolchain, we can opt in to using the new oneAPI compilers
1400+
self.setup_sandbox_for_intel_fftw(self.test_prefix, imklver='2021.4.0')
1401+
self.modtool.prepend_module_path(self.test_prefix)
1402+
tc = self.get_toolchain('intel', version='2021b')
1403+
tc.set_options({})
1404+
tc.prepare()
1405+
1406+
# default remains classic compilers for now
1407+
self.assertEqual(os.getenv('CC'), 'icc')
1408+
self.assertEqual(os.getenv('CXX'), 'icpc')
1409+
self.assertEqual(os.getenv('F77'), 'ifort')
1410+
self.assertEqual(os.getenv('F90'), 'ifort')
1411+
self.assertEqual(os.getenv('FC'), 'ifort')
1412+
1413+
self.assertEqual(os.getenv('MPICC'), 'mpiicc')
1414+
self.assertEqual(os.getenv('MPICXX'), 'mpiicpc')
1415+
self.assertEqual(os.getenv('MPIF77'), 'mpiifort')
1416+
self.assertEqual(os.getenv('MPIF90'), 'mpiifort')
1417+
self.assertEqual(os.getenv('MPIFC'), 'mpiifort')
1418+
1419+
self.modtool.purge()
1420+
tc = self.get_toolchain('intel', version='2021b')
1421+
tc.set_options({'oneapi': True})
1422+
tc.prepare()
1423+
1424+
self.assertEqual(os.getenv('CC'), 'icx')
1425+
self.assertEqual(os.getenv('CXX'), 'icpx')
1426+
self.assertEqual(os.getenv('F77'), 'ifx')
1427+
self.assertEqual(os.getenv('F90'), 'ifx')
1428+
self.assertEqual(os.getenv('FC'), 'ifx')
1429+
1430+
self.assertEqual(os.getenv('MPICC'), 'mpiicc')
1431+
self.assertEqual(os.getenv('MPICXX'), 'mpiicpc')
1432+
self.assertEqual(os.getenv('MPIF77'), 'mpiifort')
1433+
self.assertEqual(os.getenv('MPIF90'), 'mpiifort')
1434+
self.assertEqual(os.getenv('MPIFC'), 'mpiifort')
1435+
13791436
def test_toolchain_verification(self):
13801437
"""Test verification of toolchain definition."""
13811438
tc = self.get_toolchain('foss', version='2018a')

0 commit comments

Comments
 (0)